چگونه یک صندوق پستی حذف شده را با PowerShell بازیابی کنیم

مهم نیست که چگونه به طور تصادفی صندوق پستی یک شخص را در Exchange حذف کرده اید، احتمالاً می توانید آن را با استفاده از PowerShell ( PoSh ) بازیابی کنید. کلید این است که به محض اینکه متوجه شوید صندوق پستی حذف شده است، این کار را انجام دهید. 

لحظه ای است که می فهمیم به طور تصادفی این کار را انجام داده ایم. اگر فقط چند پیام ایمیل را حذف کرده‌اید، می‌توانیم نحوه بازیابی ایمیل‌های حذف شده را در Office 365(how to recover deleted emails in Office 365) نیز به شما نشان دهیم.

قبل از شروع، توجه داشته باشید که این برای بازیابی صندوق پستی حذف شده در Exchange Online برای محیط Office 365 و Exchange 2010 است. ما همچنین فرض می‌کنیم که شما حقوق مدیریتی برای استفاده از روش‌های توضیح داده شده را دارید و برخی از اسکریپت‌نویسی اولیه PowerShell(basic PowerShell scripting) را انجام داده‌اید . 

وقتی یک صندوق پستی حذف می شود چه اتفاقی می افتد؟(What Happens When a Mailbox Is Deleted?)

صندوق پستی به سطل بازیافت Azure Active Directory (AD) در (Azure Active Directory )Exchange Online یا دایرکتوری Disconnected Mailboxes در Exchange 2010 منتقل می شود.

بسته به سیاست‌های نگهداری موجود، ممکن است تا 30 روز در آنجا بماند. این به ما یک مهلت می دهد تا اشتباه خود را بشناسیم و از آن خلاص شویم.

بازیابی یک صندوق پستی حذف شده در Exchange Online(Restore a Deleted Mailbox In Exchange Online)

از طریق PowerShell به Exchange آنلاین متصل شوید(Connect To Exchange Online Via PowerShell)

در جلسه محلی خود، کنسول Powershell را باز کنید و از دستور زیر برای تنظیم اعتبار ورود خود به متغیر استفاده کنید.

$userCredential

این کار بعداً کار با اسکریپت های دیگر را آسان تر می کند.

$userCredential = get-Credential

پنجره ای باز می شود که در آن می توانید نام کاربری و رمز عبور خود را برای مدیریت Exchange Online وارد کنید .

در مرحله بعد، سطح سیاست اجرا را طوری تنظیم کنید که بتوانیم در جلسه خود کارهایی را انجام دهیم. این به ما اجازه می دهد تا دستورات بدون امضای خود را اجرا کنیم. اما ممکن است بخواهید بهترین روش ها را برای امضای اسکریپت های PowerShell(best practices for signing PowerShell scripts) نیز یاد بگیرید.

set-ExecutionPolicy Unrestricted

وقتی از شما خواسته شد، Y را برای Yes فشار دهید.

اکنون متغیر $session را ایجاد می کنیم تا از آن برای باز کردن اتصال بین رایانه محلی و Exchange Online استفاده شود.

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $userCredential -Authentication Basic -AllowRedirection

Powershell-liveid شناسه سایت Office شما است. معمولاً این تغییر نام شرکت شما است. 

از دستور زیر برای باز کردن یک جلسه PoSh در (PoSh)Exchange Online استفاده کنید :

import-PSSession $Session -DisableNameChecking

اکنون ما مستقیماً در Exchange Online با (Exchange Online)PowerShell کار می کنیم ، حتی اگر پشت رایانه خودمان نشسته ایم.

بازیابی یک صندوق پستی حذف شده با PowerShell(Restore a Deleted Mailbox With PowerShell)

قسمت بعدی فوق العاده آسان است. برقراری ارتباط ما را بسیار طولانی‌تر می‌برد. 

تنها کاری که باید انجام دهیم این است که cmdlet زیر را اجرا کنیم:

undo-SoftDeletedMailbox [email protected] -WindowsLiveID [email protected] -Password (ConvertTo-SecureString -String 'newpassword' -AsPlainText -Force)

هر دو نمونه [email protected] را به نام صندوق پستی مناسب و Windows LiveID صندوق پستی که می‌خواهیم بازیابی کنیم، تغییر دهید. توجه داشته باشید که ممکن است یکسان نباشند. 

همچنین باید یک رمز عبور جدید برای صندوق پست تعیین کنیم. رمز عبور جدید در اسکریپت را به پسورد(newpassword) انتخابی خود تغییر دهید. شما باید آن را به کاربر منتقل کنید و از او بخواهید که دفعه بعد که وارد سیستم می شود رمز عبور خود را تغییر دهد.

در نهایت، از cmdlet بعدی استفاده کنید تا مطمئن شوید که کار می کند. 

