您需要照顾逃生角色。尝试一下:
import wmi
try:
connection = wmi.WMI(ip, user=username, password=password)
print("connection is established")
connection.Win32_Process.Create (CommandLine=" powershell.exe -command \" & {New-Object -c Microsoft.Update.Session).CreateUpdateSearcher(). Search(\"IsInstalled=0\").Updates|Select Title}\" > C:\output.txt")
except:
print("connection failed")
我不得不尝试20种组合,所以值得记录。 您可以做类似的事情:
subprocess.run(['powershell.exe', '/c', f'gwmi Win32_PerfRawData_MSMQ_MSMQQueue -computerName {computer_name} | ft -prop Name, MessagesInQueue'], universal_newlines=True, stdout=subprocess.PIPE)
command_block = 'Invoke-Command -ComputerName ' + computer_name + ' -ScriptBlock {Get-MsmqQueue -Name ' + queue_name + ' -QueueType Private | Clear-MsmqQueue }'
completed_process = subprocess.run([powershell.exe', '/c', command_block], universal_newlines=True, stdout=subprocess.PIPE)