目前,我正在尝试编写PowerShell脚本,这将允许我查看所有设置了两个特定自定义属性的AD用户。我正在对此进行过滤。对于那些用户,如果他们从GAL中隐藏,我也要拉。我还需要某种方式能够检查他们的O365帐户是否具有转发设置。一个脚本就能做到这一切吗?目前这是我所拥有的,但由于无法正常工作,因此正在向前迈进。非常感谢您的帮助!
这里是代码:
$UserList = Get-ADUser -Filter {ExtensionAttribute1 -Like "*" -AND ExtensionAttribute2 -Like "*"} -Properties DisplayName, EmailAddress, ExtensionAttribute1,ExtensionAttribute2,msExchHideFromAddressLists | select DisplayName, EmailAddress, ExtensionAttribute1, ExtensionAttribute2, msExchHideFromAddressLists; Get-Mailbox -Identity $UserList | select ForwardingSmtpAddress, DeliverToMailboxAndForward
您可以执行以下操作:
$Params = @{
Filter = "ExtensionAttribute1 -Like '*' -AND ExtensionAttribute2 -Like '*'"
Properties = 'DisplayName','EmailAddress','ExtensionAttribute1','ExtensionAttribute2','msExchHideFromAddressLists'
}
$UserList = Get-ADUser @Params
foreach ($User in $UserList) {
$Mailbox = Get-Mailbox -Identity $User.EmailAddress
$User | Select-Object DisplayName,EmailAddress,ExtensionAttribute1,ExtensionAttribute2,msExchHideFromAddressLists,
@{n='ForwardingSmtpAddress';e={$Mailbox.ForwardingSmtpAddress}},
@{n='DeliverToMailboxAndForward';e={$Mailbox.DeliverToMailboxAndForward}}
}
代码将AD用户数据作为集合存储在$UserList
中。使用foreach
循环对该集合进行迭代,以对每个用户执行Get-Mailbox
。 Select-Object
语句使用计算出的属性组合用户和邮箱对象数据。此代码将输出到控制台。如果要将其存储在变量中,则只需将foreach
语句设置为类似data = foreach ($User in $UserList) {
的变量。]>