Когато извиквам 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 код за връщане е всичко, което трябва да уловя за следващите стъпки на изпълнение. Не искам никакъв изход към конзолата.