Tôi đang cố lấy danh sách các tài khoản Active Directory không có địa chỉ với một tên miền nhất định trong Địa chỉ proxy của chúng. Tôi biết rằng để tìm những cái làm được, tôi có thể làm:
Get-AdUser -Filter 'proxyAddresses -like' 'smtp:*@domain.com'''
Tuy nhiên, điều ngược lại không hoạt động, bởi vì nếu chúng thậm chí có một mục khác trong địa chỉ proxy (và tất cả các tài khoản của chúng tôi đều có, như địa chỉ X500 và địa chỉ onmicrosoft), thì nó sẽ khớp với mục đó và vẫn trả về đối tượng. Tôi cũng biết tôi có thể làm điều gì đó như:
Get-AdUser -Filter * -Properties proxyAddresses |
ForEach-Object -Begin { $filteredList = @() } -Process {
$notfound = $true
$_.proxyAddresses | ForEach-Object -Process {
if ($_ -like 'smtp:*@domain.com') {
$notfound = $false
}
}
if ($notfound) { $filteredList += $_ }
}
Thay vào đó, có cách nào để tôi có thể thực hiện việc này trong Where-Object FilterScript không? tức là lọc phía máy chủ chứ không phải phía máy khách? Tôi đã thử điều này để xem liệu tôi có thể đảo ngược giá trị đúng/sai từ "-like" hay không, nhưng có vẻ như nó không hoạt động, tôi vẫn nhận được tất cả các tài khoản:
Get-AdUser -Filter * -Properties proxyAddresses | Where-Object -FilterScript { if ($_.proxyAddresses -like 'smtp:*@domain.com') { $false } other { $true } }
Bất kỳ ý tưởng?