我试图创建一个快速脚本来检查当前主机名是否在一个主机名中,然后根据该结果执行一个操作。
我可以在“Name”属性下返回目录中的计算机,但是当试图匹配当前的$env:computername时,它永远不会与目录中的计算机返回的内容匹配。
我尝试了以下代码。
$pccheck = Get-ADComputer -Filter * -SearchBase "OU=Test,OU=Computers,DC=TESTENV,DC=local" | Select Name
if ($pccheck -contains $env:computername) {
# Do something
$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("Pc is eligible")
} else {
$Output = $wshell.Popup("Not eligible")
}
字符串
即使我目前在一台计算机上,这是为$pccheck变量返回的结果的一部分,它永远不匹配if语句的条件,代码继续到“else”代码。
例如,这部分代码返回result“Userpc”作为name属性。我的if语句不能识别我当前在“Userpc”上,然后执行if语句的第一部分,总是只执行最后一部分。
Get-ADComputer -Filter * -SearchBase "OU=Test,OU=Computers,DC=TESTENV,DC=local" | Select Name
型
有没有人对if语句条件需要什么语法有什么建议?
任何帮助都非常感谢!
1条答案
按热度按时间hs1rzwqc1#
使用Active Directory filter来简化代码:
字符串
您可以包含
SearchScope = 'OneLevel'
来搜索直接子对象。