10
votes

Exécuter des scripts PowerShell sur PC distant

J'ai installé PS 1.0 sur un PC distant (RPC001). J'ai utilisé Windows Sysinternals Outil psexec.exe Pour exécuter le processus suivant sur la télécommande:

 PSExec \\RPC001 -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2


0 commentaires

4 Réponses :


9
votes

Après une enquête plus approfondie sur l'outil Psexec, je pense avoir la réponse. J'ai besoin d'ajouter -i option pour dire à Psexec de lancer le processus de lancement sur la télécommande en mode interactif: xxx

sans --i, PowerShell.exe est en cours d'exécution sur la télécommande en mode attente. Point intéressant est que si je gère une simple chauve-souris (sans PS in Bat), cela fonctionne bien. Peut-être que c'est quelque chose de spécial pour PS case? BIENVENUE COMMENTAIRES ET EXPLICATIONS.


1 commentaires

Comment puis-je réaliser pour cela à l'aide de PSEXEC start-processus "wusa.exe" -ArgumentList "$ w2k12 / calme" -wait



2
votes

Pouvez-vous essayer ce qui suit? XXX


1 commentaires

Je pense que vous manquez le chemin total c: \ script \ startps.ps1



10
votes

La réponse acceptée n'a pas fonctionné pour moi, mais les suivants ont fait: xxx

exemple de ici


4 commentaires

Même problème ... a accepté le code d'erreur et le code d'erreur renvoyé 0, mais n'a rien fait, alors que votre solution a fonctionné


J'ai "PowerShell -noninteractive -file c: \ temp \ scripts.ps1" qui fonctionne pour moi (réponse acceptée non).


@kafka Où est tes scripts.ps1 Situé? J'essaie d'obtenir un script en cours d'exécution à distance, mais en vain.


@kafka dans le dossier 'C: \ Temp \' sur chaque machine distante.



2
votes

La réponse acceptée ne fonctionne pas pour moi, mais cela fait. Assurez-vous de script dans l'emplacement (c: \ temp_ ci-dessous sur chaque serveur distant. Servers.txt contient une liste des adresses IP (une par ligne).

psexec @servers.txt -u <username> cmd /c "powershell -noninteractive -file C:\temp\script.ps1"


0 commentaires