إدارة مستخدمي SharePoint ومجموعاته باستخدام PowerShell

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

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

قبل البدء، تتطلب منك الإجراءات الواردة في هذه المقالة الاتصال ب SharePoint. للحصول على الإرشادات، راجع الاتصال ب SharePoint PowerShell

الحصول على قائمة بالمواقع والمجموعات والمستخدمين

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

احصل على قائمة بالمواقع في المستأجر الخاص بك باستخدام هذا الأمر:

Get-SPOSite

احصل على قائمة بالمجموعات في المستأجر الخاص بك باستخدام هذا الأمر:

Get-SPOSite | ForEach {Get-SPOSiteGroup -Site $_.Url} | Format-Table

احصل على قائمة بالمستخدمين في المستأجر الخاص بك باستخدام هذا الأمر:

Get-SPOSite | ForEach {Get-SPOUser -Site $_.Url}

إضافة مستخدم إلى مجموعة مسؤولي الموقع

يمكنك استخدام Set-SPOUser cmdlet لإضافة مستخدم إلى قائمة مسؤولي الموقع على مجموعة مواقع مشتركة.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

لاستخدام هذه الأوامر، استبدل كل شيء داخل علامات الاقتباس، بما في ذلك الأحرف < و > ، بالأسماء الصحيحة.

على سبيل المثال، تضيف هذه المجموعة من الأوامر Opal Castillo (اسم المستخدم opalc) إلى قائمة مسؤولي الموقع على مجموعة المواقع المشتركة ContosoTest في إيجار Contoso:

$tenant = "contoso"
$site = "contosotest"
$user = "opalc"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

يمكنك نسخ هذه الأوامر ولصقها في المفكرة وتغيير قيم المتغيرات $tenant $site $user إلى القيم الفعلية من بيئتك، ثم لصقها في نافذة SharePoint Management Shell لتشغيلها.

إضافة مستخدم إلى مجموعات مجموعة مواقع مشتركة أخرى

في هذه المهمة، نستخدم Add-SPOUser cmdlet لإضافة مستخدم إلى مجموعة SharePoint على مجموعة مواقع مشتركة.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

على سبيل المثال، دعنا نضيف Glen Rife (اسم المستخدم glenr) إلى مجموعة المراجعين على مجموعة المواقع المشتركة ContosoTest في إيجار contoso:

$tenant = "contoso"
$site = "contosotest"
$user = "glenr"
$group = "Auditors"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

الإنشاء مجموعة مواقع مشتركة

يمكنك استخدام New-SPOSiteGroup cmdlet لإنشاء مجموعة SharePoint جديدة وإضافتها إلى مجموعة مواقع مشتركة.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$group = "<group name name, such as Auditors>"
$level = "<permission level, such as View Only>"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

يمكن تحديث خصائص المجموعة، مثل مستويات الأذونات، لاحقا باستخدام Set-SPOSiteGroup cmdlet.

على سبيل المثال، دعنا نضيف مجموعة المراجعين مع عرض الأذونات فقط إلى مجموعة المواقع المشتركة contosotest في إيجار contoso:

$tenant = "contoso"
$site = "contosotest"
$group = "Auditors"
$level = "View Only"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

إزالة المستخدمين من مجموعة

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

ومع ذلك باستخدام ملفات SharePoint Management Shell وCSV، يكون هذا الأمر سريعا وسهلا. في هذه المهمة، يمكنك استخدام Windows PowerShell لإزالة مستخدم من مجموعة أمان مجموعة مواقع مشتركة. ثم يمكنك استخدام ملف CSV وإزالة الكثير من المستخدمين من مواقع مختلفة.

سنستخدم الأمر cmdlet "Remove-SPOUser" لإزالة مستخدم Microsoft 365 واحد من مجموعة مجموعة مواقع مشتركة حتى نتمكن من رؤية بناء جملة الأمر. إليك كيفية ظهور بناء الجملة:

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

على سبيل المثال، دعنا نزيل بوبي أوربي من مجموعة مراجعي مجموعة المواقع المشتركة في مجموعة المواقع المشتركة contosotest في إيجار contoso:

$tenant = "contoso"
$site = "contosotest"
$user = "bobbyo"
$group = "Auditors"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

لنفترض أننا أردنا إزالة (بوبي) من كل المجموعات التي يوجد بها حاليا إليك كيفية القيام بذلك:

$tenant = "contoso"
$user = "bobbyo"
Get-SPOSite | ForEach {Get-SPOSiteGroup –Site $_.Url} | ForEach {Remove-SPOUser -LoginName $user@$tenant.com -Site $_.Url}

