لماذا تحتاج إلى استخدام PowerShell ل Microsoft 365

تنطبق هذه المقالة على كل من Microsoft 365 Enterprise Office 365 Enterprise.

باستخدام مركز مسؤولي Microsoft 365، يمكنك إدارة حسابات وتراخيص مستخدمي Microsoft 365. يمكنك أيضا إدارة خدمات Microsoft 365، مثل Exchange Online وTeams وSharePoint. إذا كنت تستخدم PowerShell بدلا من ذلك لإدارة هذه الخدمات، يمكنك الاستفادة من سطر الأوامر وبيئة لغة البرمجة النصية للسرعة والأتمتة والقدرات الإضافية.

ملاحظة

يتم استبدال وحدة Azure Active Directory ب Microsoft Graph PowerShell SDK. يمكنك استخدام Microsoft Graph PowerShell SDK للوصول إلى جميع واجهات برمجة تطبيقات Microsoft Graph. لمزيد من المعلومات، راجع بدء استخدام Microsoft Graph PowerShell SDK. تم تحديث بعض أوامر PowerShell ل Microsoft 365 في هذه المقالة لاستخدام Microsoft Graph PowerShell.

توضح هذه المقالة كيفية استخدام PowerShell لإدارة Microsoft 365 من أجل:

  • الكشف عن معلومات إضافية لا يمكنك رؤيتها في مركز مسؤولي Microsoft 365

  • تكوين الميزات والإعدادات الممكنة فقط باستخدام PowerShell

  • إجراء عمليات مجمعة

  • تصفية البيانات

  • طباعة البيانات أو حفظها

  • إدارة عبر الخدمات

ضع في اعتبارك أن PowerShell ل Microsoft 365 عبارة عن مجموعة من الوحدات النمطية Windows PowerShell، وهي بيئة سطر أوامر للخدمات والأنظمة الأساسية المستندة إلى Windows. تنشئ هذه البيئة لغة command-shell التي يمكن توسيعها بوحدات نمطية إضافية. يوفر طريقة لتنفيذ أوامر أو برامج نصية بسيطة أو معقدة. على سبيل المثال، بعد تثبيت وحدات PowerShell ل Microsoft 365 والاتصال باشتراك Microsoft 365، يمكنك تشغيل الأمر التالي لسرد جميع علب بريد المستخدم Microsoft Exchange Online:

Get-Mailbox

يمكنك أيضا الحصول على قائمة علب البريد باستخدام مركز مسؤولي Microsoft 365 ولكن عد العناصر الموجودة في جميع القوائم لجميع المواقع لجميع تطبيقات الويب الخاصة بك ليس سهلا.

تم تصميم PowerShell ل Microsoft 365 لمساعدتك في إدارة Microsoft 365، وليس لاستبدال مركز مسؤولي Microsoft 365. يجب أن يكون المسؤولون قادرين على استخدام PowerShell ل Microsoft 365 لأن هناك بعض إجراءات التكوين التي لا يمكن إجراؤها إلا من خلال أوامر PowerShell ل Microsoft 365. بالنسبة لهذه الحالات، تحتاج إلى معرفة كيفية:

  • تثبيت وحدات PowerShell النمطية ل Microsoft 365 (يتم ذلك مرة واحدة فقط لكل كمبيوتر مسؤول).

  • اتصل باشتراك Microsoft 365 (مرة واحدة لكل جلسة PowerShell).

  • اجمع المعلومات المطلوبة لتشغيل أوامر PowerShell المطلوبة ل Microsoft 365.

  • قم بتشغيل PowerShell لأوامر Microsoft 365.

بعد أن تتعلم هذه المهارات الأساسية، لن تضطر إلى سرد مستخدمي علب البريد باستخدام الأمر Get-Mailbox . ليس عليك أيضا فهم كيفية إنشاء أمر جديد مثل الأمر المقتبس سابقا لحساب جميع العناصر في جميع القوائم لجميع المواقع لجميع تطبيقات الويب الخاصة بك. يمكن أن تساعدك Microsoft ومجتمع المسؤولين في مثل هذه المهام حسب الحاجة.

