Я пытаюсь получить имя сервера и, если исправление установлено или нет на всех серверах Windows 2016 с оператором if (булево).
Я пытался сделать запись-хост и просто поставить ("Установлено") или нет, но для выполнения упражнения я также предъявляю требования к тому, чтобы в столбце было указано имя сервера и логическое значение, если установлено исправлениеили нет.
function Hotfixreport {
$ErrorActionPreference = 'Stop'
$path = "KB1234567"
$computer = Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*2016*") -and (Enabled -eq "True")} -Properties OperatingSystem | Sort Name | select name,OperatingSystem
$servers = $computer.name
ForEach ($s in $servers) {
try
{
if ((Get-HotFix -cn $servers | Where-Object -Property HotfixID -like $path)){
$checkkb = $true
$porps = @{'PSComputerName' = $s.name
'Installed' = $checkkb
}
New-Object -Type PSObject -Prop $props
}else{
$checkkb = $false
$porps = @{'PSComputerName' = $sname
'Installed' = $checkkb
}
New-Object -Type PSObject -Prop $props
}
}
catch
{
Write-Warning "System Not reachable:$servers"
}
}
}
Hotfixreport
Мне нужны два столбца;один с именем сервера (PSComputerName) и логическим значением (true / false), если он установлен или нет.