Exécuter des commandes Powershell à distance

4

J'ai un serveur linux avec winexepackage installé. C'est la même chose que PSExec, et tout fonctionne correctement lors de l'exécution de commandes simples, mais lorsque je l'exécute avec cette commande ci-dessous, une erreur d'analyse est générée!

winexe -U user%password //host "powershell -Command (New-Object System.Net.WebClient).DownloadFile("http://host/filename.iso","c:\file.iso")"

Quelqu'un peut-il comprendre ce qui ne va pas avec cela? Est-ce une cause de conflit entre les guillemets autour de l'URL et le nom du fichier, avec les guillemets autour de la commande?

Ammar Lakis
la source
1
Pouvez-vous poster le message d'erreur complet?
cpast

Réponses:

3

Essayez d'utiliser le format: powershell.exe -Command "& {<command>}"

Cela a fonctionné pour moi, en utilisant votre exemple:

powershell.exe -Command "& {(New-Object System.Net.WebClient).DownloadFile('http://google.com/robots.txt','c:\robots.txt')}"

De plus, j'ai utilisé des guillemets simples dans DownloadFile

Référence: http://technet.microsoft.com/en-us/library/hh847736.aspx

Josh
la source
1

L'utilisation imbriquée des guillemets doubles ne fonctionnera pas. Essayez quelque chose comme ça:

winexe -U user%password //host "powershell -Command (New-Object System.Net.WebClient).DownloadFile('http://host/filename.iso','c:\file.iso')"
skno
la source
0

Le moyen le plus simple consiste à exécuter la commande directement à l'aide d'un guillemet simple. Par exemple, lister les processus peut être fait comme suit:

winexe -U "Domain\PC-Name" //IP Address 'powershell.exe Get-Process'
VAM
la source