我正在尝试使用if语句(布尔值)获取服务器的名称,以及是否在Windows 2016的所有服务器中都安装了此修补程序。
我尝试做写主机,是否放置(“已安装”),但是我正在做的练习是要求还将服务器名称和bolean放置在列中(无论是否安装了此修补程序)。
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)(如果已安装)。