Как передать python аргументов через PowerShell для запуска процесса - PullRequest
0 голосов
/ 06 января 2020

Я хочу открыть процесс от имени другого пользователя, для которого я много исследовал и обнаружил, что никакой сценарий cmd или python не может помочь мне достичь моей цели, но команда Start-Process для powershell может. Проблема, с которой я сейчас сталкиваюсь, заключается в передаче аргументов моему python скрипту через Start-Process в powershell. Я пытался использовать -ArgumentList, но это не помогло мне, так как я должен передать аргументы как диктовку python. Ниже приведен мой скрипт, который я выполнял:
Start-Process python.exe "E:\test_installer\src\client\sql_server\sql_agent_ process.py" {"request_type": "backup", "client_id": 15, "request_id": 39431, "bkpset_id": 18, "ppid": 33796, "fromsource": "True"}
Может кто-нибудь помочь мне здесь? Заранее спасибо.

1 Ответ

0 голосов
/ 06 января 2020

Вы можете попытаться передать аргумент скрипту как string, а затем использовать ast.literal_eval , чтобы преобразовать его обратно в словарь.

В вашем скрипте python используйте sys.argv для получения аргумента командной строки.

Это должно выглядеть примерно так:

import sys
import ast
command_line_args = ast.literal_eval(sys.argv[1])

В то время как команда powershell имеет вид:

Start-Process python.exe "E:\test_installer\src\client\sql_server\sql_agent_
process.py" "{\"request_type\": \"backup\", \"client_id\": 15, \"request_id\": 39431, \"bkpset_id\": 18, \"ppid\": 33796, \"fromsource\": True}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...