PowerShell通过两个自定义属性过滤所有用户,如果它们已从GAL中隐藏,并且还检查O365是否具有转发设置

问题描述 投票:0回答:1

目前,我正在尝试编写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

powershell active-directory office365
1个回答
0
投票

您可以执行以下操作:

$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-MailboxSelect-Object语句使用计算出的属性组合用户和邮箱对象数据。此代码将输出到控制台。如果要将其存储在变量中,则只需将foreach语句设置为类似data = foreach ($User in $UserList) {的变量。]​​>

© www.soinside.com 2019 - 2024. All rights reserved.