Я пытаюсь написать сценарий исправления системы автоматизации отчетов. Моя первая попытка использовала Get-Hotfix
, но он сообщает только номер статьи в КБ и не содержит описания обновления.
Я читал об этом, но в его собственном столбце нет номера статьи в КБ.
Мой сценарий выглядит следующим образом:
Get-WmiObject -cl Win32_ReliabilityRecords |
select @{LABEL = "date";EXPRESSION = {$_.ConvertToDateTime($_.TimeGenerated)}},
@{LABEL = "KBArticle"; EXPRESSION = {(-match[regex]::'\(([^\ []*)\)/g').groups[1].value($_.productname)}},
pscomputername, productname
Когда я запускаю его, столбец KBArticle остается пустым.
Я попытался проверить одну строку, и она работает. Нашел его в другом сообщении переполнения стека.
$productname = "Update for Windows Server 2012 R2 (KB3118401)"
$r = [regex] "\(([^\[]*)\)"
$match = $r.Match("$productname")
$text = $match.Groups[1].Value
Я также попробовал регулярное выражение в некоторых онлайн-тестерах регулярных выражений, и оно извлекает текст, который я хочу. Моя проблема в том, что я не могу заставить его работать в моем сценарии.