غالبًا ما يتم إدارة Microsoft Office 365 وجميع التطبيقات المضمنة من خلال متصفح ويب في واجهة مستخدم رسومية. بشكل أساسي، يتم استخدام مركز Office 365 للإدارة وواجهات ويب مركز مسؤول Exchange. ومع ذلك، قد تحتاج إلى استخدام واجهة سطر الأوامر (CLI) لأداء إجراءات جماعية تنطبق على مئات حسابات المستخدمين. بالإضافة إلى ذلك، قد ترغب في استخدام الأوامر النصية لـ Exchange Online والتي لا تتوفر في مركز المسؤول.
المتطلبات
هناك بعض المتطلبات التي يجب تلبيتها للاتصال بـ Exchange Online PowerShell.
- يجب عليك استخدام PowerShell على Windows 7 SP1 أو إصدارات Windows سطح المكتب الأحدث و Windows Server 2008 R2 SP1 أو إصدارات Windows Server الأحدث. يجب أن تكون على علم بأنه يجب عليك تثبيت .NET Framework 4.5 أو الإصدار الأحدث بالإضافة إلى تثبيت إصدار محدث من Windows Management Framework 3.0 أو 4.0 أو 5.1.
- يتطلب الأمر اتصال بالإنترنت. يجب فتح منفذ TCP 80 للاتصال من جهازك المحلي بالمضيف المقصود.
- يجب تمكين الوصول إلى PowerShell عبر الإنترنت للمستخدم الحالي (ويكون هذا التمكين مُفعلًا بشكل افتراضي للمسؤولين).
يمكنك تمكين الوصول يدويًا للاتصال بـ PowerShell عبر الإنترنت للمستخدم المحدد باستخدام الأمر:
Set-User -Identity [email protected] -RemotePowerShellEnabled $true
مبدأ العمل
يمكنك الاتصال بـ PowerShell عبر الإنترنت، ولكن هذه العملية أكثر تعقيدًا من استخدام PowerShell لإدارة خادم تبادل محلي. ومع ذلك، يمكنك استخدام وحدة التحكم PowerShell المدمجة لإدارة البنية التحتية السحابية عن بُعد. في هذه الحالة، يُطلق على الوحدة التحكم اسم PowerShell عبر الإنترنت أو التحكم في PowerShell عن بُعد. يتم تنفيذ عملية بدء جلسة PowerShell عن بُعد لـ Office 365 وExchange Online بشكل مختلف قليلاً. يجب عليك تنزيل وتثبيت مكونات خاصة قبل أن تتمكن من فتح جلسة Office 365 عن بُعد. لحسن الحظ، يتم تنزيل الأدوات النصية اللازمة لبدء جلسة PowerShell عبر الإنترنت تلقائيًا عند إنشاء جلسة PowerShell عن بُعد. تستخدم مجموعات مختلفة من أدوات PowerShell لإدارة Microsoft Office 365 وMicrosoft Exchange Online.
السبب الرئيسي وراء الاتصال بـ Microsoft Exchange Online في PowerShell يتضمن ما يلي:
- إنشاء جلسة عن بُعد لـ Exchange Online في PowerShell مفتوحة على جهازك المحلي.
- توفير إعدادات الاتصال وتمرير المصادقة.
- استيراد أدوات PowerShell التي تُحتاج لإدارة Exchange Online عن بُعد.
في مقال اليوم، سنقوم بتشغيل أدوات PowerShell على Windows 10.
التكوين اليدوي
لنراجع الطريقة اليدوية أولاً، لفهم مبدأ التكوين بشكل أفضل.
- افتح Windows PowerShell. يمكنك القيام بذلك بطريقتين على الأقل.
- انقر بدء، اكتب cmd، انقر بزر الماوس الأيمن فوق عنصر موجه الأوامر وحدد تشغيل كمسؤول في القائمة السياقية.
- انتقل إلى بدء > Windows PowerShell. انقر بزر الماوس الأيمن فوق Windows PowerShell، واضغط تشغيل كمسؤول للتأكد من أنه يمكنك تشغيل أوامر PowerShell دون قيود.
- تمكين تشغيل النصوص (من الأفضل تشغيل هذا الأمر في بداية إعداد PowerShell لإدارة Exchange Online وOffice 365)، وإلا ستحصل على خطأ مستقبلاً عند تشغيل الأمر Import-PSSession:
Import-PSSession : لا يمكن تحميل الملفات لأن تشغيل النصوص قد تم تعطيله على هذا النظام. قدم شهادة صالحة للتوقيع على الملفات.
- لتنفيذ النصوص، يجب تعيين سياسة التنفيذ على RemoteSigned.
Set-ExecutionPolicy RemoteSigned
- اضغط على Y لتأكيد تغيير السياسة إذا طُلب. يمكنك أيضًا استخدام أمر Set-ExecutionPolicy Unrestricted لاستخدام السياسة Unrestricted.
- تشغيل الأمر في بوويرشيل للحصول على بيانات اعتماد وادخال بيانات تسجيل الدخول الخاصة بالمسؤول في النافذة المنبثقة للوصول إلى Exchange Online. يجب أن يكون للمستخدم أذونات إدارية عالمية في Office 365.
$Credential=Get-Credential
سيتم حفظ بيانات الاعتماد المدخلة في المتغير واستخدامها في الأمر التالي كما في $Credential. - يجب عليك إنشاء جلسة بعيدة PowerShell باستخدام cmdlet New-PSSession وتشغيل الأمر التالي:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection
لاحظ أن في هذا الأمر، تم تعيين عنوان URL الهدف لخادم Exchange Online الذي يعمل في السحابة والذي يجب أن يقبل الطلب. بعد تشغيل الأمر، سيوفر لك خوادم Microsoft Office 365 السحابية وصولًا إلى الخادم الظاهري Exchange Online المناسب المرتبط بحسابك.
- يجب استيراد أوامر Exchange Online PowerShell إلى الجلسة الحالية باستخدام الأمر:
Import-PSSession $Session
- يمكنك رؤية شريط التقدم أثناء استلام الأوامر.
- بعد تشغيل الأمر بنجاح، سترى الرسالة التالية.
ملاحظة: إذا كنت تستخدم MFA لحسابك، فإن الcmdlets القياسية المشروحة أعلاه لن تعمل. إذا كنت ترغب في الاتصال بـ Exchange Online في PowerShell باستخدام MFA، قم بتشغيل الأمر التالي:
Connect-EXOPSSession -UserPrincipalName YOUR_UPN
حيث YOUR_UPN (الاسم الرئيسي للمستخدم) هو اسم حساب Office 365 الذي تستخدمه. قد تحتاج إلى تثبيت Exchange Online Remote PowerShell Module من Microsoft.
كن على علم بأنه عند استخدام هذه الوحدة، ينتهي الجلسة بعد ساعة واحدة، وهو ما قد يكون غير مناسب لتشغيل النصوص الطويلة. يُنصح باستخدام عناوين IP الموثوق بها (أي عناوين IP لمؤسستك) لتجاوز MFA عند الاتصال من شبكة شركتك بخدمات Exchange Online PowerShell. MFA (Multi-Factor-Authentication) هو الأسلوب المتقدم للمصادقة الذي يضيف طبقة ثانية من الأمان. بعد إدخال كلمة المرور، يتم إرسال رمز التأكيد إلى هاتف المستخدم ويجب على المستخدم إدخال رمز التأكيد للتحقق من الحساب للوصول إلى خدمات Office 365 السحابية.
- بمجرد الاتصال بـ Office 365 وExchange Online، يمكنك إدارة بيئة Office 365 السحابية. لنتحقق من أننا قمنا بالاتصال بـ Exchange Online بشكل صحيح ونقوم بسرد صناديق البريد الخاصة بالمستخدمين، على سبيل المثال.
Get-Mailbox
يمكنك سرد جميع الأوامر المتاحة لـ Exchange Online PowerShell باستخدام الأمر التالي:
Get-Command -Module tmp*
لا تتم تحويل أسماء أوامر Exchange Online PowerShell.
- عند الانتهاء من عملك مع Exchange 365، قم بفصل الجلسة. هذه هي الممارسة الموصى بها.
إزالة-PSSession $Session
للأسف، لا توجد رسائل تُعرض بعد تنفيذ هذا الأمر. يمكنك التحقق مما إذا كانت الجلسة قد فصلت عن طريق تشغيل الأمر احصل على صندوق بريد. إذا كانت الجلسة قد فصلت، ستحصل على الخطأ الذي يشرح أنه لا يمكنك تشغيل أوامر Exchange Online بعد الفصل.
لماذا يجب عليك فصل الجلسة؟ حسنًا، ببساطة لأن عدد الجلسات المتوازية النشطة التي يمكن فتحها في نفس الوقت محدودًا إلى ثلاثة. إذا فتحت ثلاث جلسات لـ Exchange Online PowerShell في وقت واحد ولم تقم بفصل أي منها عندما لا تكون في استخدام، ستحتاج إلى الانتظار حتى تنتهي إحدى هذه الجلسات قبل أن تتمكن من الاتصال بـ Exchange Online PowerShell مرة أخرى من وحدة PowerShell جديدة.
التكوين الآلي
الآن بعد أن عرفت مبدأ كيفية الاتصال بـ Exchange Online PowerShell يدويًا، يمكنك استخدام الطريقة الآلية. الميزة في هذه الطريقة هي عدد أقل من الأوامر التي يجب عليك إدخالها.
- تنزيل البرنامج النصي من موقع Microsoft. اسم ملف البرنامج النصي هو ConnectExchangeOnlinePowerShell.ps1 في هذه الحالة.
- انتقل إلى الدليل حيث يوجد البرنامج النصي؛ في مثالنا، تم حفظ البرنامج النصي في C:\temp_win\.
- قبل تشغيل البرنامج النصي، قم بتحرير سياسة تنفيذ البرنامج النصي (تمامًا كما هو موضح في الطريقة الأولى)، وإلا ستواجه خطأ:
ملف C:\temp_win\ConnectExchangeOnlinePowerShell.ps1 غير موقع إلزاميًا. لا يمكنك تشغيل هذا البرنامج النصي على النظام الحالي.
يمكنك تطبيق سياسة التنفيذ التجاوز لتجنب هذه المشكلة:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
- اكتب Y لتأكيد تغيير سياسة التنفيذ.
- بعد ذلك، يمكنك تشغيل السكربت. إذا لم تستخدم MFA، قم بتشغيل السكربت بدون وسائط إضافية:
.\ConnectExchangeOnlinePowerShell.ps1
إذا كان MFA (Multi-Factor Authentication) مستخدمًا في بيئة Office 365 الخاصة بك، جرب الأمر:
.\ConnectExchangeOnlinePowerShell.ps1 -MFA
- الآن بعد أن قمت بالاتصال بـ Exchange Online بنجاح، يمكنك إدارة حسابات المستخدمين الخاصة بك، وصناديق بريدهم، إلخ. على سبيل المثال، يمكنك إدراج صناديق بريد مستخدميك:
Get-Mailbox
يمكن استخدام هذا النص البرمجي لجدولة وتلقائية المهام. على سبيل المثال، يمكنك الاتصال بـ Exchange Online دون إدخال بيانات اعتماد في النافذة التفاعلية كما هو موضح أعلاه. يمكنك إدخال اسم المستخدم وكلمة المرور الخاصة بك في سطر الأوامر كخيارات أمر عند تنفيذ النص البرمجي:
./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password your_password
تذكر أن إدخال كلمات المرور على شكل نص عادي في سطر الأوامر قد لا يكون آمنًا.
- عند الانتهاء من العمل مع Exchange Online في PowerShell، لا تنسَ إنهاء الجلسة:
./ConnectExchangeOnlinePowerShell.ps1 -الفصل
الطريقة البديلة
لننظر إلى طريقة أخرى يمكن استخدامها للاتصال بـ Exchange Online PowerShell. يمكن اعتبار هذه الطريقة تعديلًا على الطريقة الأولى.
- قم بإنشاء ملف تعريف جديد لـ PowerShell باستخدام الوظيفة:
New-item -نوع الملف -القوة $profile
- عدّل ملف تكوين الملف الشخصي في محرر النصوص لإضافة الوظيفة المسماة Connect-EXOnline:
مفكرة $profile
- أضف المحتوى التالي إلى ملف تكوين ملف PowerShell profile وقم بتغيير [email protected] إلى اسم حسابك، ثم احفظ ملف النص.
الدالة ربط-EXOnline
{
$credentials = Get-Credential -Credential [email protected]
Write-Output “الحصول على أدوات سطر الأوامر الخاصة بالبريد الإلكتروني الجديد”
$Session = New-PSSession -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
-ConfigurationName Microsoft.Exchange -Credential $credentials `
-Authentication Basic -AllowRedirection
Import-PSSession $Session
} - أغلق نافذة PowerShell الحالية وافتح نافذة PowerShell جديدة بصلاحيات المسؤول. قم بتشغيل الأمر للاتصال بـ Exchange Online PowerShell:
Connect-ExOnline
أدخل كلمة المرور الخاصة بك في نافذة البوب أب. - عند الانتهاء من العمل مع Exchange Online PowerShell، أنهي الجلسة بالأمر:
Get-PSSession | Remove-PSSession
الاستنتاج
يعتبر Exchange Online PowerShell بديلًا جيدًا لواجهة مركز الإدارة Exchange Admin على الويب. باستخدام PowerShell لـ Office 365 و PowerShell لـ Exchange Online، يمكنك تنفيذ عمليات جماعية وإجراءات مع عدة كائنات باستخدام أمر أو سكريبت واحد. قد غطى مقال اليوم كيفية الاتصال بـ Exchange Online PowerShell باستخدام ثلاث طرق، واحدة منها متميزة. يتكون مبدأ عمل كل طريقة من ثلاث خطوات رئيسية: إنشاء جلسة PowerShell عن بُعد، والمصادقة، واستيراد أدوات Exchange Online PowerShell.
توصية هامة هي قطع الاتصال بجلسة PowerShell عن بُعد عند الانتهاء من العمل مع Exchange Online PowerShell لتجنب حالة عدم توافر جلسات العمل وعدم القدرة على فتح جلسة جديدة لـ Exchange Online PowerShell. إن وجود خادم Exchange في السحابة هو حلاً موثوقًا به، ولكن حتى في هذه الحالة، يُوصى بأن تقوم بعمل نسخ احتياطي لخادم Exchange الخاص بك لحماية بياناتك من الحذف العرضي والكوارث الأخرى.
Source:
https://www.nakivo.com/blog/how-to-connect-office-365-exchange-online-powershell/