Powershell -NotLIke比较

时间:2014-03-18 14:37:27

标签: powershell

作为Powershell的新手,我制作了以下脚本:

Get-ADUser -SearchBase "OU=BEL,OU=EU,DC=domain,DC=net" -Filter * -Properties * |
    where {$_.cn -NotLike ***$_.l***} |
    Select whenCreated, Name,displayName, sn,  givenName, sAMAccountName, title,
        description, employeeType, info, department, company, homeDirectory,
        scriptPath, physicalDeliveryOfficeName, 
        @{Label='Manager';Expression={
            (Get-ADUser $_.Manager -Properties displayName).displayName}} |
    Export-Csv "Output.csv" -NoTypeInformation -Delimiter ";" -Encoding utf8

start "Output.csv"

因此,我希望看到所有用户都没有CN(名称)字段中提到的City(l)。示例结果将是:

CN:John Do(丹佛)美国 l:俄克拉荷马州

出于这样或那样的原因,这个sript工作得很好,但是它并没有与'l'中提到的城市进行比较。它只是给了我AD中的所有用户,当通过通配符时,Powershell似乎没有使用它们。任何建议都会非常棒。谢谢你。

1 个答案:

答案 0 :(得分:1)

我不知道你为什么围绕$_.l有三个星号。它应该看起来像下列之一:

where {$_.cn -NotLike "*$($_.l)*"}
where {$_.cn -NotLike "*" + $_.l + "*"}
where {$_.cn -NotLike ("*{0}*" -f $_.l)}

或者你可以使用-notmatch

where {$_.cn -NotMatch $_.l}