ניהול משתמשים וקבוצות של 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

כדי להשתמש בפקודות אלה, החלף את כל מה שכלול במרכאות, < כולל התווים והתווים > , בשמות הנכונים.

לדוגמה, קבוצה זו של פקודות מוסיפה את אופל קסטילו (אופל שם משתמש) לרשימת מנהלי האתרים באוסף האתרים 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 כדי להפעיל אותם.

הוספת משתמש לקבוצות אוסף אתרים אחרות

במשימה זו, אנו משתמשים ב 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

לדוגמה, בוא נוסיף את גלן Rife (שם משתמש גלנן) לקבוצה Auditors באוסף האתרים 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

Create קבוצת אוסף אתרים

השתמש ב- 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 ובקובצי 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

לדוגמה, בוא נסיר את Asaf Overby מהקבוצה 'מבקרים' של אוסף האתרים באוסף האתרים 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 Script. באפשרותך ליצור בקלות רשימה כזו ב- Excel ולאחר מכן לייצא אותה כקובץ CSV. לאחר מכן, עליך להשתמש Windows PowerShell Script כדי לעבור בין רשומות (שורות) בקובץ ה- CSV, ולהוסיף את המשתמשים לקבוצות ולקבוצות לאתרים.

לדוגמה, בוא ניצור קובץ CSV להגדרת קבוצה של אוספי אתרים, קבוצות והרשאות. לאחר מכן, ניצור קובץ CSV לאכלוס הקבוצות במשתמשים. לבסוף, אנו ניצור ונפעיל קובץ Windows PowerShell Script שייצור וימלא את הקבוצות.

קובץ ה- 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}

קובץ ה- Script מייבא את תוכן קובץ ה- 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 כדי לנהל משתמשים בסביבה של SharePoint.

למידע נוסף

התחברות ל- SharePoint PowerShell

ניהול SharePoint באמצעות PowerShell

ניהול Microsoft 365 באמצעות PowerShell

תחילת העבודה עם PowerShell עבור Microsoft 365