如何使用if语句返回服务器名称和PowerShell的状态,以获得HotFix的状态?

时间:2019-07-04 16:37:21

标签: boolean powershell-4.0 hotfix

我正在尝试使用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)(如果已安装)。

0 个答案:

没有答案