在哪里 - 对象 - 或不工作

时间:2016-05-13 20:48:11

标签: powershell

好吧 - 所以我工作的公司买了不少域名。每个域都有不同的命名方案。 (例如:john.smith,jsmith) - 当我们终止某人时,我想在每个域中自动禁用他们的帐户。

此脚本完全正常,直到我在where-object cmdlet中添加'或'语句。

$user1 = "John.smith"
$user2 = "Jsmith"
get-aduser -Filter * | Where-Object {{$_.samaccountname -eq "$User1"} -or {$_.samaccountname -eq "$user2"}}

如果我拿出或声明 - 它找到了用户。如果我把or语句放入,它只返回我域中的每个用户。

我也试过避免使用-or,然后使用if,else语句:

$user1 = "john.smith"
$user2 = "jsmith" 
$result = Get-ADUser -filter * | Where-Object {$_.samaccountname -eq "$user1"} 
if($result = $error) {Get-ADUser -Filter * | Where-Object {$_.samaccountname -eq "$user2"}}

这不会返回错误 - 它只是不返回任何内容(可能是if语句错误 - 但为什么没有错误?

谢谢,

1 个答案:

答案 0 :(得分:1)

在Where-Object中有一组额外的括号。你想要的是什么可以用括号,但它没有任何工作,它会工作:

get-aduser -Filter * | Where-Object {$_.samaccountname -eq "$User1" -or $_.samaccountname -eq "$user2"}