Я хотел бы запустить четыре команды Powershell через код Python 3.6. В настоящее время работает в Windows, позже будет развертывать это на контейнере Docker
Команды следующие:
1. $secpasswd = ConvertTo-SecureString "password" -AsPlainText -Force
2. $mycreds = New-Object System.Management.Automation.PSCredential ("domain\username", $secpasswd)
3. Enter-PSSession -ComputerName Some-Host-Name -port 5985 -Credential $mycreds
4. sc.exe config "MyNewService" obj="[email protected]" password= "password"
Пробовал поиск, как это сделать, нашел только, как запустить одиночную команду
process1 = subprocess.Popen(["powershell", "My Command"], stdout=subprocess.PIPE);
result = process.communicate()
Любые идеи, как это сделать?
Используйте аргумент 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="[email protected]" password= "password"
'@))
Выполните этот вывод с помощью powershell и добавьте его в качестве аргумента
process1 = subprocess.Popen(["powershell", "-EncodedCommand JABzAGUAYwBwAGEAcwBzAHcAZAAgAD0AIABDAG8AbgB2AGUAcgB0AFQAbwAtAFMAZQBjAHUAcgBlAFMAdAByAGkAbgBnACAAIgBwAGEAcwBzAHcAbwByAGQAIgAgAC0AQQBzAFAAbABhAGkAbgBUAGUAeAB0ACAALQBGAG8AcgBjAGUADQAKACQAbQB5AGMAcgBlAGQAcwAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAFAAUwBDAHIAZQBkAGUAbgB0AGkAYQBsACAAKAAiAGQAbwBtAGEAaQBuAFwAdQBzAGUAcgBuAGEAbQBlACIALAAgACQAcwBlAGMAcABhAHMAcwB3AGQAKQANAAoARQBuAHQAZQByAC0AUABTAFMAZQBzAHMAaQBvAG4AIAAtAEMAbwBtAHAAdQB0AGUAcgBOAGEAbQBlACAAUwBvAG0AZQAtAEgAbwBzAHQALQBOAGEAbQBlACAALQBwAG8AcgB0ACAANQA5ADgANQAgAC0AQwByAGUAZABlAG4AdABpAGEAbAAgACQAbQB5AGMAcgBlAGQAcwANAAoAcwBjAC4AZQB4AGUAIABjAG8AbgBmAGkAZwAgACIATQB5AE4AZQB3AFMAZQByAHYAaQBjAGUAIgAgAG8AYgBqAD0AIgB1AHMAZQByAEAAZABvAG0AYQBpAG4ALgBsAG8AYwBhAGwAIgAgAHAAYQBzAHMAdwBvAHIAZAA9ACAAIgBwAGEAcwBzAHcAbwByAGQAIgA="], stdout=subprocess.PIPE);
result = process.communicate()
;
между командами