Aracılığıyla paylaş


PowerShell ile SharePoint kullanıcılarını ve gruplarını yönetme

Bu makale hem Microsoft 365 Kurumsal hem de Office 365 Kurumsal için geçerlidir.

Büyük kullanıcı hesapları veya grupları listeleriyle çalışan ve bunları yönetmek için daha kolay bir yol isteyen bir SharePoint yöneticisiyseniz, Microsoft 365 için PowerShell'i kullanabilirsiniz.

Başlamadan önce, bu makaledeki yordamlar SharePoint'e bağlanmanızı gerektirir. Yönergeler için bkz. SharePoint PowerShell'e bağlanma

Sitelerin, grupların ve kullanıcıların listesini alma

Kullanıcıları ve grupları yönetmeye başlamadan önce sitelerinizin, gruplarınızın ve kullanıcılarınızın listelerini almanız gerekir. Daha sonra, bu makaledeki örnekle çalışmak için bu bilgileri kullanabilirsiniz.

Şu komutla kiracınızdaki sitelerin listesini alın:

Get-SPOSite

Şu komutla kiracınızdaki grupların listesini alın:

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

Şu komutla kiracınızdaki kullanıcıların listesini alın:

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

Site yöneticileri grubuna kullanıcı ekleme

Bir site koleksiyonundaki Set-SPOUser site yöneticileri listesine kullanıcı eklemek için cmdlet'ini kullanırsınız.

$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

Bu komutları kullanmak için, ve > karakterleri de dahil olmak üzere < tırnak içindeki her şeyi doğru adlarla değiştirin.

Örneğin, bu komut kümesi Contoso kiracısında ContosoTest site koleksiyonundaki site yöneticileri listesine Opal Castillo'yu (kullanıcı adı opalc) ekler:

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

Bu komutları kopyalayıp Not Defteri'ne yapıştırabilir, $tenant, $site ve $user değişken değerlerini ortamınızdaki gerçek değerlerle değiştirebilir ve ardından bunları çalıştırmak için SharePoint Yönetim Kabuğu pencerenize yapıştırabilirsiniz.

Diğer site koleksiyonu gruplarına kullanıcı ekleme

Bu görevde, bir site koleksiyonundaki Add-SPOUser SharePoint grubuna kullanıcı eklemek için cmdlet'ini kullanırız.

$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

Örneğin, contoso kiracısında ContosoTest site koleksiyonundaki Denetçiler grubuna Glen Rife (kullanıcı adı glenr) ekleyelim:

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

Site koleksiyonu grubunu İçerik Oluşturucu

Cmdlet'ini New-SPOSiteGroup kullanarak yeni bir SharePoint grubu oluşturur ve bunu bir site koleksiyonuna eklersiniz.

$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

İzin düzeyleri gibi grup özellikleri daha sonra cmdlet'i kullanılarak Set-SPOSiteGroup güncelleştirilebilir.

Örneğin, contoso kiracısında contosotest site koleksiyonuna Yalnızca Görüntüleme izinlerine sahip Denetçiler grubunu ekleyelim:

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

Gruptan kullanıcı kaldırma

Bazen bir kullanıcıyı bir siteden, hatta tüm sitelerden kaldırmanız gerekir. Belki de çalışan bir bölümden diğerine geçer veya şirketten ayrılır. Bunu kullanıcı arabiriminde bir çalışan için kolayca yapabilirsiniz, ancak tam bir bölümü bir siteden diğerine taşımanız gerektiğinde bu işlem kolayca yapılamaz.

Ancak SharePoint Yönetim Kabuğu ve CSV dosyalarını kullanarak bu hızlı ve kolay bir işlemdir. Bu görevde, bir kullanıcıyı site koleksiyonu güvenlik grubundan kaldırmak için Windows PowerShell kullanırsınız. Ardından bir CSV dosyası kullanır ve farklı sitelerden çok sayıda kullanıcıyı kaldırırsınız.

Komut söz dizimini görebilmek için site koleksiyonu grubundan tek bir Microsoft 365 kullanıcısını kaldırmak için 'Remove-SPOUser' cmdlet'ini kullanacağız. Söz dizimi şöyle görünür:

$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

Örneğin, contoso kiracısında contosotest site koleksiyonundaki site koleksiyonu Denetçileri grubundan Ahmet Overby'yi kaldıralım:

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

Bobby'yi şu anda içinde olduğu tüm gruplardan kaldırmak istediğimizi varsayalım. Bunu şu şekilde yaparız:

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

