使用os.system调用PowerShell时出错

时间:2016-02-28 05:02:22

标签: python powershell powershell-v5.0

当我尝试从Python函数调用powershell时收到以下错误:

  

无法加载PSReadline模块。控制台在没有PSReadline的情况下运行。

我有一个名为ps_cli()的函数,它是:os.system("powershell -NoProfile")

当我调用它时,我收到以下行为/错误: enter image description here

以前在Windows 7和8计算机上工作(我目前无法访问),而且我读过的一些内容可能与Windows 10计算机上的PowerShell 5有关。我写的工具背后的想法是,它可以在具有适当权限的帐户上使用任何现代版本的Windows。由于我正在编写更高级的脚本,这似乎会导致几秒钟的延迟,我想知道如何在不做的情况下摆脱这个:

  

使用参数-PSConsoleFile和先前使用Export-Console导出的PSConsoleFile打开Powershell。

我在一个论坛帖子中提到了这一点。任何想法将不胜感激!

1 个答案:

答案 0 :(得分:3)

PSReadline - 模块是Powershell 5.0(在Win10上)的新内置模块,可提供增强的控制台体验。由于它是内置的,所以不应该是执行策略的问题(即使它由于某种原因没有签名),但是检查它永远不会受到伤害。这有用吗?

os.system("powershell -NoProfile -ExecutionPolicy ByPass")

您使用的是第三方控制台吗?该模块可能与conhost.exe以外的控制台不兼容(cmd和powershell使用的窗口中的默认设置)。

一个肮脏的解决方法是简单地清除屏幕:

os.system("powershell -NoProfile -NoExit -Command cls")