Comment exécuter un script powershell disponible sur une machine distante?

j'essayais d'exécuter un script dans un ordinateur distant.

je n'ai "Enable-PSremoting " dans la machine distante.

j'ai placé un script hello.ps1 dans la machine à distance.

[Mon ordinateur client Windows XP et à distance de l'ordinateur est Windows 2003 ]

Puis, à partir de mon ordinateur client j'ai essayé d'exécuter le script.

invoke-command -computer $MachineName -filepath "C:hello.ps1"

j'ai l'erreur suivante.

Invoke-Command: impossible de trouver le chemin 'C:hello.ps1" parce qu'il ne pas exister.

je pense qu'il essaie de trouver un script à partir de l'ordinateur client.

Si j'essaie de le lancer

invoke-command -computer $MachineName -command { C:hello.ps1 }, il exécute le script disponible sur la machine distante côté client.

mais je voudrais exécuter le script distant dans la machine distante elle-même.

Comment faire pour lancer le script disponible dans la machine distante?

mise à Jour:

en Fait, cette commande "invoke-command -computer $MachineName -command { C:hello.ps1 }" travaille à distance et renvoie le résultat au côté client. J'ai mal compris en voyant les valeurs de retour qu'il exécute du côté du client.

19
demandé sur Samselvaprabu 2012-05-04 11:20:36

4 réponses

Lorsque vous écrivez :

invoke-command -computer $MachineName -filepath "C:\hello.ps1"

le script C:\hello.ps1 seront prises à partir de l'ordinateur client et apporté au serveur pour être exécuté. Si vous avez l'erreur le fichier n'existe pas parce que Invoke-Command recherche le fichier dans l'ordinateur client.

12
répondu JPBlanc 2012-05-04 09:35:50
1
répondu David Brabant 2012-05-04 07:27:28

j'ai eu exactement la même sonde, et résolu avec une combinaison de [WMICLASS] 's create() et Start-Process.

Vérifier ma réponse ici.

0
répondu Ocelot 2017-05-23 11:47:09

j'ai eu la même erreur mais j'ai accroché une session distante dans une variable de votre code et finalement j'ai quelque chose qui fonctionne:

$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential

Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1}

Il y a un million de solutons Invoke-etc mais le plus simple a finalement fonctionné pour moi. Merci à vous.

0
répondu JustJohn 2017-05-05 23:57:20