Come ottenere il report dei permessi delle caselle di posta di Exchange Online utilizzando PowerShell o Netwrix Auditor
Netwrix Auditor for Exchange
Esegui Netwrix Auditor → Clicca su "Reports" → scegli Exchange Online → State-in-Time Reports → Scegli "Dettagli dei permessi di Mailbox Non-Owner" → clicca su "Visualizza".
Soluzione Nativa
1. Connettiti a Office 365 PowerShell eseguendo PowerShell ISE come amministratore ed eseguendo il seguente comando:
Set-ExecutionPolicy RemoteSigned
2. Richiedi le credenziali di Windows PowerShell eseguendo il seguente comando:
$Cred = Get-Credential
Inserisci il tuo account e la password e poi clicca su OK.
3. Crea una sessione utilizzando il seguente comando, modificando il parametro –ConnectionUri in base alla posizione del tuo Exchange Online:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-liveid/ -Credential$Cred -Authentication Basic –AllowRedirection
4. Connettiti a Exchange Online:
Import-PSSession$Session -DisableNameChecking
5. Genera un rapporto sui permessi degli utenti, esegui una delle seguenti operazioni:
- Per ottenere un riepilogo completo dei permessi degli utenti, utilizza il seguente comando Get-Mailbox:
Get-Mailbox -resultsize unlimited | Get-MailboxPermission | Select Identity, User, Deny, AccessRights, IsInherited| Export-Csv -Path "c:\temp\mailboxpermissions.csv" –NoTypeInformation
- Se hai bisogno di un rapporto su un utente specifico, usa il parametro -identity invece di -resultsize unlimited.
- Per filtrare gli utenti che hanno l'accesso completo, utilizzare il parametro where {($_.accessrights -contains "FullAccess")}:
Get-Mailbox -resultsize unlimited | Get-MailboxPermission| where {($_.accessrights -contains "Fullaccess")} | Select AccessRights,Deny,InheritanceType,User,Identity,IsInherited | Export-Csv -Path "c:\temp\fullaccess.csv" -NoTypeInformation
- Per impostazione predefinita, otterrai un elenco completo degli utenti, inclusi gli accessi non proprietari. Per ottenere informazioni solo sulle autorizzazioni degli utenti diretti, utilizza o {($_.user -ne "NT AUTHORITY\SELF")} oppure {($_.user -like '*@*')}:
Get-Mailbox -resultsize unlimited | Get-MailboxPermission | Select Identity, User, Deny, AccessRights, IsInherited| Where {($_.user -ne "NT AUTHORITY\SELF")}| Export-Csv -Path "c:\temp\NonOwnerPermissions.csv" -NoTypeInformation
- Per visualizzare informazioni sui permessi “Send As”, utilizza il cmdlet Get-RecipientPermission:
Get-Mailbox -resultsize unlimited | Get-RecipientPermission| where {($_.trustee -ne "NT AUTHORITY\SELF")}|select Identity,Trustee,AccessControlType,AccessRights,IsInherited | Export-Csv -Path "c:\temp\sendaspermissions.csv" –NoTypeInformation
- Per segnalare le caselle di posta con il permesso “Send on Behalf”, utilizzare lo script seguente:
$GrantSendOn= Get-Mailbox-resultsize unlimited| where {($_.GrantSendOnBehalfTo -ne "")}
$Out=foreach ($user in $GrantSendOn.GrantSendOnBehalfTo) {
$obj= New-Object System.Object
$obj|Add-MemberNoteProperty eMail$GrantSendOn.WindowsEmailAddress
$obj|Add-Member NoteProperty DisplayName $GrantSendOn.DisplayName
$obj|Add-Member NoteProperty User $user
$obj }
$Out| Export-Csv -Path "c:\temp\sendonbehalfpermissions.csv" –NoTypeInformation
6. Esaminare il rapporto:
7. Termina la tua sessione utilizzando il seguente comando:
Remove-PSSession$Session
Condividi su