Powershell
如何獲取具有作為發送權限的 AD 安全組的所有郵箱
我需要幫助以查找 powershell 命令以查找所有共享郵箱,這些郵箱具有分配給它們的“SendAs”權限的 AD 安全組;到一個文本文件。
我到目前為止的腳本是:
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://MY-EXCHANGE BOX/PowerShell/" -Authentication Kerberos Import-PSSession $ExchangeSession $WFMGroups = $GroupSAMs = %{Get-Mailbox $_ | select -ExpandProperty dist* | %{Get-ADPermission $_ | ?{$_.extendedrights -like '*Send-As*'} | select -ExpandProperty User | %{$_.tostring().replace("DOMAIN\","")}} | %{get-adobject -filter{samaccountname -eq $_}} | ?{$_.ObjectClass -eq "group"}} | select -ExpandProperty name foreach ($WFMGroup in $WFMGroups) { $WFMGroup.GroupScope = "Universal" Set-DistributionGroup -Identity $WFMGroup -Alias $WFMGroup Set-DistributionGroup -Identity "$WFMGroup" -EmailAddressPolicyEnabled "$false" -DisplayName "$WFMGroup" -PrimarySmtpAddress "$WFMGroup@maildomain.com" -HiddenFromAddressListsEnabled:$true -ManagedBy "AD-OBJECT" }
如果無法訪問 ActiveDirectory 模組(如您在其他論壇上的主題中所述),要實現您所尋求的,您需要使用 Exchange 命令行管理程序(或其隱式遠端處理等效項)中提供的工具來執行此操作。
具體來說,替換腳本的這一行:
%{get-adobject -filter{samaccountname -eq $_}} | ?{$_.ObjectClass -eq "group"}} | select -ExpandProperty name
使用這一行(注意別名擴展):
ForEach-Object {Get-Recipient $_} | Where-Object {$_.RecipientType -like "*Group"}
使用前徹底測試。
此外,我強烈建議不要以這種方式以程式方式更新組範圍 - 其他設置可能沒問題。更改這麼多範圍的組範圍的問題是,您不可避免地會遇到將全域組的範圍更改為通用組的情況,但由於它是另一個全域組的成員(不能有通用組作為成員)。