283 votes

Comment capturer la sortie dans une variable à partir d'un processus externe dans PowerShell ?

J'aimerais exécuter un processus externe et capturer sa sortie de commande dans une variable dans PowerShell. J'utilise actuellement ceci :

 $params = "/verify $pc /domain:hosp.uhhg.org"
start-process "netdom.exe" $params -WindowStyle Hidden -Wait

J'ai confirmé que la commande s'exécute mais je dois capturer la sortie dans une variable. Cela signifie que je ne peux pas utiliser le -RedirectOutput car cela ne redirige que vers un fichier.

192voto

JNK Points 32743

As-tu essayé:

$OutputVariable = (Shell command) | Out-String

37voto

manojlds Points 96599

Si vous souhaitez également rediriger la sortie d'erreur, vous devez faire :

 $cmdOutput = command 2>&1

Ou, si le nom du programme contient des espaces :

 $cmdOutput = & "command with spaces" 2>&1

12voto

Rodric Vos Points 79

Ou essayez ceci. Il capturera la sortie dans la variable $scriptOutput :

 & "netdom.exe" $params | Tee-Object -Variable scriptOutput | Out-Null

$scriptOutput

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X