2016-06-28 139 views
4

有沒有辦法在python中運行powershell代碼?我一直在尋找,我發現的所有東西都是如何在python中運行一個單獨的PS腳本文件,但沒有關於運行PS代碼。有沒有辦法在python中運行powershell代碼

例子:比方說,我想從一個Python腳本\程序中運行這些命令

Start-Process -filepath "Path\Filename.exe" -wait 

我在這個例子瞭解,我可以使用Python只是運行該文件。我正在研究編寫一個Python應用程序,但它會在幕後使用一些PowerShell代碼來實際完成它需要做的事情。在我的應用程序想法的情況下,它將連接到Office 365並操縱用戶\帳戶信息(添加,刪除等)以及您無法在365管理站點上執行的操作。我已經有了一個PS腳本來完成大部分工作,但是我正在研究一個GUI界面,python似乎是GUI的更好選擇(就我見過和玩過的內容而言)。

如果這是不可能的,或者如果它比它的價值更痛苦,我會欣賞一些建議。我應該看看C#或類似的東西嗎? Python似乎更容易理解。

謝謝。

+0

因此,我從下面的答案中看到的一般共識是,它要麼不可能,要麼不實際。它是否正確? – sloppyfrenzy

回答

1

剛開始powershell.exe(未經測試)

os.system("powershell.exe", "script.ps1") 

您可能需要額外的參數來指定路徑和執行策略。

+0

謝謝,埃斯本。但是,它看起來就是調用一個單獨的powershell腳本。我正在尋找將python腳本內嵌入python腳本,然後將\ package轉換爲EXE文件,這樣可以更容易地共享。 – sloppyfrenzy

2

如果你想要在exe中嵌入PowerShell腳本,vC++可能是最好的選擇。

可以使用system功能<stdlib>在CMD

這裏運行命令是代碼:

#include "stdafx.h" 
#include <stdlib.h> 
using namespace std; 

int main() 
{ 
    system("@powershell -NoProfile -ExecutionPolicy Bypass <your PSScript path>"); 
    return 0; 
} 

但是這個代碼,需要你有你的地方框ps1文件。


我的建議是如果從遠程運行。主辦您ps1文件在GitHub上或要點

#include "stdafx.h" 
#include <stdlib.h> 
using namespace std; 

int main() 
{ 
    system("@powershell -NoProfile -ExecutionPolicy Bypass -command (new-object net.webclient).downloadstring('<url to your script>")'); 
    return 0; 
} 
+0

謝謝,我會研究一下! – sloppyfrenzy

0

你不能只寫一個PowerShell腳本文件,然後打電話了嗎? (未經測試)

f = open("script.ps1") 
f.write(...) #Script you want to run 
f.close() 
os.system("powershell.exe", "script.ps1") 
+0

是的,但不是我想要做的。謝謝。 – sloppyfrenzy

相關問題