2016-06-28 84 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

相关问题