При работе с Exchange вечно возникают какие-то нетривиальные задачи, а вот возможности администрирования Exchange резко сократились в новых версиях через web GUI и все больше приходится обращаться к Powershell. Сегодня я хотел бы представить скрипт, который позволяет получить список общих папок из адресной книги, от имени которых пользователи могут отправлять почту:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
If (Test-Path MailPublicFolderUserPermission1.txt) { Remove-Item MailPublicFolderUserPermission1.txt } If (Test-Path MailPublicFolderUserPermission2.txt) { Remove-Item MailPublicFolderUserPermission2.txt } echo $("Public folder path`tPublic folder DisplayName`tSend-As users") | out-file -Append MailPublicFolderUserPermission1.txt echo $("Public folder path`tPublic folder DisplayName`tSend-As users") | out-file -Append MailPublicFolderUserPermission2.txt $PFList = Get-PublicFolder -Recurse | ?{ $_.MailEnabled -eq "True" }; foreach ($PF in $PFList) { $MPF=Get-MailPublicFolder -Identity $PF; $userEntry=@(); $userList=''; $PFID="\"+$PF.Name.Replace('"','""').Replace('&','`&'); if ($PF.ParentPath -ne "\") { $PFID=$PF.ParentPath+$PFID }; # Показать общие папки, которые видны в адресной книге if (-Not $MPF.HiddenFromAddressListsEnabled) { $permissions = Get-ADPermission -Identity $MPF.Identity foreach ($user in $permissions) { # Если нужно каждого пользователя в одной строке, то оставляем первое условие и комментируем второе. # Если нужен список всех пользователей в одной строке, то оставляем второе условие и комментируем первое. if ( $user.Extendedrights -like 'Send-As' -and $user.User -notlike 'S-1-5-21-*') { echo ($PFID+"`t"+$MPF.DisplayName+"`t"+$user.User) | out-file -Append MailPublicFolderUserPermission1.txt }; if ( $user.Extendedrights -like 'Send-As' -and $user.User -notlike 'S-1-5-21-*') { $userEntry+=$user.User }; }; if($userEntry.length -gt 0) { $userList=$($userEntry -join ','); echo $($PFID+"`t"+$MPF.DisplayName+"`t"+$userList) | out-file -Append MailPublicFolderUserPermission2.txt; }; } } |