Comment exécuter un script PowerShell à partir d'une session Cygwin SSH?


12

J'ai Windows Server 2003 avec CopSSH installé dessus (Cygwin + sshd). W aimerait pouvoir exécuter un script PowerShell via la commande de session SSH, puis utiliser sa sortie. Existe-t-il une telle capacité? Comment faire ?

Réponses:


11

Il suffit d'invoquer powershellavec les arguments pertinents et de le diriger où vous le souhaitez? Vous devez vous assurer que c'est PATHbien sûr.


Merci. Je ne pensais pas que ce soit aussi simple que cela.
malloc4k

15
Ce n'est pas aussi simple. PowerShell utilise l'API de console; Cygwin (entre les mains d'utilisateurs expérimentés) n'est pas exécuté dans la console, il est exécuté dans un émulateur de terminal. PowerShell ne fonctionne pas dans un terminal; il se bloque car il essaie d'utiliser ReadConsoleInput au lieu de ReadFile sur l'entrée standard.
Barry Kelly


6

Tout d'abord, il est bon d'ajouter le chemin exécutable de PowerShell à la variable d'environnement PATH de l'utilisateur. Nous le faisons en ajoutant à la ligne de fichier .bashrc de l'utilisateur comme:

export PATH=${PATH}:"/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0"

Ensuite, nous pouvons exécuter le script PowerShell en tapant simplement dans notre session SSH

powershell.exe -File "c:\u.ps1"

Bien sûr, nous pouvons maintenant le canaliser pour utiliser sa sortie.

Je me demande simplement pourquoi je dois appuyer deux fois sur "Entrée" dans ma session SSH après avoir tapé la commande pour que cela fonctionne.


4
Pour éviter d'avoir à appuyer sur retour, exécutez la commande comme:echo "\n" | powershell.exe ...
Andrew

4

Essayez-le sans format d'entrée

powershell.exe -inputformat none -noprofile echo hello

Peut être utile pour ne pas avoir à remettre un fichier à la machine locale.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.