【发布时间】:2018-07-20 01:05:03
【问题描述】:
我现在在使用 PS 脚本时遇到了一点问题。
我想要做什么:
根据计算机所属的 OU,它应该映射不同的打印机。
我正在尝试使用 switch 条件,但无论我尝试什么,条件似乎总是 TRUE(尽管我知道它不是)
当我在 PowerShell 中手动输入条件时,如果条件是 TRUE 或 FALSE,我会得到正确的值。但是一旦我在 switch 中使用它,条件似乎总是 TRUE。
我目前所拥有的:
使用dsquery 我检查计算机是否属于特定的OU。
如果返回一个值(仅在查询成功时发生),我将其放入我的 $SwitchDump 变量中(条件为 TRUE)。
据我了解,如果在 OU 中找不到设备,则没有值将传递给我的 $SwitchDump 变量,因此应该为 $null 对吗?
但它一直在映射打印机。
Switch ($SwitchDump = dsquery computer $OU_TO_SEARCH_IN|findstr $env:COMPUTERNAME | Out-String)
{
$SwitchDump -ne $null {Add-Printer -ConnectionName \\$PrintServer\$DesiredPrinter}
}
或者我只是在叫错树? 任何想法将不胜感激。
【问题讨论】:
-
除了切换条件中的语法缺陷之外,这里的问题是
$SwitchDump是Out-String的输出 - 它会附加一个换行符,所以$SwitchDump -ne $null将总是 是真的
标签: powershell switch-statement conditional-statements