Hi,
Need help with below PS script :
Script -
param([string[]]
[string[]]$computertargets,
[string]$wsusserver = "localhost"
)
$Report = @()
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($wsusserver,$false)
#$computerscope = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
$UpdateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$UpdateScope.ExcludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::Installed, [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::NotApplicable
$Classification = $wsus.GetUpdateClassifications() | ?{ $_.Title -eq "Security Updates" }
$UpdateScope.Classifications.Add($Classification)
$groups = $wsus.GetComputerTargetGroups() | where {$_.name -eq "x1"}
$ComputerTargets = $groups.GetComputerTargets()
Write-Host "Found " $ComputerTargets.Count " computer(s)"
$i = 0
foreach($Computer in $ComputerTargets) {
$i+=1
Write-Host "Processing $i $($Computer.FullDomainName)..."
$Updates = $Computer.GetUpdateInstallationInfoPerUpdate($UpdateScope)
$ReportEntry = "" | Select FQDN, Critical, Important, Moderate, Low, Unknown, LastStatusTime
$ReportEntry.FQDN = $Computer.FullDomainName
$ReportEntry.Critical = 0
$ReportEntry.Important = 0
$ReportEntry.Moderate = 0
$ReportEntry.Low = 0
$ReportEntry.Unknown = 0
$ReportEntry.LastStatusTime = $Computer.LastReportedStatusTime
foreach($Update in $Updates){
$UpdateDetails = $Update.GetUpdate()
#$UpdateInstallationState = $Update.UpdateInstallationState
#$UpdateTitle = $UpdateDetails.Title
$Severity = $UpdateDetails.MsrcSeverity
switch($Severity){
'Critical' { $ReportEntry.Critical+=1 }
'Important' { $ReportEntry.Important+=1 }
'Moderate' { $ReportEntry.Moderate+=1 }
'Low' { $ReportEntry.Low+=1 }
default { $ReportEntry.Unknown+=1 }
}
}
$Report+=$ReportEntry
}
$Report | Format-Table
$Report | Export-Csv -Path C:\tmp\WSUSReports_OIT\WSUS_OIT_$wsusserver.csv -NoTypeInformation
Error --
Method invocation failed because [System.String] does not contain a method
named 'GetUpdateInstallationInfoPerUpdate'.
At C:\tmp\WSUSReports_OIT\WSUS_report_OIT.ps1:28 char:21
+ $Updates =
$Computer.GetUpdateInstallationInfoPerUpdate($Upd ...
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound