Как вы соединяете 4 условия вместе, когда хотите, чтобы либо ОДИН набор, либо ДРУГОЙ набор из 2 условий были истинными?
Чтобы быть более точным, я хочу сделать:
Если пользователь вошел в систему И версия операционной системы Windows 10
OR
Пользователь вошел в систему И процесс 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)