【发布时间】:2018-10-12 13:03:50
【问题描述】:
当您希望 ONE 集合或 OTHER 集合的 2 个条件为真时,如何将 4 个条件链接在一起?
更准确地说,我想做:
如果用户已登录且操作系统版本为 Windows 10
或
用户已登录且 LogonUI 进程未运行
不要理会这些命令,它们在隔离时都可以正常工作,我的问题是将它们链接在一起。
例如我有:
if (
(Get-WmiObject –ComputerName $poste –Class Win32_ComputerSystem).UserName`
-and`
(Get-WmiObject -Computer $poste -Class Win32_OperatingSystem).Version -like "*10*"
)
{ echo do X }
这工作正常。我想在同一个if 中添加另一个条件块。我试过了,但它不起作用:
if (
(Get-WmiObject –ComputerName $poste –Class Win32_ComputerSystem).UserName`
-and`
(Get-WmiObject -Computer $poste -Class Win32_OperatingSystem).Version -like "*10*"`
-or`
(Get-WmiObject –ComputerName $poste –Class Win32_ComputerSystem).UserName`
-and -not`
(Get-Process -ErrorAction SilentlyContinue -ComputerName $poste -name logonui)
)
{ echo do X }
你如何像这样链接多个“块”?我知道我可以做两个不同的 IF,我让它工作但没有办法在一个 IF 中将它们全部链接在一起吗? (IF包含很多代码,我不想用两个IF复制它)
【问题讨论】:
标签: powershell if-statement boolean-logic