$Session = New-Object -ComObject "Microsoft.Update.Session"
$Searcher = $Session.CreateUpdateSearcher()
$historyCount = $Searcher.GetTotalHistoryCount()
$a=$Searcher.QueryHistory(0, $historyCount) | Select-Object Title
$a
请求您帮我仅过滤上述命令输出的KBxxxx,softwarenamelist
。
答案 0 :(得分:0)
您可以在自己的代码末尾尝试此操作:
$arrayKb = @()
foreach($strKb in $a){
$strKb -match "KB\d{7}"
$kb = $Matches[0]
$itemObject = New-Object System.Object
$itemObject | Add-Member -type NoteProperty -Name "Kb" -Value $kb
$itemObject | Add-Member -type NoteProperty -Name "Software" -Value $strKb
$arrayKb += $itemObject
}
$arrayKb
答案 1 :(得分:0)
使用this RegEx从括号中捕获KB编号,然后使用Calculated Properties使其整齐:
$a = $Searcher.QueryHistory(0, $historyCount) | Select-Object @{Name="KB";Expression={[regex]::match($_.Title,'\(([^\)]+)\)').Groups[1].Value}},@{Name="Title";Expression={$_.Title}}