1 votes

Formulaire Powershell figé lors de l'exécution de commandes SSH

Avoir un simple script qui s'exécute via le formulaire Powershell

Sur demande, il obtient des informations des serveurs Linux, en utilisant la fonction plink et l'imprime ensuite dans le formulaire. Le problème est que le formulaire se bloque lors de l'obtention des informations.

J'ai essayé d'utiliser get-job même résultat

Ma commande initiale :

plink -batch -ssh $User@$srv -pw $pass -m $executeCommandFile | fl | out-string

Ajouté get-job logique :

$myjob = start-job -scriptblock {plink -batch -ssh $User@$srv -pw $pass -m $executeCommandFile | fl | out-string}
While ( ($myjob | Select-Object -ExpandProperty State) -eq "Running") {
                    sleep 1
                }
$results = receive-job -job $myjob

1voto

postanote Points 3762

Séparer les étapes. Essayez d'envoyer la demande de données Plink vers un fichier temporaire, surveillez l'emplacement temporaire et lorsque l'écriture des données est terminée, utilisez le code de votre formulaire pour lire les données du fichier temporaire dans votre formulaire plutôt que d'utiliser l'approche de la tâche d'arrière-plan.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X