一些powershell命令赢了';当从python调用时,不能运行

一些powershell命令赢了';当从python调用时,不能运行,python,powershell,subprocess,office365,Python,Powershell,Subprocess,Office365,我在成功运行作为python脚本一部分的powershell脚本时遇到了一些困难。问题不是脚本没有运行,即使我尝试导入,也无法识别来自已安装powershell模块的命令。具体来说,这些命令是Connect MSOLService和同一模块中的其他命令 我写了一个小测试来尝试我们不同的东西,但似乎没有任何效果。在测试中,我尝试了以下方法: subprocess.call('powershell./script.ps1') 或 p=subprocess.Popen(['powershell.exe

我在成功运行作为python脚本一部分的powershell脚本时遇到了一些困难。问题不是脚本没有运行,即使我尝试导入,也无法识别来自已安装powershell模块的命令。具体来说,这些命令是Connect MSOLService和同一模块中的其他命令

我写了一个小测试来尝试我们不同的东西,但似乎没有任何效果。在测试中,我尝试了以下方法:

subprocess.call('powershell./script.ps1')

p=subprocess.Popen(['powershell.exe','-NoProfile','-Command','&{'+pscommand+'}'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
p、 通信()

subprocess.call('powershell.exe./script.ps1')

除MSOL命令外,所有这些命令都会成功运行脚本,并始终返回此错误:

Connect-MsolService:术语“Connect-MsolService”不能识别为cmdlet、函数、脚本文件的名称,
或可操作程序。检查名称的拼写,或者如果包含路径,请验证该路径是否正确,以及
再试一次。
在C:\Users\user\desktop\scripts\script.ps1:20 char:9
+连接MsolService-凭据$LiveCred
+         ~~~~~~~~~~~~~~~~~~~
+CategoryInfo:ObjectNotFound:(连接MsolService:String)[],CommandNotFoundException
+FullyQualifiedErrorId:CommandNotFoundException

从python脚本外部运行时效果良好,执行策略设置为无限制,只有在python中使用subprocess.call()时才会出现问题。任何想法/帮助都将不胜感激

谢谢, 娄

在尝试此操作并得到相同的错误后。我发现Python正在调用32位版本的PowerShell,并且无法导入64位模块。上面的代码能够从32位Python调用64位版本的PowerShell,然后运行包含
[Connect-MsolService]。

在脚本中,如果导入包含
Connect-MsolService
的PowerShell模块,那么该模块是否运行?很遗憾,否,添加导入模块MSOnline不会有什么不同。它应该会有一些不同。当powershell无法加载
MSOnline
模块时,是否会出现新错误?尝试输出
Get ChildItem-path'env:\PSModulePath'
以查看MSOnline模块的位置是否位于子powershell进程的模块路径中。您使用的powershell、Python和Windows版本是什么?
subprocess.call('C:\\Windows\\sysnative\\windowspowershell\\v1.0\\powershell.exe -executionpolicy bypass ./script.ps1')