Question
[Résolu] Fusionner différent tableau (wsus)
- azaou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 7 ans 1 mois #28193
par azaou
Administrateur Système Junior
[Résolu] Fusionner différent tableau (wsus) a été créé par azaou
Bonjour la Team,
J'ai un souci lors de l’exécution de mon script.
Mon premier souci est qu'a la base lors de le lancement de la commande GetLastSynchronisation (pour wsus), je ne récupérer que l'id de ma liste de serveur et non pas le nom ca m’embêtait.
J'ai voulu contourner le problème en déclarant un nouvel object pour ma liste de nom de serveur et chaque élément de la commande GetLastSynchronisation puis tout mettre dans le même tableau.
Mais lorsque j'essaie de fusionner mes différents tableaux cela ne fonctionne pas.
J'ai l’impression que ma valeur écrase les autres valeurs.
Voici le résultat que j'obtiens :
Serveur
SERVER1
SERVER2
Voici le résultat que je voudrais :
Serveur StartTime EndTime Error ...
SERVER1 13/12 .. ..
SERVER2 13/12 .. ..
Voici mon script :
[code:1]$ReportPath=\"C:\Temp\WSUS\wsus.html\"
$Tab1=@()
$Tab2=@()
$Tab3=@()
$resultat=@()
#### FICHIER SERVEUR LISTE ###########
$list = \"C:\Temp\WSUS\liste.txt\"
#### recup srv un par un ###########
$Serveurs=get-content $list
# Pour tous les serveurs
foreach($list in $Serveurs){
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($list,$FALSE,8530)
$sub=$wsus.GetSubscription()
$ID=$sub.GetLastSynchronizationInfo() | select ID
$StartTime=$sub.GetLastSynchronizationInfo() | select StartTime
$EndTime=$sub.GetLastSynchronizationInfo() | select EndTime
$StartedManually=$sub.GetLastSynchronizationInfo() | select StartedManually
$Result=$sub.GetLastSynchronizationInfo() | select Result
#$Error=$sub.GetLastSynchronizationInfo() | select Error
$dataObject=New-Object psobject
Add-Member -InputObject $dataObject -MemberType NoteProperty -name \"Serveur\" -value $list
$dataObject1=New-Object psobject
Add-Member -InputObject $dataObject1 -MemberType NoteProperty -name \"ID\" -value $ID
$dataObject2=New-Object psobject
Add-Member -InputObject $dataObject2 -MemberType NoteProperty -name \"startTime\" -value $StartTime
$tab2+=$dataobject
$tab3+=$dataObject1
$resultat+=$tab2+$tab3
}
$resultat
[/code:1]
Merci d'avance pour votre aide.
Message édité par: azaou, à: 14/02/19 14:15
Message édité par: Arnaud, à: 15/02/19 08:52<br><br>Message édité par: Arnaud, à: 15/02/19 12:43
J'ai un souci lors de l’exécution de mon script.
Mon premier souci est qu'a la base lors de le lancement de la commande GetLastSynchronisation (pour wsus), je ne récupérer que l'id de ma liste de serveur et non pas le nom ca m’embêtait.
J'ai voulu contourner le problème en déclarant un nouvel object pour ma liste de nom de serveur et chaque élément de la commande GetLastSynchronisation puis tout mettre dans le même tableau.
Mais lorsque j'essaie de fusionner mes différents tableaux cela ne fonctionne pas.
J'ai l’impression que ma valeur écrase les autres valeurs.
Voici le résultat que j'obtiens :
Serveur
SERVER1
SERVER2
Voici le résultat que je voudrais :
Serveur StartTime EndTime Error ...
SERVER1 13/12 .. ..
SERVER2 13/12 .. ..
Voici mon script :
[code:1]$ReportPath=\"C:\Temp\WSUS\wsus.html\"
$Tab1=@()
$Tab2=@()
$Tab3=@()
$resultat=@()
#### FICHIER SERVEUR LISTE ###########
$list = \"C:\Temp\WSUS\liste.txt\"
#### recup srv un par un ###########
$Serveurs=get-content $list
# Pour tous les serveurs
foreach($list in $Serveurs){
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($list,$FALSE,8530)
$sub=$wsus.GetSubscription()
$ID=$sub.GetLastSynchronizationInfo() | select ID
$StartTime=$sub.GetLastSynchronizationInfo() | select StartTime
$EndTime=$sub.GetLastSynchronizationInfo() | select EndTime
$StartedManually=$sub.GetLastSynchronizationInfo() | select StartedManually
$Result=$sub.GetLastSynchronizationInfo() | select Result
#$Error=$sub.GetLastSynchronizationInfo() | select Error
$dataObject=New-Object psobject
Add-Member -InputObject $dataObject -MemberType NoteProperty -name \"Serveur\" -value $list
$dataObject1=New-Object psobject
Add-Member -InputObject $dataObject1 -MemberType NoteProperty -name \"ID\" -value $ID
$dataObject2=New-Object psobject
Add-Member -InputObject $dataObject2 -MemberType NoteProperty -name \"startTime\" -value $StartTime
$tab2+=$dataobject
$tab3+=$dataObject1
$resultat+=$tab2+$tab3
}
$resultat
[/code:1]
Merci d'avance pour votre aide.
Message édité par: azaou, à: 14/02/19 14:15
Message édité par: Arnaud, à: 15/02/19 08:52<br><br>Message édité par: Arnaud, à: 15/02/19 12:43
Administrateur Système Junior
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 7 ans 1 mois #28197
par Philippe
Réponse de Philippe sur le sujet Re:Fusionner différent tableau (wsus)
salut azaou
des fois on fait compliqué quand on peut faire simple
[code:1]$ReportPath = \"C:\Temp\WSUSwsus.html\"
#### FICHIER SERVEUR LISTE ###########
$list = \"C:\Temp\WSUSliste.txt\"
#### recup srv un par un ###########
$Serveurs = get-content $list
# Pour tous les serveurs
$resultat = foreach($list in $Serveurs){
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($list,$FALSE,8530)
$sub = $wsus.GetSubscription()
$sub.GetLastSynchronizationInfo() | select @{n=\"ServerName\";e={\"$($wsus.ServerName)\"}}, *
}
$resultat | ft *
[/code:1][code:1]
ServerName Id StartTime EndTime StartedManually Result Error ErrorText UpdateErrors
--
serveur-wsus faa2f-ff-419-900-b4c9a06ce 13/02/2019 18:15:04 13/02/2019 18:15:06 False Succeeded NotApplicable {} [/code:1]<br><br>Message édité par: 6ratgus, à: 14/02/19 16:41
des fois on fait compliqué quand on peut faire simple
[code:1]$ReportPath = \"C:\Temp\WSUSwsus.html\"
#### FICHIER SERVEUR LISTE ###########
$list = \"C:\Temp\WSUSliste.txt\"
#### recup srv un par un ###########
$Serveurs = get-content $list
# Pour tous les serveurs
$resultat = foreach($list in $Serveurs){
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($list,$FALSE,8530)
$sub = $wsus.GetSubscription()
$sub.GetLastSynchronizationInfo() | select @{n=\"ServerName\";e={\"$($wsus.ServerName)\"}}, *
}
$resultat | ft *
[/code:1][code:1]
ServerName Id StartTime EndTime StartedManually Result Error ErrorText UpdateErrors
--
serveur-wsus faa2f-ff-419-900-b4c9a06ce 13/02/2019 18:15:04 13/02/2019 18:15:06 False Succeeded NotApplicable {} [/code:1]<br><br>Message édité par: 6ratgus, à: 14/02/19 16:41
Connexion ou Créer un compte pour participer à la conversation.
- azaou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 7 ans 1 mois #28204
par azaou
Administrateur Système Junior
Réponse de azaou sur le sujet Re:Fusionner différent tableau (wsus)
Oh merci 6ratgus !
C'est vrai que je me suis embrouillé l'esprit :'(
Derniere petite chose sur ton script tu sais comment je pourrais mettre des execeptions sur certaine colonne ?
Enlever certaine colonne (exemple ID)
Merci beaucoup !<br><br>Message édité par: azaou, à: 15/02/19 10:08
C'est vrai que je me suis embrouillé l'esprit :'(
Derniere petite chose sur ton script tu sais comment je pourrais mettre des execeptions sur certaine colonne ?
Enlever certaine colonne (exemple ID)
Merci beaucoup !<br><br>Message édité par: azaou, à: 15/02/19 10:08
Administrateur Système Junior
Connexion ou Créer un compte pour participer à la conversation.
- azaou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 7 ans 1 mois #28205
par azaou
Administrateur Système Junior
Réponse de azaou sur le sujet Re:Fusionner différent tableau (wsus)
J'ai trouvé la réponse à ma question 
[code:1]$resultat | Sort-Object -property @{Expression=\"Order\";Descending=$false} | ConvertTo-HTML -Property ServerName, StartTime,EndTime,StartedManually,Result,Error -Title \"WSUS\" -Head $css -Body \"<center><h2>Synchronisation ALL Server WSUS</h2>\" | Out-File $ReportPath[/code:1]<br><br>Message édité par: Arnaud, à: 15/02/19 12:42
[code:1]$resultat | Sort-Object -property @{Expression=\"Order\";Descending=$false} | ConvertTo-HTML -Property ServerName, StartTime,EndTime,StartedManually,Result,Error -Title \"WSUS\" -Head $css -Body \"<center><h2>Synchronisation ALL Server WSUS</h2>\" | Out-File $ReportPath[/code:1]<br><br>Message édité par: Arnaud, à: 15/02/19 12:42
Administrateur Système Junior
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Fusionner différent tableau (wsus)