Я пытаюсь получить весь список КБ, установленных на нескольких серверах, и получить время последней перезагрузки системы.Мое требование - получить результат в формате csv или текстовом формате с именами столбцов «Имя хоста», «Имя базы данных», «Установлено», «Установлено» и «Последняя перезагрузка».Я должен выполнить 2 сценария, чтобы сделать это, а затем я должен отформатировать его, и я не хочу, чтобы другие столбцы, которые я получаю из кода 1, требуются только ограниченные столбцы. Могут ли некоторые помочь мне получить тот же формат, который я получил заново?
Требуется вывод в следующем формате:
"Source" "Description" "HotFixID" "InstalledBy" "InstalledOn" "Last Reboot"
Пожалуйста, найдите код ниже 2.
К вашему сведению: я новичок в powershell.
Код 1: Будет отображен список всех установленных исправлений в КБ.
$computers = Get-Content -path "C:\Users\joy\Desktop\Machine_List.txt"
$patches = Get-Content -path "C:\Users\joy\Desktop\KB_List.txt"
foreach ($computer in $computers){
foreach ($patch in $patches){
Get-HotFix -id $patch -ComputerName $computer | -OutVariable results -ErrorAction SilentlyContinue
if ($results -ne $null) {
$results | Out-File C:\Users\joy\Desktop\report1.txt -Append -Force
}
else {
Add-content "$Patch is not Present in $computer" -path "C:\Users\joy\Desktop\report2.txt"
}
}
Код 2: При этом будет произведена последняя перезагрузка системы.
$machines = Get-Content C:\Users\joy\Desktop\Machine_List.txt
$report = @()
$object = @()
foreach($machine in $machines)
{
$machine
$object = gwmi win32_operatingsystem -ComputerName $machine | select csname, @{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}
$report += $object
}
$report | Export-csv C:\Users\joy\Desktop\Reboot.csv