يمكن أن يكشف PowerShell ل Microsoft 365 عن معلومات لا يمكنك رؤيتها مع مركز مسؤولي Microsoft 365

يعرض مركز مسؤولي Microsoft 365 الكثير من المعلومات المفيدة، ولكنه لا يعرض جميع المعلومات المحتملة التي يخزنها Microsoft 365 حول المستخدمين والتراخيص وعلب البريد والمواقع. فيما يلي مثال للمستخدمين والمجموعات في مركز مسؤولي Microsoft 365:

مثال على عرض المستخدمين والمجموعات في مركز مسؤولي Microsoft 365.

توفر طريقة العرض هذه المعلومات التي تحتاجها في كثير من الحالات. ومع ذلك، هناك أوقات تحتاج فيها إلى المزيد. على سبيل المثال، يعتمد ترخيص Microsoft 365 (وميزات Microsoft 365 المتوفرة للمستخدم) جزئيا على الموقع الجغرافي للمستخدم. قد لا تكون النهج والميزات التي يمكنك توسيعها إلى مستخدم يعيش في الولايات المتحدة هي نفسها تلك التي يمكنك توسيعها إلى مستخدم في الهند أو بلجيكا. اتبع هذه الخطوات في مركز مسؤولي Microsoft 365 لتحديد الموقع الجغرافي للمستخدم:

  1. انقر نقرا مزدوجا فوق الاسم المعروض للمستخدم.

  2. في جزء عرض خصائص المستخدم، حدد التفاصيل.

  3. في عرض التفاصيل، حدد تفاصيل إضافية.

  4. قم بالتمرير حتى تعثر على العنوان البلد أو المنطقة:

    مثال على معلومات المنطقة لمستخدم في مركز مسؤولي Microsoft 365.

  5. اكتب اسم العرض للمستخدم وموقعه على جزء من الورق، أو انسخه والصقه في المفكرة.

يجب تكرار هذا الإجراء لكل مستخدم. إذا كان لديك العديد من المستخدمين، يمكن أن تكون هذه العملية مملة. باستخدام PowerShell، يمكنك عرض هذه المعلومات لجميع المستخدمين باستخدام الأوامر التالية.

ملاحظة

يتم استبدال وحدة Azure Active Directory ب Microsoft Graph PowerShell SDK. يمكنك استخدام Microsoft Graph PowerShell SDK للوصول إلى جميع واجهات برمجة تطبيقات Microsoft Graph. لمزيد من المعلومات، راجع بدء استخدام Microsoft Graph PowerShell SDK.

أولا، استخدم حساب مسؤول Microsoft Entra DC أو مسؤول تطبيق السحابة أو حساب مسؤول عموميللاتصال بمستأجر Microsoft 365.

يتطلب الحصول على معلومات للمستخدم نطاق إذن User.ReadBasic.All أو أحد الأذونات الأخرى المدرجة في الصفحة المرجعية لواجهة برمجة تطبيقات Graph "تعيين ترخيص".

نطاق الإذن Organization.Read.All مطلوب لقراءة التراخيص المتوفرة في المستأجر.

ملاحظة

تم إهمال Azure AD ووحدات MSOnline PowerShell اعتبارا من 30 مارس 2024. لمعرفة المزيد، اقرأ تحديث الإهمال. بعد هذا التاريخ، يقتصر دعم هذه الوحدات على مساعدة الترحيل إلى Microsoft Graph PowerShell SDK وإصلاحات الأمان. ستستمر الوحدات المتوقفة في العمل حتى مارس 30 2025.

