J'essayais d'exécuter un script sur un ordinateur distant.
J'ai fait "Enable-PSremoting
" sur la machine distante.
J'ai placé un script hello.ps1
dans une machine distante.
[Mon ordinateur client est Windows XP et l'ordinateur distant est Windows 2003]
Ensuite, à partir de mon ordinateur client, j'essayais 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' car il ne l'a pas exister.
Je pense qu'il essaie de trouver le script de la machine cliente.
Si j'essaye de courir
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 exécuter le script disponible dans la machine distante?
Mis à jour:
En réalité, cette commande "invoke-command -computer $MachineName -command { C:\hello.ps1 }
" fonctionne du côté distant et renvoie le résultat au côté client. J'ai mal compris en voyant les valeurs de retour qu'il exécute côté client.
Quand tu écris:
invoke-command -computer $MachineName -filepath "C:\hello.ps1"
Le script C:\hello.ps1
sera extrait de l'ordinateur client et amené sur le serveur pour être exécuté. Donc, vous avez l'erreur le fichier n'existe pas car Invoke-Command recherche le fichier sur l'ordinateur client.
Voir ici pour un démarrage rapide sur PowerShell Remoting .
J'avais exactement la même sonde et je l'ai résolue avec une combinaison de [WMICLASS] 's create()
et Start-Process
.
Vérifiez ma réponse ici .
J'ai la même erreur mais j'ai accroché une session à distance dans une variable de votre code et enfin 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 solutions Invoke-etc, mais les plus simples ont finalement fonctionné pour moi. Merci à toi.