При вызове Powershell из скрипта Python (subprocess.Popen
) я перебираю список контроллеров домена AD.Для каждого контроллера, который не может распознать объект AD, я хочу подавить ошибочный вывод.
Использование | Out-Null
в конце команды Powershell не имеет никакого эффекта.
Скрипт Python:
for server in ADDomainList:
cmd = 'powershell.exe get-ADComputer ' + hname + ' -Server ' + server + ' | Out-Null'
subprocess.call(cmd)
Из командной строки Powershell:
get-ADComputer computer-name -Server server.domain.com
Нежелательный вывод:
Get-ADComputer : A positional parameter cannot be found that accepts argument '?'.
At line:1 char:1
+ get-ADComputer computer-name -Server server.domain.com ?
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ADComputer], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADComputer
Результат кода возврата 0 или 1 - это все, что мне нужно захватить для следующего выполненияшаги.Я не хочу выводить данные на консоль.