none
WSUS - compter mises à jour par groupe RRS feed

Réponses

  • Bonjour,

    je ne dispose pas d'un serveur WSUS, mais on peut simuler le traitement souhaité, il te restera à adapter ton script.

    On doit déjà ajouter un membre synthétique (http://laurent-dardenne.developpez.com/articles/Windows/PowerShell/CreationDeMembresSynthetiquesSousPowerShell/) à chaque élément du tableau $Computers. Celui-ci portera l'information de regroupement.

    Ensuite on utilise le cmdlet Group-Objet :

    #---------------------------------------------------------------------------------------

    $Computers=0..9|
     Foreach  { New-object PSObject -Property @{
                              FailedCount=$false;
                              NotInstalledCount=0
                              UnknownCount=$true
                            }
     }

    $Computers[0..1]|% {$_.FailedCount=$true}
    $Computers[2..4]|% {$_.UnknownCount=$False}
    $Computers[5..9]|% {$_.NotInstalledCount=1}

    $Computers=$Computers|Add-member NoteProperty Status "" -PassThru
                          
    $computers | foreach-object {
     
         if ($_.FailedCount) {
               $_.Status="computersFailed"
         }
         elseif ($_.NotInstalledCount) {
               $_.Status="computersNeeded"
         }
         elseif (!$_.UnknownCount) {
               $_.Status="computersUpToDate"
         }
    }

    $Computers|Group-Object Status
     
    #---------------------------------------------------------------------------------------

    Ce qui nous renvoi le résultat suivant :

    Count  Name                       Group
    -----    ----                           -----
     2       computersFailed         {@{FailedCount=True;...
     3       computersUpToDate   {@{FailedCount=False;...
     5       computersNeeded      {@{FailedCount=False;...

    #On accède aux éléments de chaque groupe via la propriété group

    $Result=$Computers|Group-Object Status

    $Result[0].Group| Foreach {fait-qq_chose}

     


    Beatus, qui prodest, quibus potest.
    dimanche 9 janvier 2011 14:27
    Modérateur

Toutes les réponses

  • J'ai un script qui fait en partie ce que je souhaite, à savoir dénumérer les ordinateurs, ceux a jour, ceux en erreur et ceux nécessitant une/plusieurs mises à jour. Pareil pour les updates.

     

    Quelqu'un pourrait-il le modifier pour organiser ces résultats par groupe ?

    vendredi 7 janvier 2011 13:13
  • Bonjour,

    je ne dispose pas d'un serveur WSUS, mais on peut simuler le traitement souhaité, il te restera à adapter ton script.

    On doit déjà ajouter un membre synthétique (http://laurent-dardenne.developpez.com/articles/Windows/PowerShell/CreationDeMembresSynthetiquesSousPowerShell/) à chaque élément du tableau $Computers. Celui-ci portera l'information de regroupement.

    Ensuite on utilise le cmdlet Group-Objet :

    #---------------------------------------------------------------------------------------

    $Computers=0..9|
     Foreach  { New-object PSObject -Property @{
                              FailedCount=$false;
                              NotInstalledCount=0
                              UnknownCount=$true
                            }
     }

    $Computers[0..1]|% {$_.FailedCount=$true}
    $Computers[2..4]|% {$_.UnknownCount=$False}
    $Computers[5..9]|% {$_.NotInstalledCount=1}

    $Computers=$Computers|Add-member NoteProperty Status "" -PassThru
                          
    $computers | foreach-object {
     
         if ($_.FailedCount) {
               $_.Status="computersFailed"
         }
         elseif ($_.NotInstalledCount) {
               $_.Status="computersNeeded"
         }
         elseif (!$_.UnknownCount) {
               $_.Status="computersUpToDate"
         }
    }

    $Computers|Group-Object Status
     
    #---------------------------------------------------------------------------------------

    Ce qui nous renvoi le résultat suivant :

    Count  Name                       Group
    -----    ----                           -----
     2       computersFailed         {@{FailedCount=True;...
     3       computersUpToDate   {@{FailedCount=False;...
     5       computersNeeded      {@{FailedCount=False;...

    #On accède aux éléments de chaque groupe via la propriété group

    $Result=$Computers|Group-Object Status

    $Result[0].Group| Foreach {fait-qq_chose}

     


    Beatus, qui prodest, quibus potest.
    dimanche 9 janvier 2011 14:27
    Modérateur