Последовательный запуск команд Powershell в Python

1

Я хотел бы запустить четыре команды 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()

Любые идеи, как это сделать?

  • 0
    использование ; между командами
  • 0
    @ 4c74356b41 Где находится "Моя команда"?
Показать ещё 2 комментария
Теги:
python-3.x
powershell

1 ответ

1

Используйте аргумент 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()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню