使用
powershell.exe
-EncodedCommand
争论。
[Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes(@'
$secpasswd = ConvertTo-SecureString "password" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("domain\username", $secpasswd)
Enter-PSSession -ComputerName Some-Host-Name -port 5985 -Credential $mycreds
sc.exe config "MyNewService" obj="user@domain.local" password= "password"
'@))
使用powershell执行此输出,并将其添加为参数
process1 = subprocess.Popen(["powershell", "-EncodedCommand JABzAGUAYwBwAGEAcwBzAHcAZAAgAD0AIABDAG8AbgB2AGUAcgB0AFQAbwAtAFMAZQBjAHUAcgBlAFMAdAByAGkAbgBnACAAIgBwAGEAcwBzAHcAbwByAGQAIgAgAC0AQQBzAFAAbABhAGkAbgBUAGUAeAB0ACAALQBGAG8AcgBjAGUADQAKACQAbQB5AGMAcgBlAGQAcwAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAFAAUwBDAHIAZQBkAGUAbgB0AGkAYQBsACAAKAAiAGQAbwBtAGEAaQBuAFwAdQBzAGUAcgBuAGEAbQBlACIALAAgACQAcwBlAGMAcABhAHMAcwB3AGQAKQANAAoARQBuAHQAZQByAC0AUABTAFMAZQBzAHMAaQBvAG4AIAAtAEMAbwBtAHAAdQB0AGUAcgBOAGEAbQBlACAAUwBvAG0AZQAtAEgAbwBzAHQALQBOAGEAbQBlACAALQBwAG8AcgB0ACAANQA5ADgANQAgAC0AQwByAGUAZABlAG4AdABpAGEAbAAgACQAbQB5AGMAcgBlAGQAcwANAAoAcwBjAC4AZQB4AGUAIABjAG8AbgBmAGkAZwAgACIATQB5AE4AZQB3AFMAZQByAHYAaQBjAGUAIgAgAG8AYgBqAD0AIgB1AHMAZQByAEAAZABvAG0AYQBpAG4ALgBsAG8AYwBhAGwAIgAgAHAAYQBzAHMAdwBvAHIAZAA9ACAAIgBwAGEAcwBzAHcAbwByAGQAIgA="], stdout=subprocess.PIPE);
result = process.communicate()