簡體   English   中英

如何在 Windows SYSTEM 帳戶中啟動 python 進程

[英]How to launch a python process in Windows SYSTEM account

我正在用 python 編寫一個測試應用程序並測試一些特定的場景,我需要在 Windows SYSTEM 帳戶中啟動我的 python 子進程。 我可以通過從我的 python 腳本創建 exe 來做到這一點,然后在創建 Windows 服務時使用它。 但是這個選項對我不利,因為將來如果我更改 python 腳本中的任何內容,那么我每次都必須重新生成 exe。

如果有人對如何做到這一點有更好的想法,請告訴我。

比什努

  1. 創建永久運行的服務。
  2. 安排該服務具有 IPC 通信通道。
  3. 從您的桌面 Python 代碼,通過 IPC 通道向服務發送消息。 這些消息指定服務要采取的操作。
  4. 服務接收消息並執行操作。 即執行發送方請求的python代碼。

這允許您將服務與其執行的 Python 代碼分離,從而避免重復重新安裝服務。

如果您不想在服務中運行,那么您可以使用CreateProcessAsUser或類似的 API。

您也可以使用 Windows 任務計划程序,它可以在 SYSTEM 帳戶下運行腳本,並且其界面很簡單(如果您不經常測試:-))

要使用系統帳戶權限運行文件,您可以使用psexec 下載: Sysinternals

然后你可以使用:

os.system 

或者

subprocess.call

並執行:

PSEXEC -i -s -d CMD "path\to\yourfile"

剛剛遇到這個 - 我知道,有點晚了,但無論如何。 我遇到了類似的情況,我用 NSSM ( Non_Sucking Service Manager ) 解決了它。 基本上,該程序使您能夠將任何可執行文件作為服務啟動,我使用 Python 可執行文件執行此操作,並將我正在測試的 Python 腳本作為參數提供給它。

所以我可以運行該服務並根據需要編輯腳本。 當我對腳本進行任何更改時,我只需要重新啟動服務。

生產環境的一點:盡量不要依賴像 NSSM 這樣的第三方軟件。 您也可以使用標准SC命令(請參閱此答案)或 PowerShell( 請參閱此 MS 文檔)來實現此目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM