Utiliser PowerShell pour lancer par exemple un « reg query » ou tout autres commandes Dos sur une liste de PC présents dans un fichier texte.
$list = Import-CSV -Path "./comp-list.txt"
ForEach ($comp in $list) {
$ip = $comp.ip
$cmdreg = "reg query \\$ip\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa"
Invoke-Expression $cmdreg
}
😉
Merci pour cette astuce.
En cas de message : Le terme « reg » n’est pas reconnu comme nom d’applet de commande, fonction, fichier de script ou programme exécutable. […]
Il faut ajouter la ligne suivante en début de script :
$env:path += « ;c:\windows\system32 »
Il y a toujours un truc à apprendre avec Powershell.
Merci.
Il semble que lorsque le fichier ./comp-list.txt contient une adresse ip au lieu d’un nom dns, la commande ne fonctionne pas.
Message d’erreur = reg query ne peut pas s’appliquer sur un valeur NULL.
Une petite idée ?
J’ai pas le problème.
Ça marche bien avec le nom ou l’IP.
Voici mon fichier ./comp-list.txt
name,ip
srv001,192.168.1.10
srv002,192.168.1.20
Sur un réseau différent, cela fonctionne aussi bien avec l’@ip qu’avec le nom.
Étrange..
En tout cas merci pour ton aide.
Voici mon fichier comp-list.txt
ip
172.10.0.1
172.10.0.2
172.10.0.3
PS : Si un jour vous rencontrer un problème avec l’adresse ip et que vous disposez d’un serveur DNS, voici une parade 🙂
$list = Import-CSV -Path « ./comp-list.txt »
ForEach ($comp in $list) {
$ip = $comp.ip
$MachineName = [System.Net.Dns]::GetHostbyAddress($ip).HostName
$dnsname = $MachineName -replace « .* »
$cmdreg = « reg query \\$ip\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa »
Invoke-Expression $cmdreg
}