【问题标题】:How can I to run Windows PowerShell commands from Python? [duplicate]如何从 Python 运行 Windows PowerShell 命令? [复制]
【发布时间】:2019-01-24 03:30:27
【问题描述】:

我想从 Python 执行以下命令,但没有得到任何输出:

get-winevent -logname Microsoft-Windows-TerminalServices-LocalSessionManager/Operational -ComputerName $env:COMPUTERNAME | where {$_.Id -eq "21"}

我找到了一些解决方案如下,但它们也没有成功运行:

subprocess.Popen('powershell.exe [get-winevent -logname Microsoft-Windows-TerminalServices-LocalSessionManager/Operational -ComputerName $env:COMPUTERNAME] | where {$_.Id -eq "21"}')

【问题讨论】:

标签: python powershell


【解决方案1】:

使用 subprocess 库可以在 Python 中运行 CMD 命令。为了运行 powershell 命令,您需要做的就是执行 C:\Windows\System32\powershell.exe 并传递参数。

这里有一些示例代码可以尝试:

import subprocess

subprocess.call('C:\Windows\System32\powershell.exe Get-Process', shell=True)

您可以将“Get-Process”替换为您需要的 PowerShell 命令

【讨论】:

  • 这样做会在 Python 3.8 中返回以下错误消息:“C:\Windows\System32\powershell.exe”不被识别为内部或外部命令、可运行程序或批处理文件。删除 powershell 的目录并让 powershell.exe 解决了这个问题。
  • 这意味着找不到可执行文件“C:\Windows\System32\powershell.exe”。找出 powershell 可执行文件在您的机器上的位置并相应地更改目录。
  • 啊,是的,好点。在使用 "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" 调度 powershell 时,我通常会回避任何目录问题,但没想到在这里这样做。谢谢!
  • 不要硬编码powershell.exe的位置。
猜你喜欢
  • 2018-10-12
  • 2018-03-14
  • 2013-07-06
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 2013-01-04
  • 2018-05-05
  • 2017-02-26
相关资源
最近更新 更多