Как я могу получить статус HotFix с помощью оператора if, возвращающего имя сервера и статус с PowerShell? - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь получить имя сервера и, если исправление установлено или нет на всех серверах 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), если он установлен или нет.

...