نوصي بالترحيل إلى Microsoft Graph PowerShell للتفاعل مع Microsoft Entra ID (المعروف سابقا Azure AD). للحصول على أسئلة الترحيل الشائعة، راجع الأسئلة المتداولة حول الترحيل. ملاحظه: قد تواجه الإصدارات 1.0.x من MSOnline اضطرابا بعد 30 يونيو 2024.

Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation

فيما يلي مثال على النتائج:

DisplayName                               UsageLocation
-----------                               -------------
Bonnie Kearney                            GB
Fabrice Canel                             BR
Brian Johnson (TAILSPIN)                  US
Anne Wallace                              US
Alex Darrow                               US
David Longmuir                            BR

تفسير أمر PowerShell هذا هو: الحصول على جميع المستخدمين في اشتراك Microsoft 365 الحالي (Get-MgUser)، ولكن فقط عرض الاسم والموقع لكل مستخدم (حدد DisplayName، UsageLocation).

نظرا لأن PowerShell ل Microsoft 365 يدعم لغة command-shell، يمكنك معالجة المعلومات التي تم الحصول عليها بواسطة الأمر Get-MgUser . على سبيل المثال، ربما ترغب في فرز هؤلاء المستخدمين حسب موقعهم، وتجميع جميع المستخدمين البرازيليين معا، وجميع مستخدمي الولايات المتحدة معا، وما إلى ذلك. إليك الأمر:

Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName

فيما يلي مثال على النتائج:

DisplayName                                 UsageLocation
-----------                                 -------------
David Longmuir                              BR
Fabrice Canel                               BR
Bonnie Kearney                              GB
Alex Darrow                                 US
Anne Wallace                                US
Brian Johnson (TAILSPIN)                    US

تفسير أمر PowerShell هذا هو: الحصول على جميع المستخدمين في اشتراك Microsoft 365 الحالي، ولكن فقط عرض الاسم والموقع لكل مستخدم وفرزه أولا حسب موقعه ثم اسمه (فرز UsageLocation، DisplayName).

يمكنك أيضا استخدام تصفية إضافية. على سبيل المثال، إذا كنت تريد فقط رؤية معلومات حول المستخدمين الموجودين في البرازيل، فاستخدم هذا الأمر:

Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country 

فيما يلي مثال على النتائج:

DisplayName                                           UsageLocation
-----------                                           -------------
David Longmuir                                        BR
Fabrice Canel                                         BR

تفسير أمر PowerShell هذا هو: الحصول على جميع المستخدمين في اشتراك Microsoft 365 الحالي الذي يكون موقعه هو البرازيل (حيث {$_. UsageLocation -eq "BR"}) ثم اعرض الاسم والموقع لكل مستخدم.

ملاحظة حول المجالات الكبيرة

إذا كان لديك مجال كبير مع عشرات الآلاف من المستخدمين، فقد تؤدي تجربة بعض الأمثلة التي نعرضها في هذه المقالة إلى التقييد. استنادا إلى عوامل مثل قوة الحوسبة وعرض النطاق الترددي المتاح للشبكة، قد تحاول القيام بالكثير في وقت واحد. قد ترغب المؤسسات الكبيرة في تقسيم بعض عمليات PowerShell هذه إلى أمرين.

على سبيل المثال، يرجع الأمر التالي جميع حسابات المستخدمين ويعرض الاسم والموقع لكل منها:

Get-MgUser -All | Select DisplayName, UsageLocation

يعمل هذا بشكل رائع للمجالات الأصغر. ولكن في مؤسسة كبيرة، قد ترغب في تقسيم هذه العملية إلى أمرين: أمر واحد لتخزين معلومات حساب المستخدم في متغير وآخر لعرض المعلومات المطلوبة. فيما يلي مثال:

$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation

تفسير هذه المجموعة من أوامر PowerShell هو:

  1. احصل على جميع المستخدمين في اشتراك Microsoft 365 الحالي وقم بتخزين المعلومات في متغير يسمى $x ($x = Get-MgUser).
  2. عرض محتويات $x المتغير، ولكن قم بتضمين اسم وموقع كل مستخدم فقط ($x | حدد DisplayName، UsageLocation).