get-Mailbox [email protected]

اگر بازیابی شده باشد، cmdlet اطلاعات مربوط به صندوق پستی بازیابی شده را برمی گرداند. اگر خطایی را برگرداند، دوباره دستورات را مرور کنید و مطمئن شوید که صندوق پستی و Windows LiveID صحیح(Windows LiveID) استفاده شده است. 

اگر باز هم کار نکرد، باید صندوق پستی را از یک نسخه پشتیبان سیستم بازیابی کنیم. انواع مختلفی از سیستم پشتیبان گیری وجود دارد، بنابراین فراتر از محدوده کاری است که ما امروز انجام می دهیم.

وقتی کارمان تمام شد، باید جلسه PoSh را ببندیم . تعداد جلسات PoSh ما محدود است. باز گذاشتن آن از یکی از آن جلسات استفاده می کند. مگر اینکه آن را ببندیم، باید منتظر بمانیم تا جلسه به پایان برسد تا بتوانیم جلسه دیگری را شروع کنیم.

remove-PSSession $Session

خودشه. حتی ممکن است بخواهید این مورد را در یک ماژول PowerShell(PowerShell Module) اسکریپت کنید تا در صورت تکرار، سهولت استفاده کنید.

بازیابی یک صندوق پستی حذف شده در Exchange 2010(Restore a Deleted Mailbox In Exchange 2010)

این برای Office 365(Office 365) یا محیط های ترکیبی کار نمی کند . این فقط برای Exchange 2010 در محل کار می کند. 

در سرور ایمیل، کنسول مدیریت تبادل(Exchange Management Console ) (EMC) را باز کنید. 

به پیکربندی گیرنده(Recipient Configuration ) > صندوق پستی قطع(Disconnected Mailbox) شده بروید . ما باید صندوق پستی کاربر را در آنجا ببینیم. 

اگر این کار را نکنیم، پس فرآیند پاکسازی پایگاه داده صندوق پستی هنوز اتفاق نیفتاده است. اشکالی ندارد، ما می توانیم آن را مجبور کنیم.

  • پوسته مدیریت تبادل(Exchange Management Shell ) ( EMS ) را به عنوان سرپرست باز کنید. اینجاست که می‌توانیم کار PowerShell مخصوص Exchange(Exchange-specific PowerShell) را انجام دهیم .
  • حالا cmdlet را وارد می کنیم: 
Get-MailboxDatabase | Clean-MailboxDatabase

  • پس از انجام این کار، اجازه دهید به EMC(EMC) برگردیم و روی صندوق پست قطع(Disconnected Mailbox) شده کلیک راست کرده، سپس روی Refresh کلیک کنید . 
  • ما اکنون باید صندوق پستی را در آنجا ببینیم، و به همراه صندوق دیگری که اخیراً حذف شده است.

  • به EMS(EMS) برگردید و cmdlet را وارد کنید: 
Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
  • نام کاربری نام حساب (Username)ویندوز(Windows) شخص (مانند کاربر آزمایشی(Test User) ) است(,) و پایگاه داده صندوق پستی(Mailbox Database) نام پایگاه داده ای است که در کنار نام آنها در پنجره صندوق پست قطع(Disconnected Mailbox) شده در EMC فهرست شده است. 
  • صندوق پست قطع(Disconnected Mailbox) شده را رفرش کنید و باید ببینید که صندوق پستی آنها دیگر در آنجا نمایش داده نمی شود. به Recipient Configuration > Mailbox بروید(Mailbox ) و مطمئن شوید که صندوق پستی کاربر در آنجا وجود دارد.

آن را بررسی کنید تا مطمئن شوید همه تنظیمات مانند آدرس ایمیل و نام مستعار درست هستند. اگر خوب به نظر می رسد، دفعه بعد که کاربر Outlook خود را باز می کند ، همه چیز همان طور که بود وجود دارد.

صندوق پستی بازیابی شد(Mailbox Restored)

این نحوه استفاده از PowerShell برای بازیابی صندوق های پستی در Exchange Online و Exchange 2010 است. اگر یک محیط ترکیبی دارید، کمی پیچیده تر است، اما می توان آن را انجام داد. 

فقط دانستن اینکه این cmdlet های مختلف وجود دارند، شما را در موقعیت خوبی برای کار با Exchange قرار می دهد ، صرف نظر از نسخه یا پیکربندی.



About the author

من یک متخصص کامپیوتر هستم که تجربه کار با نرم افزارهای Microsoft Office از جمله Excel و PowerPoint را دارم. من همچنین با کروم که یک مرورگر متعلق به گوگل است، تجربه دارم. مهارت های من شامل ارتباط نوشتاری و کلامی عالی، حل مسئله و تفکر انتقادی است.



Related posts