Quantcast
Channel: PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Viewing all articles
Browse latest Browse all 6937

Get Mailbox Permissions in CSV file - only from ADUsers with a givenname

$
0
0

Hey!

I need to make a CSV file with the name of the mailbox (mb Identity), user, accessrights and deny. But I only want to that for ADUsers who have a givenname AND a surname not only a surname.

I thought of something like that:

$File_Path = $args[0]
$File_Path = ((Get-Item -Path ".\" -Verbose).FullName) + "\" + $File_Path

$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
[System.IO.File]::WriteAllLines($File_Path, "Mailbox;Right Holder;Rights;Deny", $Utf8NoBomEncoding)

$Mailboxes = Get-Mailbox -ResultSize Unlimited

Foreach ($Mailbox in $Mailboxes) {
    $mbPermissions = get-mailboxpermission $Mailbox
    $str_DN = $Mailbox.DistinguishedName
    $ad_obj = [ADSI]"GC://$str_DN"

    Foreach ($mbPermission in $mbPermissions) {
        If ($mbPermission.IsInherited -eq $False -and $mbPermission.User -notlike "NT-AUTORITÄT\SELBST") {
            [System.IO.File]::AppendAllText($File_Path, "$($mbPermission.Identity);$($mbPermission.User);$($mbPermission.AccessRights);$($mbPermission.Deny)`r", $Utf8NoBomEncoding)
        }
    }
    $ADPermissions = get-ADPermission $Mailbox.Identity
   
    Foreach ($ADPermission in $ADPermissions) {
        If ($ADPermission.ExtendedRights -like "Send-As" -and $ADPermission.User -notlike "NT-AUTORITÄT\SELBST" -and $ADPermission.Deny -eq $false)    {
            [System.IO.File]::AppendAllText($File_Path, "$($ADPermission.Identity);$($ADPermission.User);$($ADPermission.ExtendedRights);$($ADPermission.Deny)`r", $Utf8NoBomEncoding)
        }
    }
}

This works perfectly fine, but does not exclude mailboxes from users who have no givenname. I'm a little bit stuck here.

Thanks for your help!


Viewing all articles
Browse latest Browse all 6937

Trending Articles