يحتوي Microsoft 365 على ميزات يمكنك تكوينها فقط باستخدام PowerShell ل Microsoft 365

تهدف مركز مسؤولي Microsoft 365 إلى توفير الوصول إلى المهام الإدارية الشائعة والمفيدة التي تنطبق على معظم البيئات. بمعنى آخر، تم تصميم مركز مسؤولي Microsoft 365 بحيث يمكن للمسؤول النموذجي تنفيذ مهام الإدارة الأكثر شيوعا. ولكن هناك بعض المهام التي لا يمكن القيام بها في مركز الإدارة.

على سبيل المثال، يوفر مركز إدارة Skype for Business Online بعض الخيارات لإنشاء دعوات اجتماع مخصصة:

مثال على عرض دعوات الاجتماعات المخصصة في مركز مسؤول Skype for Business Online.

باستخدام هذه الإعدادات، يمكنك إضافة لمسة من التخصيص والاحتراف إلى دعوات الاجتماع. ولكن هناك ما هو أكثر لإعدادات تكوين الاجتماع من مجرد إنشاء دعوات اجتماع مخصصة. على سبيل المثال، بشكل افتراضي، تسمح الاجتماعات بما يلي:

  • المستخدمون المجهولون للحصول على دخول تلقائي إلى كل اجتماع.

  • الحضور لتسجيل الاجتماع.

  • سيتم تعيين جميع المستخدمين من مؤسستك كمقدمين عند الانضمام إلى الاجتماع.

هذه الإعدادات غير متوفرة من مركز إدارة Skype for Business Online. يمكنك التحكم فيها من PowerShell ل Microsoft 365. إليك أمر يعطل هذه الإعدادات الثلاثة:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"

ملاحظة

لتشغيل هذا الأمر، يجب تثبيت وحدة PowerShell النمطية Skype for Business Online.

تفسير أمر PowerShell هذا هو:

  1. في إعدادات اجتماعات Skype for Business Online الجديدة (Set-CsMeetingConfiguration)، قم بتعطيل السماح للمستخدمين المجهولين بالدخول التلقائي إلى الاجتماعات (-AdmitAnonymousUsersByDefault $False).
  2. تعطيل قدرة الحضور على تسجيل الاجتماعات (-AllowConferenceRecording $False).
  3. لا تعين جميع المستخدمين من مؤسستك كمقدمي عرض (-DesignateAsPresenter "None").

لاستعادة هذه الإعدادات الافتراضية (تمكين الخيارات)، قم بتشغيل هذا الأمر:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"

هناك سيناريوهات أخرى مشابهة أيضا، ولهذا السبب يجب أن يعرف المسؤولون كيفية تشغيل PowerShell لأوامر Microsoft 365.

يعد PowerShell ل Microsoft 365 رائعا للعمليات المجمعة

الواجهات المرئية مثل مركز مسؤولي Microsoft 365 هي الأكثر قيمة عندما يكون لديك عملية واحدة للقيام بها. على سبيل المثال، إذا كنت بحاجة إلى تعطيل حساب مستخدم واحد، يمكنك استخدام مركز الإدارة لتحديد موقع خانة اختيار ومسحها بسرعة. قد يكون هذا أسهل من تنفيذ عملية مماثلة في PowerShell.

ولكن إذا كان عليك تغيير العديد من الأشياء أو بعض الأشياء المحددة ضمن مجموعة كبيرة من الأشياء الأخرى، فقد لا تكون مركز مسؤولي Microsoft 365 هي أفضل أداة. على سبيل المثال، لنفترض أنه يجب عليك تغيير البادئة على آلاف أرقام الهواتف أو إزالة المستخدم المحدد Ken Myer من جميع مواقع SharePoint. كيف ستفعل ذلك في مركز مسؤولي Microsoft 365؟