تحذير

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

أتمتة إدارة القوائم الكبيرة للمستخدمين والمجموعات

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

العملية الأساسية هي إنشاء ملف CSV يحتوي على رؤوس (أعمدة) تتوافق مع المعلمات التي يحتاجها البرنامج النصي Windows PowerShell. يمكنك بسهولة إنشاء مثل هذه القائمة في Excel ثم تصديرها كملف CSV. بعد ذلك، يمكنك استخدام برنامج نصي Windows PowerShell للتكرار من خلال السجلات (الصفوف) في ملف CSV، وإضافة المستخدمين إلى المجموعات والمجموعات إلى المواقع.

على سبيل المثال، دعنا ننشئ ملف CSV لتعريف مجموعة من مجموعات المواقع المشتركة والمجموعات والأذونات. بعد ذلك، سنقوم بإنشاء ملف CSV لملء المجموعات بالمستخدمين. وأخيرا، سنقوم بإنشاء وتشغيل برنامج نصي Windows PowerShell يقوم بإنشاء المجموعات وتعبئتها.

يضيف ملف CSV الأول مجموعة واحدة أو أكثر إلى مجموعة مواقع مشتركة واحدة أو أكثر وسيكون له هذه البنية:

راس:

Site,Group,PermissionLevels

البند:

https://tenant.sharepoint.com/sites/site,group,level

فيما يلي مثال على ملف:

Site,Group,PermissionLevels
https://contoso.sharepoint.com/sites/contosotest,Contoso Project Leads,Full Control
https://contoso.sharepoint.com/sites/contosotest,Contoso Auditors,View Only
https://contoso.sharepoint.com/sites/contosotest,Contoso Designers,Design
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Team Leads,Full Control
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Advisors,Edit
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Designers,Design
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Editors,Edit
https://contoso.sharepoint.com/sites/Project01,Project Alpha Approvers,Full Control

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

راس:

Group,LoginName,Site

البند:

group,login,https://tenant.sharepoint.com/sites/site

فيما يلي مثال على ملف:

Group,LoginName,Site
Contoso Project Leads,bobbyo@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Auditors,allieb@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Designers,bonniek@contoso.com,https://contoso.sharepoint.com/sites/contosotest
XT1000 Team Leads,dorenap@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
XT1000 Advisors,garthf@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
Contoso Blog Designers,janets@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Contoso Blog Editors,opalc@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Project Alpha Approvers,robinc@contoso.com,https://contoso.sharepoint.com/sites/Project01

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

Import-Csv C:\O365Admin\GroupsAndPermissions.csv | ForEach {New-SPOSiteGroup -Group $_.Group -PermissionLevels $_.PermissionLevels -Site $_.Site}
Import-Csv C:\O365Admin\Users.csv | ForEach {Add-SPOUser -Group $_.Group –LoginName $_.LoginName -Site $_.Site}

يستورد البرنامج النصي محتويات ملف CSV ويستخدم القيم الموجودة في الأعمدة لملء معلمات الأمرين New-SPOSiteGroupوAdd-SPOUser . في مثالنا، نقوم بحفظ هذا الملف في مجلد O365Admin على محرك الأقراص C، ولكن يمكنك حفظه أينما تريد.

الآن، دعنا نزيل مجموعة من الأشخاص لعدة مجموعات في مواقع مختلفة باستخدام نفس ملف CSV. فيما يلي مثال على الأمر:

Import-Csv C:\O365Admin\Users.csv | ForEach {Remove-SPOUser -LoginName $_.LoginName -Site $_.Site -Group $_.Group}

إنشاء تقارير المستخدم

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

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | select * | Format-table -Wrap -AutoSize | Out-File c\UsersReport.txt -Force -Width 360 -Append

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

على سبيل المثال، لنقم بتشغيل تقرير على مواقع ContosoTest وTeamSite01 وProject01 لمستأجر Contoso1:

$tenant = "contoso"
$site = "contosotest"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "TeamSite01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site |Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "Project01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

كان علينا تغيير متغير $site فقط. يحتفظ متغير $tenant بقيمته من خلال جميع عمليات التشغيل الثلاثة للأمر.

ومع ذلك، ماذا لو أردت القيام بذلك لكل موقع؟ يمكنك القيام بذلك دون الحاجة إلى كتابة جميع مواقع الويب هذه باستخدام هذا الأمر:

Get-SPOSite | ForEach {Get-SPOUser –Site $_.Url} | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

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

راجع أيضًا

الاتصال ب SharePoint PowerShell

إدارة SharePoint باستخدام PowerShell

إدارة Microsoft 365 باستخدام PowerShell

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