使用 Powershell 自动更新 MS
Automating MS Updates with Powershell
我正在尝试根据我下载的 KB/MSU 包自动化我的 Microsoft 更新过程。我有一个 WMIC csv 文件,我可以根据简单的 If else 语句进行安装。我想使用列表从下载的文件中仅提取 "KBXXXXX" 并将其与已安装的 KB 列表进行比较并发现缺少的内容。
KB 安装列表(WMIC 输出):
KB123456
KB234567
KB345678
下载的KB文件列表格式$KBUpdateList:
姓名
WINDOWS6.1-KB2533552-X64.MSU
WINDOWS6.1-KB2533552-X86.MSU
WINDOWS6.1-KB2539635-X64.MSU
Windows6.1-KB958488-v6001-x64.MSU
这是我无法提取 KB 号的内容:
用于列出所选文件夹下的 MSU 文件的 PowerShell 脚本:
$Dir = get-childitem $folder -recurse
$KBUpdateList = $Dir | where {$_.extension -eq ".msu"}
$KBUpdatenames = $KBUpdateList | format-table name
$KBNumberonly = $KBUpdateList.split("-")[1]
拆分失败,我找不到修复方法。我只想 return KBXXXX 编号,这样我就可以运行后面的 foreach 语句。谢谢
这应该足以满足您的需求。
$KBUpdatenames = get-childitem $folder -recurse -Filter "*.msu" | Select-Object -Expand Name
$KBNumberonly = $KBUpdatenames | ForEach-Object{$_.split("-")[1]}
使用Get-ChildItem
获取“.msu”类型的文件。在大多数情况下,您只是在寻找扩展,使用 -Filter
比 Where-Object
更有效。然后我们只用 Select-Object
扩展文件名
至于您代码中的 Format-Table
,我会向您推荐我喜欢的有关 Format-Taco 的答案。
我正在尝试根据我下载的 KB/MSU 包自动化我的 Microsoft 更新过程。我有一个 WMIC csv 文件,我可以根据简单的 If else 语句进行安装。我想使用列表从下载的文件中仅提取 "KBXXXXX" 并将其与已安装的 KB 列表进行比较并发现缺少的内容。
KB 安装列表(WMIC 输出):
KB123456
KB234567
KB345678
下载的KB文件列表格式$KBUpdateList: 姓名
WINDOWS6.1-KB2533552-X64.MSU
WINDOWS6.1-KB2533552-X86.MSU
WINDOWS6.1-KB2539635-X64.MSU
Windows6.1-KB958488-v6001-x64.MSU
这是我无法提取 KB 号的内容:
用于列出所选文件夹下的 MSU 文件的 PowerShell 脚本:
$Dir = get-childitem $folder -recurse
$KBUpdateList = $Dir | where {$_.extension -eq ".msu"}
$KBUpdatenames = $KBUpdateList | format-table name
$KBNumberonly = $KBUpdateList.split("-")[1]
拆分失败,我找不到修复方法。我只想 return KBXXXX 编号,这样我就可以运行后面的 foreach 语句。谢谢
这应该足以满足您的需求。
$KBUpdatenames = get-childitem $folder -recurse -Filter "*.msu" | Select-Object -Expand Name
$KBNumberonly = $KBUpdatenames | ForEach-Object{$_.split("-")[1]}
使用Get-ChildItem
获取“.msu”类型的文件。在大多数情况下,您只是在寻找扩展,使用 -Filter
比 Where-Object
更有效。然后我们只用 Select-Object
至于您代码中的 Format-Table
,我会向您推荐我喜欢的有关 Format-Taco 的答案。