2015-02-26 3 views
0

Je développe un script qui utilise ssh pour se connecter à un hôte Windows, exécuter une commande powershell et analyser la sortie. Bien que je puisse me connecter à l'hôte et exécuter la commande, PowerShell ne quittera pas et retourner le contrôle au script local jusqu'à ce que j'appuie sur la touche Entrée.Commandes à distance non interactives avec Powershell

À l'heure actuelle, la commande spécifique en cours d'exécution est ssh HOSTNAME 'echo $(hostname)' et le serveur ssh est configuré pour transmettre des demandes d'exécution à distance de powershell -noninteractive -command CMD, où HOSTNAME est le nom des fenêtres hôte et CMD est la commande à distance à exécuter (en ce cas echo $(hostname)).

L'objectif final est que le script qui appelle les commandes Powershell distantes s'exécute complètement de manière non interactive, mais cela est actuellement impossible car la commande Powershell ne s'exécutera pas de manière non interactive.

Comment puis-je obtenir powershell pour exécuter des commandes à distance de manière non interactive?

+0

Voyez-vous la bonne réponse? Notez que vous n'êtes pas censé mettre des guillemets autour de votre commande à powershell, la seule chose après le '-command' devrait être ce que vous voulez exécuter. – Guvante

+0

@Guvante Oui, je vois la bonne réponse. J'ai enlevé les citations, et cela n'a pas changé son comportement. – mfabel

+0

J'ai essayé d'exécuter votre commande d'exemple localement et elle imprime et quitte immédiatement. Êtes-vous sûr que votre méthode d'appel à powershell ne cause pas le problème? – Guvante

Répondre

0

J'ai résolu le problème. Bien que je n'ai pas déterminé ce qui causait le problème, je peux au moins surmonter le problème en redirigeant stdin vers /dev/null sur le côté qui initie la connexion SSH. Cette solution n'implique pas du tout PowerShell, mais traite plutôt les symptômes de l'autre côté de la connexion.