none
Permessi di FullMailbox e SendAs RRS feed

  • Domanda

  • Ciao a tutti,
    stavo cercando di verificare per ogni mailbox se i permessi di fullmailboxaccess etc sono assegnati ad utenti o gruppi.

    Stavo provando in questo modo a verificare se

    $MailboxRightsArr = ( Get-MailboxPermission $Mailbox.Identity )

    Foreach($Name in $MailboxRightsArr)
                        {
                            # check if $Name is a Group or not
    ecco, questo check per vedere se $name è un utente o un gruppo mi viene complicate perchè i campi disponibili sono:

    Identity, User, AccessRights, IsInherited, Deny

    La mia idea era fare qualcosa del tipo Get-AdObject -Filter $Name.User però mi da picche...

    Voi avete qualche idea su come verificare se le entry nei permessi siano utenti o gruppi ?

    Grazie!

    giovedì 9 marzo 2017 15:35

Risposte

  • ForEach ($Database in (Get-MailboxDatabase){Get-Mailbox -resultsize "Unlimited" -Database $Database | Get-MailboxPermission | Where-Object {($_.AccessRights -match "FullAccess") -and ($_.IsInherited -eq $false) -and ($_.User -notlike "NT AUTHORITY\SELF")} | select @{Name="Identity";expression={($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV -Path ("c:\fullAccess" + $Database + ".csv") -NoTypeInformation}

    Così funziona senza problemi :)

    • Contrassegnato come risposta OttobreRosso lunedì 20 marzo 2017 16:10
    lunedì 20 marzo 2017 16:10

Tutte le risposte

  • Ciao,

    spero di aver capito bene la Tua esigenza; per il fullAccess, puoi provare la seguente query:

    Get-Mailbox -resultsize "Unlimited" | Get-MailboxPermission | Where-Object {($_.AccessRights -match "FullAccess" -and $_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | select @{Name="Identity";expression={($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV c:\fullAccess.csv

    Per il SendAS:

    Get-Mailbox | Get-ADPermission | where { ($_.ExtendedRights -like "*Send-As*") -and ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF") } | select @{Name="Identity";expression={($_.Identity -split "/")[-1]}}, User, {$_.ExtendedRights} | Export-CSV c:\SendAs.csv

    Nei report prodotti, dovresti avere i dettagli degli utenti/gruppi abilitati.

    Fammi sapere

    :)

    martedì 14 marzo 2017 08:03
  • Ciao!
    Anzitutto grazie mille per la dritta ;)
    Ho provato ma mi da ciccia...

    [PS] D:\>Get-Mailbox -resultsize "Unlimited" | Get-MailboxPermission | Where-Object {($_.AccessRights -match "FullAccess
    " -and $_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | select @{Name="Identity";expression={
    ($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV c:\fullAccess.csv

    Sending data to a remote command failed with the following error message: The total data received from the remote clien
    t exceeded allowed maximum. Allowed maximum is 524288000. For more information, see the about_Remote_Troubleshooting He
    lp topic.
        + CategoryInfo          : OperationStopped: (System.Manageme...pressionSyncJob:PSInvokeExpressionSyncJob) [], PSRe
       motingTransportException
        + FullyQualifiedErrorId : JobFailure

    ...o meglio mi dice che ha raggiunto il limite massimo etc...
    Sai darmi una mano anche su questo o molto più "smart" facciamo così?

    ForEach ($Database in (Get-MailboxDatabase){Get-Mailbox -resultsize "Unlimited" -Database $Database | Get-MailboxPermission | Where-Object {($_.AccessRights -match "FullAccess
    " -and $_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | select @{Name="Identity";expression={
    ($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV -Path ("c:\fullAccess" + $Database + ".csv")}

    Grazie!

    martedì 14 marzo 2017 12:54
  • Ciao,

    potremmo, ad esempio, diversificare il tipo di ricerca impostando un filtro di tipo "RecipientType" (UserMailbox, Shared, Linked, etc..):

    Get-Mailbox -resultsize "Unlimited" | Where {$_.RecipientType –eq "UserMailbox"} | Get-MailboxPermission | Where-Object {($_.AccessRights -match "FullAccess
    " -and $_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | select @{Name="Identity";expression={
    ($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV c:\fullAccess.csv

    Proviamo...

    martedì 14 marzo 2017 20:40
  • Ciao,
    temo sia uguale ma proviamo...
    giovedì 16 marzo 2017 13:05
  • [PS] C:\>Get-Mailbox -resultsize "Unlimited" | Where {$_.RecipientType -eq "UserMailbox"} | Get-MailboxPermission | Whe
    e-Object {($_.AccessRights -match "FullAccess
    >> " -and $_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | select @{Name="Identity";expressi
    n={
    >> ($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV c:\fullAccess.csv
    >>
    Sending data to a remote command failed with the following error message: The total data received from the remote clien
    t exceeded allowed maximum. Allowed maximum is 524288000. For more information, see the about_Remote_Troubleshooting He
    lp topic.
        + CategoryInfo          : OperationStopped: (System.Manageme...pressionSyncJob:PSInvokeExpressionSyncJob) [], PSRe
       motingTransportException
        + FullyQualifiedErrorId : JobFailure

    ...temevo... :)

    giovedì 16 marzo 2017 13:38
  • Ciao,

    proviamo ad utilizzare gli switch -Server e/o -Database:

    Get-Mailbox -Database "Database01" -ResultSize unlimited | Where {$_.RecipientType –eq "UserMailbox"} | Get-MailboxPermission | Where-Object {($_.AccessRights -match "FullAccess
    " -and $_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | Select-Object @{Name="Identity";expression={
    ($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV c:\fullAccess.csv

    Fammi sapere

    :)

    venerdì 17 marzo 2017 13:46
  • ForEach ($Database in (Get-MailboxDatabase){Get-Mailbox -resultsize "Unlimited" -Database $Database | Get-MailboxPermission | Where-Object {($_.AccessRights -match "FullAccess") -and ($_.IsInherited -eq $false) -and ($_.User -notlike "NT AUTHORITY\SELF")} | select @{Name="Identity";expression={($_.Identity -split "/")[-1]}}, User, {$_.AccessRights}, deny | Export-CSV -Path ("c:\fullAccess" + $Database + ".csv") -NoTypeInformation}

    Così funziona senza problemi :)

    • Contrassegnato come risposta OttobreRosso lunedì 20 marzo 2017 16:10
    lunedì 20 marzo 2017 16:10
  • Perfetto,

    meglio così.

    Alla prossima.

    martedì 21 marzo 2017 09:42