python - 如何在python中运行powershell脚本
问题描述
'''$Session = New-Object -ComObject "Microsoft.Update.Session"
$Searcher = $Session.CreateUpdateSearcher()
$historyCount = $Searcher.GetTotalHistoryCount()
$Result = $Searcher.QueryHistory(0, $historyCount) | 选择对象日期,
@{name="操作"; 表达式={switch($_.operation)
{
1 {"安装"};
2 {"卸载"};
3 {“其他”}
}}},
@{name="状态"; 表达式={switch($_.resultcode)
{
1 {“进行中”};
2 {“成功”};
3 {“错误成功”};
4 {“失败”};
5 {“中止”}
}}},
@{name="更新"; 表达式={IF($_.Title.tostring() -match "(.*?)"){$matches[0].replace('(','').replace(')','')} }},
标题 $Result | 其中{$_.Date -gt (Get-Date).AddDays(-14)} | 排序对象日期 | 选择日期、操作、状态、更新、标题 | Export-Csv -NoType "$Env:userprofile\Desktop\WindowsUpdates.csv"| 格式表
这是保存到记事本的脚本我想使用 python 获取输出
导入子流程
p = subprocess.run('F:\getwindowupdate.ps1', shell=True)
打印(p.stdout)
这只是打开记事本文件如何使用python执行这个powershell脚本
解决方案
您可以将命令传递给 PowerShell 并在 python 脚本中检索输出。
步骤 1 编写 PowerShell 脚本
Write-Host 'Hello, World!'
将其保存为 script.ps1
PS:这将输出
Hello, World!
第 2 步 编写一个 python 脚本并从那里调用您的 PowerShell 脚本并检索输出
import sys
import subprocess
cmd = ["PowerShell", "-ExecutionPolicy", "Unrestricted", "-File", ".\\script.ps1"]
ec = subprocess.call(cmd)
print("Powershell returned: {0:d}".format(ec))
这将输出:
Hello, World!
Powershell returned: 0
推荐阅读
- javascript - 如何使用函数及其值作为参数?
- reactjs - 编译失败。找不到模块:无法解析“firebase”
- python - 在一个图中绘制两个 Seaborn 猫图
- python - 解密数据帧 Fernet 中的列(令牌必须是字节)
- google-chrome-extension - 页面加载时的 Chrome/opera 浏览器扩展,在后台加载另一个页面以获取数据
- javascript - 注册:安装 FHIR 5.2.0
- node.js - winston 未知记录器级别:未定义
- sql - 执行查询时出现语法错误
- java - 从没有 .remove 的自定义 arraylist 实现中删除项目
- git - Gitlab:如何区分最新和以前的管道提交