Bonjour à tous,
Je suis novice en Powershell, j'ai fait un script qui récupère à distance des informations matériels via WMI sur des PC et je filtre la recherche.
Le script fonctionne, sauf si filtre de recherche ne retourne qu'en théorie qu'un seul élément, dans ce cas je n'ai pas de résultat.
Note : si la requête (modifiée) tourne localement, cela fonctionne.
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $ListeOrdi = "C:\Test\ListeOrdi.txt" $Domain = "mondomaine" $UserName = "admin" $Password_non_crypte = "mdpadmin" $Password = convertto-securestring -String $Password_non_crypte -AsPlainText -Force $Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $UserName, $Password $ArrComputers = Get-Content $ListeOrdi ForEach ($Computer in $ArrComputers) { $ColItems = Get-WmiObject -Class Win32_PnPEntity -Authority "ntlmdomain:$Domain" -Credential $Credential ` -Namespace "root\cimv2" -Computer $Computer | Where {$_.Name -like "*keyboard*"} write-host "Nbre elements = " $ColItems.count $ColItems[0..900] | Format-List Name, Status, ConfigManagerErrorCode }
Me retourne pour 1 PC :
Nbre elements = 2
Name : Terminal Server Keyboard Driver
Status : OK
ConfigManagerErrorCode : 0
Name : Standard PS/2 Keyboard
Status : OK
ConfigManagerErrorCode : 0
Maintenant, je filtre avec Where {$_.Name -like "*PS/2 Keyboard*"}, et ca me retourne rien et un nombre d'élément vide "Nbre elements = "
J'ai le même résultat avec "-Filter ..." au lieu de la requête "Where ..."
Une idée ??
Merci par avance
Partager