PowerShell'i kullanarak Klasör İzinlerini Yönetme | Ofis 365
Bu yazımızda PowerShell klasör izinleri komutunun Office 365 ve Exchange Online ortamında kullanımını inceliyoruz.
Klasör izinleri
Teknik olarak, belirli bir klasörü paylaşma özelliği, kullanıcı klasörlerinin her biri için uygulanabilir. Ancak çoğu zaman bir klasörü paylaşma ihtiyacı takvim ve kişiler klasörüyle ilgilidir.
Klasör Paylaşımı'nı kullanarak diğer kullanıcıların Takvim, Kişiler ve Görevler gibi belirli Outlook klasörlerine erişmesini sağlayabiliriz.
“Klasör Paylaşımı” işlemi iki unsura dayanır: klasörü paylaşmak istediğimiz kullanıcı (veya grup) ve etkinleştirmek istediğimiz izin düzeyi.
Örneğin, varsayılan olarak kullanıcılar diğer alıcıların yalnızca serbest/meşgul zamanlarını görebilir.
Diğer kullanıcıların toplantı hakkında daha fazla bilgi almasına izin vermek istersek, varsayılan izinleri değiştirebilir ve diğer kullanıcıların toplantı konusu, yeri gibi toplantıyla ilgili ek bilgileri görmesini sağlayabiliriz.
Klasör izinleri kullanıcının kendisi tarafından (Outlook veya OWA arayüzü kullanılarak) veya PowerShell kullanılarak atanabilir.
Klasör izinlerini yönetmek için PowerShell kullanmanın avantajı, yöneticinin kullanıcı için gerekli ayarı uzaktan oluşturabilmesi (kullanıcılara yardımcı olması ve yapılandırmaların kaçırılmasını önlemesi) ve Toplu Modda komutları yürütmek için PowerShell'in gücünü kullanmasıdır (birden fazla kişinin yapılandırma ayarlarını yürütmek) posta kutusu).
Roller ve izinler
AccessRights parametresi ayrıca, daha önce listelenen hakların birleşimi olan aşağıdaki rollere sahip kullanıcının izinlerini de belirtir:
- None
KlasörGörünür
- Owner
CreateItems, ReadItems, CreateSubfolders, FolderOwner, FolderContact, FolderVisible, EditOwnedItems, EditAllItems, deleteOwnedItems, deleteAllItems
- PublishingEditor
CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, deleteOwnedItems, deleteAllItems
- Editor
CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, deleteOwnedItems, deleteAllItems
- PublishingAuthor
CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, deleteOwnedItems
- Author
CreateItems, ReadItems, FolderVisible, EditOwnedItems, deleteOwnedItems
- NonEditingAuthor
-
CreateItems, ReadItems, FolderVisible
- Reviewer
ReadItems, FolderVisible
- Contributor
CreateItems, FolderVisible
Klasör izinleri PowerShell komutlarının temel yapısı
PowerShell Klasör izinleri komutunun temel yapısı aşağıdaki sözdizimi kullanılarak yazılmıştır:
Örneğimizde, Alice'in yönetici takviminde (John) Yayınlama Düzenleyicisi iznine sahip olmasını sağlamak istiyoruz.
-Identity parametresi, takvimini "paylaşmak" isteyen kullanıcıyla ilgilidir (diğer kullanıcılara takviminin içeriğine erişme seçeneği sunar) ve -User parametresi takvime erişebilecek kullanıcıyı temsil eder.
1. Takvim klasörüne Klasör İzni atayın (Takvim paylaşımı)
1.1 - Takvim Klasörüne Yayınlama Düzenleyicisi İzni Atayın
PowerShell komut sözdizimi:
Add-MailboxFolderPermission <Identity>:\calendar -User <Identity> -AccessRight <Access Right>PowerShell komut örneği:
Add-MailboxFolderPermission "John:\calendar" -AccessRight PublishingEditor -User "Suzan" -AccessRight PublishingEditor1.2 - Mevcut tüm Takvimlere belirli bir kullanıcıya Yayınlama Düzenleyicisi izinleri atayın (Toplu Mod)
PowerShell komut sözdizimi:
Get-Mailbox | ForEach-Object {Add-MailboxFolderPermission $_":\Calendar" -User <Identity> -AccessRights <Access Right>}
PowerShell komut örneği:
Get-Mailbox | ForEach-Object {Add-MailboxFolderPermission $_":\Calendar" -User "John" -AccessRights PublishingEditor}1.3 - Takvimin varsayılan Klasör iznini şu şekilde ayarlayın: Yayınlama Düzenleyicisi
PowerShell komut sözdizimi:
Set-MailboxFolderPermission <Identity>:\calendar -User default -AccessRights PublishingEditorPowerShell komut örneği:
Set-MailboxFolderPermission "John:\calendar" -User default -AccessRights PublishingEditor1.4 - Kuruluşunuzdaki herkes için varsayılan paylaşım iznini şu şekilde ayarlayın: Gözden Geçirici (Toplu Mod)
PowerShell komut sözdizimi:
$AllMailboxes = Get-Mailbox -Resultsize Unlimited
Foreach ($user in $AllMailboxes) {
Set-mailboxfolderpermission -identity ($user.alias + ':\calendar') -user Default -Accessrights Reviewer
}1.5 - Takvim klasörüne Yayınlama Düzenleyicisi İzni Atayın - Farklı dil
PowerShell komut sözdizimi:
$id = <Identity>; $id += ":\" + (Get-MailboxFolderStatistics -Identity $id | Where-Object {$_.FolderType -eq "Calendar"}).Name; Add-MailboxFolderPermission $id -User <Identity> -AccessRights PublishingEditorPowerShell komut örneği:
$id = "John"; $id += ":\" + (Get-MailboxFolderStatistics -Identity $id | Where-Object {$_.FolderType -eq "Calendar"}).Name; Add-MailboxFolderPermission $id -User "Suzan" -AccessRights PublishingEditor2. Kişiler klasörüne Klasör izni atayın
2.1 - Kişiler Klasörüne Yayınlama Düzenleyicisi İzni Atayın
PowerShell komut sözdizimi:
Add-MailboxFolderPermission <Identity>:\contacts -AccessRight PublishingEditor -User <Identity>PowerShell komut örneği:
Add-MailboxFolderPermission "John:\contacts" -AccessRight PublishingEditor -User "Suzan"2.2 - Kişiler klasörünün varsayılan iznini Yayınlama Düzenleyicisi olarak ayarlayın
PowerShell komut sözdizimi:
Set-MailboxFolderPermission <Identity>:\contacts -User default -AccessRights EditorPowerShell komut örneği:
Set-MailboxFolderPermission "John:\contacts"" -User default -AccessRights Editor3. Klasör iznini görüntüle (Takvim ve Kişiler)
3.1 - Takvimi görüntüleme Klasör izni
PowerShell komut sözdizimi:
Get-MailboxFolderPermission <Identity>:\calendarPowerShell komut örneği:
Get-MailboxFolderPermission "John:\calendar"Ayarlamalar ve Özelleştirmeler: Ekran çıktısı ayrıntılarını filtreleyin.
PowerShell komut örneği:
Get-MailboxFolderPermission "John:\calendar" | Select FolderName, User, AccessRights3.2 - Kişileri görüntüleme Klasör izni
PowerShell komut sözdizimi:
Get-MailboxFolderPermission <Identity>:\contactsPowerShell komut örneği:
Get-MailboxFolderPermission "John:\contacts"Ayarlamalar ve Özelleştirmeler: Ekran çıktısı ayrıntılarını filtreleyin.
PowerShell komut örneği:
Get-MailboxFolderPermission "John:\contacts" | Select FolderName, User, AccessRights3.3 - Tüm alıcılar için klasörü dışa aktarma izni (Toplu mod) | CSV Formatı
PowerShell komut sözdizimi:
Get-Mailbox | Get-MailboxFolderPermission | Export-CSV <Path> -Encoding UTF8 -NoTypeInformationPowerShell komut örneği:
Get-Mailbox | Get-MailboxFolderPermission | Export-CSV "c:\temp\users.csv" -Encoding UTF8 -NoTypeInformation4. Klasör izinlerini kaldırın
4.1 - Belirli bir kullanıcı için Takvim klasöründen İzni Kaldırma
PowerShell komut sözdizimi:
Remove-MailboxFolderPermission <Identity>:\calendar -User <Identity>PowerShell komut örneği:
Remove-MailboxFolderPermission "John:\calendar" -User "Suzan"Ayarlamalar ve Özelleştirmeler: Onay istemini kaldırın.
Remove-MailboxFolderPermission "John:\calendar" -User "Suzan" -Confirm:$false4.2 - Belirli bir kullanıcı için kişiler klasöründen İzni Kaldırma
PowerShell komut sözdizimi:
Remove-MailboxFolderPermission <Identity>:\contacts -User <Identity>PowerShell komut örneği:
Remove-MailboxFolderPermission "John:\contacts" -User "Suzan"Ayarlamalar ve Özelleştirmeler: Onay istemini kaldırın.
Remove-MailboxFolderPermission "John:\contacts" -User "Suzan" -Confirm:$False4.3 - Belirli bir kullanıcının iznini tüm Takvimlerden kaldırın (Toplu Mod)
PowerShell komut sözdizimi:
Get-Mailbox | ForEach-Object {Remove-MailboxFolderPermission $_":\Calendar" -User <Identity>} -Confirm:$FalsePowerShell komut örneği:
Get-Mailbox | ForEach-Object {Remove-MailboxFolderPermission $_":\Calendar" -User "John"} -Confirm:$False5. Klasör izinlerini atayın | Gelişmiş
5.1 - Belirli bir posta kutusu klasörüne Klasör İzinleri Atayın
PowerShell komut sözdizimi:
Add-MailboxFolderPermission -Identity <Identity>:\inbox\<folder> -user <Identity> -AccessRightsPowerShell komut örneği:
Add-MailboxFolderPermission -Identity "John:\inbox\Folder A" -user "Suzan" -AccessRights Reviewer5.2 - Özyinelemeli Paylaşılan Klasör İzinlerini Atayın
PowerShell komut sözdizimi:
ForEach ($f in (Get-MailboxFolderStatistics <source mailbox> | Where { $_.FolderPath.Contains("/") -eq $True } ) ) {
$fname = "<source mailbox>:" + $f.FolderPath.Replace("/", "\"); Add-MailboxFolderPermission $fname -User <user> -AccessRights Reviewer
Write-Host $fname
Start-Sleep -Milliseconds 1000
}PowerShell komut örneği:
ForEach ($f in (Get-MailboxFolderStatistics "Suzan" | Where { $_.FolderPath.Contains("/") -eq $True } ) ) {
$fname = "Suzan:" + $f.FolderPath.Replace("/", "\"); Add-MailboxFolderPermission $fname -User "John" -AccessRights Reviewer
Write-Host $fname
Start-Sleep -Milliseconds 1000
}