Powershell如果条件不起作用

时间:2014-07-03 13:31:26

标签: windows powershell if-statement

我需要在AD中的多个OU内搜索并检查密码永不过期状态 我有第一个用户使用密码昵称=" True"在OU test1。
另一个用户密码错误的用户="错误"在OU test2中 以下是我的代码:

$searchRoot = @("mydomain.com/TEst/test1")
$searchRoot += @("mydomain.com/TEst/test2")

remove-variable inactiveUsers

Foreach ($ou in $searchRoot) {
$inactiveUsers += @(Get-QADUser -SearchRoot $ou -Enabled | Select-Object Name,SamAccountName,passwordneverexpires | Sort-Object Name)
}

if ($inactiveUsers -ne $null){
foreach($user in $inactiveUsers){
If ($user.passwordneverexpires -eq "False") {write-host $user.passwordneverexpires}
}
}

我希望脚本不为第一个用户做任何事情(因为它密码超过了" True",
并为第二个用户返回一些内容(passwordneverexpires =" False"。
然而,通过上面的脚本,我总是得到" True"结果。
不确定我的脚本有什么问题。我在Win 2003 PS 2.0上运行它。
任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这些是布尔值。

尝试

If ($user.passwordneverexpires -eq $false) 

If ($user.passwordneverexpires.tostring() -eq "False")