في المثال الأخير، لنفترض أن لديك عدة مئات من مواقع SharePoint، ولا تعرف المواقع التي ينتمي إليها كين ماير. يجب أن تبدأ من مركز مسؤولي Microsoft 365 ثم تنفيذ هذا الإجراء لكل موقع:

  1. حدد عنوان URL للموقع.

  2. في مربع خصائص مجموعة المواقع المشتركة ، حدد الارتباط عنوان موقع ويب لفتح الموقع.

  3. على الموقع، حدد مشاركة.

  4. في مربع الحوار مشاركة ، حدد الارتباط الذي يعرض جميع المستخدمين الذين لديهم أذونات للموقع:

    مثال لعرض أعضاء موقع SharePoint في مركز مسؤول SharePoint.

  5. في مربع الحوار مشترك مع ، حدد خيارات متقدمة.

  6. مرر لأسفل قائمة المستخدمين، وابحث عن Ken Myer وحدده (بافتراض أن لديه أذونات للموقع)، ثم حدد إزالة أذونات المستخدم.

قد يستغرق هذا وقتا طويلا لعدة مئات من المواقع.

البديل هو تشغيل الأمر التالي في PowerShell ل Microsoft 365 لإزالة Ken Myer من جميع مواقعك:

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}

ملاحظة

يتطلب هذا الأمر تثبيت الوحدة النمطية SharePoint PowerShell.

تفسير أمر PowerShell هذا هو: الحصول على جميع مواقع SharePoint في اشتراك Microsoft 365 الحالي (Get-SPOSite) ولكل موقع قم بإزالة Ken Meyer من قائمة المستخدمين الذين يمكنهم الوصول إليه (ForEach {Remove-SPOUser -Site $_. Url -LoginName "kenmyer@litwareinc.com"}).

نخبر Microsoft 365 بإزالة كين ماير من كل موقع، بما في ذلك تلك التي لا يملك حق الوصول إليها. لذلك ستظهر النتائج أخطاء لتلك المواقع التي ليس لديه حق الوصول إليها. يمكننا استخدام شرط إضافي في هذا الأمر لإزالة كين ماير فقط من المواقع التي لديه على قائمة تسجيل الدخول الخاصة بهم. ولكن الأخطاء التي يتم إرجاعها لا تسبب أي ضرر للمواقع نفسها. قد يستغرق هذا الأمر بضع دقائق لتشغيله مقابل مئات المواقع، بدلا من ساعات العمل من خلال مركز مسؤولي Microsoft 365.

فيما يلي مثال آخر للعملية المجمعة. استخدم هذا الأمر لإضافة بوني كيرني، مسؤول SharePoint جديد، إلى جميع المواقع في المؤسسة:

Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}

تفسير أمر PowerShell هذا هو: الحصول على جميع مواقع SharePoint في اشتراك Microsoft 365 الحالي ولكل موقع يسمح بوصول بوني كيرني عن طريق إضافة اسم تسجيل الدخول الخاص بها إلى مجموعة الأعضاء للموقع (ForEach {Add-SPOUser -Site $_. Url -LoginName "bkearney@litwareinc.com" -Group "Members"}).

يعد PowerShell ل Microsoft 365 رائعا في تصفية البيانات

يوفر مركز مسؤولي Microsoft 365 عدة طرق لتصفية بياناتك لتحديد موقع مجموعة فرعية مستهدفة من المعلومات بسهولة. على سبيل المثال، يسهل Exchange التصفية على أي خاصية من خصائص علبة بريد المستخدم. على سبيل المثال، إليك قائمة علب البريد لجميع المستخدمين الذين يعيشون في مدينة Bloomington:

مثال على إجراء بحث متقدم في مركز مسؤولي Microsoft 365 لقائمة علب البريد لجميع المستخدمين الذين يعيشون في مدينة Bloomington.

يتيح لك مركز إدارة Exchange أيضا الجمع بين معايير التصفية. على سبيل المثال، يمكنك العثور على علب البريد لجميع الأشخاص الذين يعيشون في Bloomington ويعملون في قسم الشؤون المالية.

