列出PowerShell中具有空描述字段的用户

时间:2017-04-18 09:22:11

标签: powershell filtering

我正在尝试获取没有设置描述的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或返回所有人)。我的命令应该是什么样的?

2 个答案:

答案 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"}