Extraire la valeur de registre de plusieurs ordinateurs à l'aide de powershell
Un collègue et moi sommes d'essayer de créer un script powershell qui utilise un fichier CSV qui contient les noms de tous les ordinateurs sur le réseau de l'entreprise, et utilise ces noms pour se connecter à distance à un registre et d'en extraire une valeur spécifique.
C'est ce que nous avons jusqu'à présent:
$strMachineName = import-csv .\computer_name.csv
foreach ($line in $strMachineName)
{
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $line.computer)
$regkey = $reg.OpenSubkey("SOFTWARE\\Olympus\\DSSPlayerPro\\Transcription Module\\UserInformation")
$serialkey = $regkey.GetValue("SerialNumber")
write-host $line","$serialkey
}
Maintenant, ce script fonctionne très bien mais il y a des problèmes de sortie de qui les rendent difficiles à comprendre avec de nombreux ordinateurs.
Nous aimerions être en mesure à la sortie stdout vers un autre fichier, un fichier csv ou txt, et nous tenons également à être en mesure à la sortie stderr à null, ou un autre fichier de sorte, nous pouvons inspecter plus tard.
Ma recherche m'a fait croire que write-host
n'est pas la bonne commande à l'aide car elle n'a pas de sortie pour un fichier lorsque les variables sont utilisées (??), j'ai donc essayé de l'utilisation de l'écho, mais je vais avoir des problèmes pour obtenir les variables de travailler comme je le voudrais.
J'apprécie toute l'aide, merci!!!!
OriginalL'auteur smierdziel | 2012-01-25
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin pour intercepter des exceptions avec un try/catch.
Cela crée deux fichiers (stdout.csv et stderr.csv). Les requêtes sont stockées dans stdout.csv et de l'échec de requêtes sont stockées dans stderr.csv.
Vous êtes sur le point. Il est appelé chaîne de formatage. Voici un bon blog à ce sujet.
Remarque -
$_
dans le bloc catch sera l'objet de l'exception. Si vous vous diriger versGet-Member
ou de débogage avec PowerGUI vous trouverez toutes sortes de choses intéressantes à l'intérieur.OriginalL'auteur Andy Arismendi
Lâche ".de l'ordinateur" à partir de "$ligne.ordinateur de script" dosnt exécuter en vertu de la dernière puissance de shell avec qui.
OriginalL'auteur Sean C Rowan