我正在尝试获取没有设置描述的Active Directory用户列表。
我从获取用户列表开始:
$users = Get-AdUser -Filter {(Enabled -eq "True" )} -Properties Description
然后我尝试了这些选项(获取没有描述的用户列表):
$NoDescrUsers = $users | Where-Object {$_.Description -eq ""}
$NoDescrUsers = $users | Where-Object {$_.Description -eq ''}
$NoDescrUsers = $users | Where-Object $_.Description -eq ""
$NoDescrUsers = $users | Where-Object {$_.Description -match ""}
$NoDescrUsers = $users | Where-Object -not {$_.Description -like '*'}
这些都不起作用(或者它在foreach
中返回0或返回所有人)。我的命令应该是什么样的?
答案 0 :(得分:2)
我不确定为什么你试过的选项都没有用(看起来应该是这样)。谷歌搜索了普遍的共识似乎是你可以在最初-filter
内成功(并且更有效)地做到这一点。例如:
$NoDescrUsers = Get-AdUser -Filter {(Enabled -eq "True" ) -and (description -notlike '*')} -Properties Description
答案 1 :(得分:0)
如果您过滤描述-like或-notlike
'*'
)表示您将选择(或不选择)任何字符。
如果您只想在广告请求中过滤空白说明,则可以执行以下操作:
$NoDescrUsers = Get-AdUser -Filter {(Enabled -eq "True" ) -Properties Description
if ($NoDescrUsers.Description -eq $null)
{write-host "no description"}