Bir Kullanıcının Exchange/Microsoft 365'te Erişebildiği Posta Kutularının Listesini Alın


Bir Exchange Server kuruluşunda veya Microsoft 365 kiracısında (Exchange Online) posta kutusu izinlerini denetlerken, yöneticinin belirli bir kullanıcının erişimi olan tüm posta kutularını bulması gerekir. Bu makalede, belirli bir kullanıcının erişim izinlerine sahip olduğu posta kutularının (ve belirli Outlook klasörlerinin) bir listesini almak için bazı PowerShell komut dosyalarına göz atacağız.

Bir Kullanıcının Erişebileceği Tüm Exchange veya Microsoft 365 Posta Kutularını Listeleme

Bir posta kutusuna atanan izinlerin listesini almak için Get-MailboxPermission cmdlet'ini kullanın.

Daha önce, Exchange/Microsoft 365'te posta kutuları ve klasör izinlerinin nasıl yönetileceğini göstermiştik.

Bir PowerShell konsolu açın ve şirket içi Exchange Sunucunuza veya Microsoft 365'e (Exchange Online) uzaktan bağlanın.

Aşağıdaki komut, belirtilen posta kutusuna erişim izni olan kullanıcıların bir listesini görüntüler:

get-mailboxpermission -identity t.muller@a-d.onmicrosoft.com |ft -AutoSize

Bu örnekte, Grady ve Henrietta'nın belirtilen posta kutusuna Tam Erişim izinlerini atadığını görebilirsiniz. İzinler manuel olarak atanır (miras alınmaz), çünkü

IsInherited = False

Posta kutularına atanan izinlerle ilgili tam bir rapor görüntüleyebilir ve bunu uygun bir Out-GridView tablosunda gösterebilirsiniz:

Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Out-GridView

Aşağıdaki PowerShell komutunu kullanarak Exchange kuruluşunuzdaki veya kiracınızdaki belirli bir kullanıcının Tam Erişim izinlerine sahip olduğu posta kutularını bulabilir ve listeleyebilirsiniz:

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User Henrietta | ft User,Identity,AccessRights

Bu örnekte, bir kullanıcıya üç posta kutusuna (Kimlik sütunu) Tam Erişim atandığını bulduk.

Microsoft 365'te, bu listeyi almak için yeni Exchange Online PowerShell v2 (EXO V2) modülü cmdlet'lerini kullanabilirsiniz:

Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission -Identity $_.Identity | Where-Object {$_.User -eq "Henrietta@a-d.onmicrosoft.com"}

Filtreleri posta kutusu türüne göre kullanabilirsiniz. Aramanızı daha hızlı yapacaktır. Bunu yapmak için şunu ekleyin:

-RecipientTypeDetails

Get-EXOMailbox veya Get-Mailbox komutunu seçin ve aramak istediğiniz posta kutusu tipini belirtin:

  • DiscoveryMailbox
  • EquipmentMailbox
  • GroupMailbox
  • LegacyMailbox
  • LinkedMailbox
  • LinkedRoomMailbox
  • RoomMailbox
  • SchedulingMailbox
  • SharedMailbox
  • TeamMailbox
  • UserMailbox

Örneğin:

Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox| Get-MailboxPermission -User "Henrietta" | ft User,Identity,AccessRights

Bir kullanıcının posta kutularını bulmak için Farklı Gönder izinleri vardır:

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-RecipientPermission -Trustee Henrietta

Adına gönder izinlerinin etkinleştirildiği posta kutularını da bulabilirsiniz:

Get-Mailbox | ? {$_.GrantSendOnBehalfTo -match "Henrietta"}

Diğer kullanıcıların posta kutularındaki kullanıcı etkinlikleri hakkında bilgi almak için Exchange denetim günlüğünü ve Azure oturum açma günlüklerini kullanabilirsiniz.

Bir Kullanıcının Exchange/Microsoft 365 Üzerinde Erişebileceği Posta Kutusu Klasörlerini Nasıl Listeleyebilirim?

Tüm Exchange (Microsoft 365) posta kutusuna izin atamanın yanı sıra, belirli bir posta kutusu klasörüne erişim verebilirsiniz. Örneğin, yalnızca

Inbox

veya

Calendar

dosya. Kullanıcı izinlerini denetlerken bazen yalnızca FullAccess izinlerine sahip posta kutularını değil, aynı zamanda kullanıcıların posta kutularında diğer kullanıcıların erişebildiği belirli klasörleri de bulmanız gerekir.

Get-MailboxFolderStatistics cmdlet'ini kullanarak, belirtilen posta kutusundaki klasörlerin bir listesini alabilirsiniz. Ardından, klasör izinlerini listelemek için Get-MailboxFolderPermission'u kullanabilirsiniz.

Aşağıdaki PowerShell komut dosyası, kuruluşunuzdaki tüm posta kutularını kontrol eder ve bir kullanıcının erişebildiği klasörleri (alt klasörler dahil) listeler.

Çok sayıda posta kutusu olan Exchange kuruluşlarında komut dosyası yavaş çalışabilir. Posta kutuları listesini önceden filtrelemeniz veya parçalar halinde kontrol etmeniz önerilir. Get-MailboxFolderStatistics'i kullanarak bir klasör hakkında bilgi aldığınızda, posta kutusunun boyutu ve içindeki klasörlerin sayısı da komut dosyası performansını etkiler.

$user_find_permissions= "*Henrietta Fischer*"
$allpermissions = @()
$MBXs= Get-Mailbox -ResultSize Unlimited
Foreach ($MBX in $MBXs){
$MBXfolders=Get-MailboxFolderStatistics $MBX.PrimarySmtpAddress |select Name
Foreach ($MBXfolder in $MBXfolders){
try {
$folder=$MBX.PrimarySmtpAddress + ":\" + $MBXfolder.name
$folderpermessions= Get-MailboxFolderPermission -Identity $folder -ErrorAction Stop | where {($_.user -like $user_find_permissions)}
$allpermissions += $folderpermessions
}
catch {
Continue
}
}
}
$allpermissions | select Identity, FolderName, User,AccessRights

Bu PowerShell betiği, belirli bir kullanıcının erişimi olan diğer kullanıcıların posta kutularındaki tüm klasörleri listeler. Posta kutusu adı (Kimlik), KlasörAdı ve atanan klasör izinleri (Düzenleyici, Gözden Geçiren vb.) görüntülenir.

Kullanıcı posta kutularındaki belirli e-posta mesajlarını aramak ve silmek için Search-Mailbox veya New-ComplianceSearch cmdlet'lerini kullanabilirsiniz.

Ayrıca, yeni kullanabilirsiniz

Get-EXOMailbox

,

Get-EXOMailboxFolderPermission

, Ve

Get-EXOMailboxFolderStatistics

Microsoft 365 için EXOv2 modülündeki cmdlet'ler.

İlgili makaleler