У пользователя через Get-ADUser нет свойства с именем targetAddress
Хотя, если вы укажете его в своем выборе, оно будет отображаться в результатах как пустое, поскольку вам разрешено добавлять любое имя свойства, которое выхотите в выборе, существует ли он или нет.
И это также является синтаксической ошибкой
$_.msExchRecipientDisplayType = '-2147483642')
Вы также неправильно используете операции сравнения, но используете операторы присваивания.Значение -eq vs '='.
$_.msExchRecipientDisplayType -eq ...
# Find all cmdlets / functions with a target parameter
Get-Command -CommandType Function |
Where-Object { $_.parameters.keys -match 'targetAddress'} |
Format-Table -Autosize
# No results
Get-Command -CommandType Cmdlet |
Where-Object { $_.parameters.keys -match 'targetAddress'} |
Format-Table -Autosize
# No results
Get-Command -CommandType Function |
Where-Object { $_.parameters.keys -match 'Address'} |
Format-Table -Autosize
# No results
Get-Command -CommandType Cmdlet |
Where-Object { $_.parameters.keys -match 'Address'} |
Format-Table -Autosize
< #
CommandType Name ModuleName
----------- ---- ----------
Cmdlet New-ADDCCloneConfigFile ActiveDirectory
Cmdlet New-ADOrganizationalUnit ActiveDirectory
Cmdlet New-ADUser ActiveDirectory
Cmdlet Set-ADOrganizationalUnit ActiveDirectory
Cmdlet Set-ADUser ActiveDirectory
#>
Get-Command -CommandType Function |
Where-Object { $_.parameters.keys -match 'EmailAddress|proxyAddress'} |
Format-Table -Autosize
# No results
Get-Command -CommandType Cmdlet |
Where-Object { $_.parameters.keys -match 'EmailAddress|proxyAddress'} |
Format-Table -Autosize
< #
CommandType Name ModuleName
----------- ---- ----------
Cmdlet New-ADUser ActiveDirectory
Cmdlet Set-ADUser ActiveDirectory
#>
Clear-Host
(Get-ADUser -Filter * -Properties *)[0] |
Get-Member -Force |
Select Name, MemberType |
Format-Table -AutoSize
Name MemberType
---- ----------
...
EmailAddress Property
...
mail Property
mailNickname Property
...
msExchArchiveQuota Property
msExchArchiveWarnQuota Property
msExchCalendarLoggingQuota Property
msExchCoManagedObjectsBL Property
msExchDumpsterQuota Property
msExchDumpsterWarningQuota Property
msExchELCMailboxFlags Property
msExchHomeServerName Property
msExchMailboxGuid Property
msExchMailboxSecurityDescriptor Property
msExchPoliciesIncluded Property
msExchRBACPolicyLink Property
msExchRecipientDisplayType Property
msExchRecipientTypeDetails Property
msExchTextMessagingState Property
msExchUMDtmfMap Property
msExchUserAccountControl Property
msExchUserCulture Property
msExchVersion Property
msExchWhenMailboxCreated Property
...
proxyAddresses Property
...
#>
Как отмечено на другом сайте, это также это ...
($_.proxyAddresses -contains "*.onmicrosoft.com*")
... действительно должно быть так ...
($_.proxyAddresses -match "onmicrosoft.com")
... или это ...
($_.proxyAddresses -like "*.onmicrosoft.com*")
Обновление для OP
After getting back to my test environment, the below works for the use case.
Get-ADUser -Filter * -Properties msExchRemoteRecipientType,proxyAddresses,msExchRecipientDisplayType,msExchRecipientTypeDetails |
Where-Object {($_.msExchRemoteRecipientType -eq 4) -and
($_.proxyAddresses -match "onmicrosoft.com") -and
($_.msExchRecipientDisplayType -eq '-2147483642') -and
($_.msExchRecipientTypeDetails -eq '2147483648')
}
Кроме того, исправьте, не то, что вам это нужно для того, что вам нужно, поскольку proxyAddresses возвращают то же самое, когда вы попадаете в этот удаленный почтовый ящик O365, вы получаете свойство targetAddress, оно просто отсутствует в локальных почтовых ящиках, следовательнопричина в том, что proxyAddresses может быть более разумным для использования для согласованности.
Get-ADUser -Filter * -Properties msExchRemoteRecipientType,proxyAddresses,targetAddress,msExchRecipientDisplayType,msExchRecipientTypeDetails |
Where-Object {($_.msExchRemoteRecipientType -eq 4) -and
($_.proxyAddresses -match "onmicrosoft.com") -and
($_.targetAddress -match 'onmicrosoft.com') -and
($_.msExchRecipientDisplayType -eq '-2147483642') -and
($_.msExchRecipientTypeDetails -eq '2147483648')
}