ولكن هناك قيود على ما يمكنك القيام به في مركز Exchange مسؤول. على سبيل المثال، لم تتمكن من العثور بسهولة على علب البريد للأشخاص الذين يعيشون في Bloomington أو سان دييغو، أو علب البريد لجميع الأشخاص الذين لا يعيشون في Bloomington.

يمكنك استخدام أمر PowerShell التالي ل Microsoft 365 للحصول على قائمة بعلب البريد لجميع الأشخاص الذين يعيشون في Bloomington أو سان دييغو:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City

فيما يلي مثال على النتائج:

DisplayName                              City
-----------                              ----
Alex Darrow                              San Diego
Bonnie Kearney                           San Diego
Julian Isla                              Bloomington
Rob Young                                Bloomington

تفسير أمر PowerShell هذا هو: الحصول على جميع المستخدمين في اشتراك Microsoft 365 الحالي الذين لديهم علبة بريد في مدينة سان دييغو أو بلومنجتون (حيث {$_. RecipientTypeDetails -eq "UserMailbox" -and ($_. المدينة -eq "سان دييغو" -أو $_. City -eq "Bloomington")})، ثم اعرض الاسم والمدينة لكل منهما (حدد DisplayName, City).

وإليك الأمر لسرد جميع علب البريد للأشخاص الذين يعيشون في أي مكان باستثناء Bloomington:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City

فيما يلي مثال على النتائج:

DisplayName                               City
-----------                               ----
MOD Administrator                         Redmond
Alex Darrow                               San Diego
Allie Bellew                              Bellevue
Anne Wallace                              Louisville
Aziz Hassouneh                            Cairo
Belinda Newman                            Charlotte
Bonnie Kearney                            San Diego
David Longmuir                            Waukesha
Denis Dehenne                             Birmingham
Garret Vargas                             Seattle
Garth Fort                                Tulsa
Janet Schorr                              Bellevue

تفسير أمر PowerShell هذا هو: الحصول على جميع المستخدمين في اشتراك Microsoft 365 الحالي الذين لديهم علبة بريد غير موجودة في مدينة Bloomington (حيث {$_. RecipientTypeDetails -eq "UserMailbox" -and $_. City -ne "Bloomington"})، ثم اعرض الاسم والمدينة لكل منهما.

استخدام أحرف البدل

يمكنك أيضا استخدام أحرف البدل في عوامل تصفية PowerShell لمطابقة جزء من الاسم. على سبيل المثال، افترض أنك تبحث عن حساب مستخدم. كل ما يمكنك تذكره هو أن اسم عائلة المستخدم كان أندرسون أو ربما هندرسون أو جورجنسون.

يمكنك تعقب هذا المستخدم في مركز مسؤولي Microsoft 365 باستخدام أداة البحث وتنفيذ ثلاث عمليات بحث مختلفة:

  • واحد من أجل أندرسون

  • واحد ل هندرسون

  • واحد لجورجنسون

نظرا لأن جميع هذه الأسماء الثلاثة تنتهي ب "son"، يمكنك إخبار PowerShell بعرض جميع المستخدمين الذين ينتهي اسمهم ب "son". إليك الأمر:

Get-User -Filter '{LastName -like "*son"}'

تفسير أمر PowerShell هذا هو: الحصول على جميع المستخدمين في اشتراك Microsoft 365 الحالي، ولكن استخدم عامل تصفية يسرد فقط المستخدمين الذين تنتهي أسماؤهم الأخيرة في "son" (-Filter '{LastName -like "*son"}'). يرمز * إلى أي مجموعة من الأحرف، وهي أحرف في اسم عائلة المستخدم.

يسهل PowerShell ل Microsoft 365 طباعة البيانات أو حفظها