Uyarı

Bu sadece bir örnektir. Her gruptan bir kullanıcıyı kaldırmanız gerekmediği sürece (örneğin, kullanıcı şirketten ayrıldığında) bu komutu çalıştırmamalısınız.

Büyük kullanıcı ve grup listelerinin yönetimini otomatikleştirme

SharePoint sitelerine çok sayıda hesap eklemek ve bunlara izin vermek için Microsoft 365 yönetim merkezi, tek tek PowerShell komutlarını veya PowerShell'i ve csv dosyasını kullanabilirsiniz. Bu seçenekler arasında CSV dosyası, bu görevi otomatikleştirmenin en hızlı yoludur.

Temel işlem, Windows PowerShell betiğin ihtiyaç duyduğu parametrelere karşılık gelen üst bilgileri (sütunları) içeren bir CSV dosyası oluşturmaktır. Excel'de bu tür bir listeyi kolayca oluşturabilir ve csv dosyası olarak dışarı aktarabilirsiniz. Ardından, CSV dosyasındaki kayıtlar (satırlar) arasında yineleme yapmak ve kullanıcıları gruplara ve grupları sitelere eklemek için bir Windows PowerShell betiği kullanırsınız.

Örneğin, bir grup site koleksiyonu, grup ve izin tanımlamak için bir CSV dosyası oluşturalım. Ardından, grupları kullanıcılarla doldurmak için bir CSV dosyası oluşturacağız. Son olarak grupları oluşturan ve dolduran bir Windows PowerShell betiği oluşturup çalıştıracağız.

İlk CSV dosyası bir veya daha fazla site koleksiyonuna bir veya daha fazla grup ekler ve şu yapıya sahip olur:

Üstbilgi:

Site,Group,PermissionLevels

Öğe:

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

Örnek bir dosya aşağıda verilmişti:

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

İkinci CSV dosyası bir veya daha fazla gruba bir veya daha fazla kullanıcı ekler ve şu yapıya sahip olur:

Üstbilgi:

Group,LoginName,Site

Öğe:

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

Örnek bir dosya aşağıda verilmişti:

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

Sonraki adım için, sürücünüze kaydedilmiş iki CSV dosyasının olması gerekir. Burada hem CSV dosyalarını kullanan hem de izin ve grup üyeliği ekleyen örnek komutlar verilmiştir:

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}

Betik, CSV dosya içeriğini içeri aktarır ve New-SPOSiteGroup ve Add-SPOUser komutlarının parametrelerini doldurmak için sütunlardaki değerleri kullanır. Örneğimizde, bu dosyayı C sürücüsündeki O365Admin klasörüne kaydediyoruz, ancak istediğiniz yere kaydedebilirsiniz.

Şimdi aynı CSV dosyasını kullanarak farklı sitelerdeki birkaç grup için bir grup kişiyi kaldıralım. Aşağıda örnek bir komut verilmişti:

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

Kullanıcı raporları oluşturma

Birkaç site için bir rapor almak ve bu sitelerin kullanıcılarını, izin düzeylerini ve diğer özellikleri görüntülemek isteyebilirsiniz. Söz dizimi şöyle görünür:

$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

Bu, bu üç sitenin verilerini alır ve yerel sürücünüzdeki bir metin dosyasına yazar. –Append parametresi var olan bir dosyaya yeni içerik ekler.

Örneğin, Contoso1 kiracısı için ContosoTest, TeamSite01 ve Project01 sitelerinde bir rapor çalıştıralım:

$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

Yalnızca $site değişkenini değiştirmek zorunda kaldık. $tenant değişkeni, değerini komutun üç çalıştırmasına kadar korur.

Ancak, bunu her site için yapmak isterseniz ne olur? Bu komutu kullanarak tüm bu web sitelerini yazmak zorunda kalmadan bunu yapabilirsiniz:

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

Bu rapor oldukça basittir ve daha ayrıntılı bilgiler içeren daha belirli raporlar veya raporlar oluşturmak için daha fazla kod ekleyebilirsiniz. Ancak bu size SharePoint ortamındaki kullanıcıları yönetmek için SharePoint Yönetim Kabuğu'nun nasıl kullanılacağı hakkında bir fikir vermelidir.

Ayrıca bkz.

SharePoint PowerShell'e bağlanma

SharePoint'i PowerShell ile yönetme

PowerShell ile Microsoft 365’i yönetme

Microsoft 365 için PowerShell'i kullanmaya başlama