Bonjour a tous,
je possède un script Wsus qui me sort un état complet des pc en attente de reboot, des pc non connecter, les types d'os etc etc...
Mais je bloque sur un point depuis plusieurs jours et espère trouver de l'aide ou une piste.
je m'explique. J'ai un bout de code qui me donne les pc en échec de mise à jour Windows. Quand j'ai des pc en échec mon code me donne un résultat sortant avec le non du pc et la mise à jour en échec correspondante.
Par contre aucun pc n'est en échec mon script échoue
Code :
- Get-HTMLContentDataTable : Impossible de lier l'argument au paramètre « ArrayOfObjects », car il s'agit d'une collection vide.
- Au caractère Ligne:1 : 45
- + ... alReport.Add($(Get-HTMLContentDataTable $WsusFailInstallTable -HideFo ...
- + ~~~~~~~~~~~~~~~~~~~~~
- + CategoryInfo : InvalidData : (:) [Get-HTMLContentDataTable], ParameterBindingValidationException
- + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyCollectionNotAllowed,Get-HTMLContentDataTable
|
Ma question est, comment modifier le bout de code ci-dessous pour prendre en compte un résultat nul?
Code :
- #Installation ayant échouée
- $updateScope = New-Object Microsoft.UpdateServices.Administration.UpdateScope
- $updateScope.IncludedInstallationStates = 'Failed'
- $computerScope = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
- $computerScope.IncludedInstallationStates = 'Failed'
- $GroupFailHash=@{}
- $ComputerHash = @{}
- $UpdateHash = @{}
- $wsus.GetComputerTargets($computerScope) | ForEach {
- $Computername = $_.FullDomainName
- $Update = ($_.GetUpdateInstallationInfoPerUpdate($updateScope) | ForEach {
- $Update = $_.GetUpdate()
- $Update.title
- $ComputerHash[$Computername] += ,$Update.title
- $UpdateHash[$Update.title] += ,$Computername
- }) -join ', '
- if ($Update) {
- $TempTargetGroups = ($_.GetComputerTargetGroups() | Select -Expand Name)
- $TempTargetGroups | ForEach {
- $GroupFailHash[$_]++
- }
- $objWsys = [pscustomobject] @{
- "Computer" = $_.FullDomainName
- "IP Address" = $_.IPAddress
- "Target groups" = $TempTargetGroups -join ', '
- "Updates" = $Update
- }
- $WsusFailInstallTable.Add($objWsys)
- }
- }
|
Merci d'avance pour votre aide précieuse