يتيح لك مركز مسؤولي Microsoft 365 عرض قوائم البيانات. فيما يلي مثال على مركز إدارة Skype for Business Online الذي يعرض قائمة بالمستخدمين الذين تم تمكينهم ل Skype for Business Online:

مثال على مركز مسؤول Skype for Business Online الذي يعرض قائمة بالمستخدمين الذين تم تمكينهم Skype for Business Online.

لحفظ هذه المعلومات في ملف، يجب لصقها في مستند أو ورقة عمل Microsoft Excel. قد تتطلب كلتا الحالتين تنسيقا إضافيا. بالإضافة إلى ذلك، لا يوفر مركز مسؤولي Microsoft 365 طريقة لطباعة القائمة المعروضة مباشرة.

لحسن الحظ، يمكنك استخدام PowerShell ليس فقط لعرض القائمة ولكن لحفظها في ملف يمكن استيراده بسهولة إلى Excel. فيما يلي مثال على الأمر لحفظ بيانات المستخدم Skype for Business Online إلى ملف قيم مفصولة بفواصل (CSV)، والذي يمكن استيراده بسهولة كجدول في ورقة عمل Excel:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation

فيما يلي مثال على النتائج:

مثال لجدول تم استيراده إلى ورقة عمل Excel لبيانات مستخدم Skype for Business Online التي تم حفظها في ملف قيم مفصول بفواصل.

تفسير أمر PowerShell هذا هو: الحصول على جميع مستخدمي Skype for Business Online في اشتراك Microsoft 365 الحالي (Get-CsOnlineUser)؛ احصل فقط على اسم المستخدم، UPN، والموقع (حدد DisplayName، UserPrincipalName، UsageLocation)؛ ثم احفظ هذه المعلومات في ملف CSV يسمى C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

يمكنك أيضا استخدام الخيارات لحفظ هذه القائمة كملف XML أو صفحة HTML. في الواقع، باستخدام أوامر PowerShell إضافية، يمكنك حفظه مباشرة كملف Excel، مع أي تنسيق مخصص تريده.

يمكنك أيضا إرسال إخراج أمر PowerShell الذي يعرض قائمة مباشرة إلى الطابعة الافتراضية في Windows. فيما يلي مثال على الأمر:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer

إليك الشكل الذي سيبدو عليه المستند المطبوع:

مثال على مستند مطبوع كان ناتجا عن أمر PowerShell تم إرساله مباشرة إلى الطابعة الافتراضية في Windows.

تفسير أمر PowerShell هذا هو: الحصول على جميع مستخدمي Skype for Business Online في اشتراك Microsoft 365 الحالي؛ احصل فقط على اسم المستخدم و UPN والموقع؛ ثم أرسل هذه المعلومات إلى طابعة Windows الافتراضية (خارج الطابعة).

يحتوي المستند المطبوع على التنسيق البسيط نفسه الذي يحتوي عليه العرض في نافذة أوامر PowerShell. للحصول على نسخة مصدقة، ما عليك سوى إضافة | خارج الطابعة إلى نهاية الأمر.

يتيح لك PowerShell ل Microsoft 365 الإدارة عبر منتجات الخادم

تم تصميم المكونات التي تشكل Microsoft 365 للعمل معا. على سبيل المثال، افترض أنك أضفت مستخدما جديدا إلى Microsoft 365، وحددت معلومات مثل قسم المستخدم ورقم الهاتف. ستتوفر هذه المعلومات بعد ذلك إذا قمت بالوصول إلى معلومات المستخدم في أي من خدمات Microsoft 365: Skype for Business Online أو Exchange أو SharePoint.

ولكن هذا للمعلومات الشائعة التي تمتد عبر مجموعة من المنتجات. لا تتوفر عادة المعلومات الخاصة بالمنتج، مثل معلومات حول علبة بريد Exchange الخاصة بالمستخدم، عبر المجموعة. على سبيل المثال، تتوفر معلومات حول ما إذا كانت علبة بريد المستخدم ممكنة أم لا في مركز إدارة Exchange فقط.

لنفترض أنك ترغب في إنشاء تقرير يعرض المعلومات التالية لجميع المستخدمين:

  • اسم العرض للمستخدم

  • ما إذا كان المستخدم مرخصا ل Microsoft 365

  • ما إذا كان قد تم تمكين علبة بريد Exchange الخاصة بالمستخدم

  • ما إذا كان المستخدم ممكنا Skype for Business Online

لا يمكنك بسهولة إنتاج مثل هذا التقرير في مركز مسؤولي Microsoft 365. بدلا من ذلك، سيتعين عليك إنشاء مستند منفصل لتخزين المعلومات، مثل ورقة عمل Excel. بعد ذلك، احصل على جميع أسماء المستخدمين ومعلومات الترخيص من مركز مسؤولي Microsoft 365، والحصول على معلومات علبة البريد من مركز إدارة Exchange، والحصول على معلومات Skype for Business Online من مركز مسؤول Skype for Business Online، ثم ادمج هذه المعلومات.

البديل هو استخدام برنامج نصي PowerShell لتجميع التقرير نيابة عنك.

البرنامج النصي المثال التالي أكثر تعقيدا من الأوامر التي رأيتها حتى الآن في هذه المقالة. ولكنه يوضح إمكانية استخدام PowerShell لإنشاء طرق عرض معلومات يصعب الحصول عليها بخلاف ذلك. فيما يلي البرنامج النصي لتجميع وعرض القائمة التي تحتاج إليها:

Connect-MgGraph -Scopes "User.ReadBasic.All"
$x = Get-MgUser -All

foreach ($i in $x)
    {
      $y = Get-Mailbox -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled

      $y = Get-CsOnlineUser -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled
    }

$x | Select DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB

فيما يلي مثال على النتائج:

DisplayName             IsLicensed   IsMailboxEnabled   EnabledForSfB
-----------             ----------   ----------------   --------------
Bonnie Kearney          True         True               True
Fabrice Canel           True         True               True
Brian Johnson           False        True               False
Anne Wallace            True         True               True
Alex Darrow             True         True               True
David Longmuir          True         True               True
Katy Jordan             False        True               False
Molly Dempsey           False        True               False

تفسير هذا البرنامج النصي PowerShell هو:

  1. احصل على جميع المستخدمين في اشتراك Microsoft 365 الحالي وقم بتخزين المعلومات في متغير يسمى $x ($x = Get-MgUser).
  2. ابدأ حلقة يتم تشغيلها عبر جميع المستخدمين في $x المتغير (foreach ($i في $x)).
  3. تعريف متغير يسمى $y وتخزين معلومات علبة بريد المستخدم فيه ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. أضف خاصية جديدة إلى معلومات المستخدم المسماة IsMailBoxEnabled. قم بتعيينه إلى قيمة الخاصية IsMailBoxEnabled لعلبة بريد المستخدم ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. حدد متغيرا باسم $y، وقم بتخزين معلومات Skype for Business Online الخاصة بالمستخدم فيه ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. أضف خاصية جديدة إلى معلومات المستخدم المسماة EnabledForSfB. قم بتعيينه إلى قيمة الخاصية Enabled لمعلومات Skype for Business Online للمستخدم ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. عرض قائمة المستخدمين، ولكن قم بتضمين اسمهم فقط، وما إذا كانوا مرخصين، والخصائص الجديدة التي تشير إلى ما إذا كانت علبة بريدهم ممكنة وما إذا كان قد تم تمكينها ل Skype for Business Online ($x | حدد DisplayName، IsLicensed، IsMailboxEnabled، EnabledforSfB).

راجع أيضًا

بدء استخدام PowerShell ل Microsoft 365

إدارة حسابات مستخدمي Microsoft 365 والتراخيص والمجموعات باستخدام PowerShell

استخدام Windows PowerShell لإنشاء تقارير في Microsoft 365