从远程工作站提取WMIC数据的powershell脚本

从远程工作站提取WMIC数据的powershell脚本,powershell,Powershell,我正在寻找一个Powershell脚本,它可以查询远程工作站是否安装了Windows更新,查找特定的修补程序(其中6个),然后报告安装了哪些修补程序(如果有) 查询将从文本文件中获取远程主机的名称 我在微软的网站上找到了这个脚本,并试图修改它,但我没有足够的技能来修改它 Function Get-MSHotfix { $outputs = Invoke-Expression "wmic qfe list" $outputs = $outputs[1..($outputs.leng

我正在寻找一个Powershell脚本,它可以查询远程工作站是否安装了Windows更新,查找特定的修补程序(其中6个),然后报告安装了哪些修补程序(如果有)

查询将从文本文件中获取远程主机的名称

我在微软的网站上找到了这个脚本,并试图修改它,但我没有足够的技能来修改它

Function Get-MSHotfix
{
    $outputs = Invoke-Expression "wmic qfe list"
    $outputs = $outputs[1..($outputs.length)]


    foreach ($output in $Outputs) {
        if ($output) {
            $output = $output -replace 'y U','y-U'
            $output = $output -replace 'NT A','NT-A'
            $output = $output -replace '\s+',' '
            $parts = $output -split ' '
            if ($parts[5] -like "*/*/*") {
                $Dateis = [datetime]::ParseExact($parts[5], '%M/%d/yyyy',[Globalization.cultureinfo]::GetCultureInfo("en-US").DateTimeFormat)
            } elseif (($parts[5] -eq $null) -or ($parts[5] -eq ''))
            {
                $Dateis = [datetime]1700
            }

            else {
                $Dateis = get-date([DateTime][Convert]::ToInt64("$parts[5]", 16))-Format '%M/%d/yyyy'
            }
            New-Object -Type PSObject -Property @{
                KBArticle = [string]$parts[0]
                Computername = [string]$parts[1]
                Description = [string]$parts[2]
                FixComments = [string]$parts[6]
                HotFixID = [string]$parts[3]
                InstalledOn = Get-Date($Dateis)-format "dddd d MMMM yyyy"
                InstalledBy = [string]$parts[4]
                InstallDate = [string]$parts[7]
                Name = [string]$parts[8]
                ServicePackInEffect = [string]$parts[9]
                Status = [string]$parts[10]
            }
        }
    }
}

下面是我为一个非常相似的情况写的东西:

ForEach($Server in $ServerList){
    $QFE=Get-WmiObject Win32_QuickFixEngineering -ComputerName $Server
    $IDRX = 3188732,3188743,3192392 -join '|'
    $QFE|?{$_.HotFixId -match $IDRX}
}

请注意,我正在寻找QFE 3188732、3188743和3192392,但是您可以很容易地为正在寻找的行修改该行。

输出使用了什么语法?写主持人?我写了,是的,但是你可以用你想要的任何东西。我道歉,我应该问的是。。。可以告诉我写主机部分的语法吗?嗯,这取决于你想要得到什么。您想查看哪些信息?我想查看我正在查询的计算机上有哪些修补程序。为什么您要使用命令行工具WMIC而不是本机Powershell WMI或CIM cmdlet?Get-WMIOObject可以使用远程WMI进行连接,CIM cmdlet使用Powershell远程处理。