2017-09-13 8 views
1

Quand je lance cette commande localement sur une machine distante cela fonctionne:Le téléchargement d'un fichier à partir d'une page Web sur les ordinateurs distants à l'aide d'un fichier batch

powershell -Command "(New-Object Net.WebClient).DownloadFile('<WebPath>', 'C:\Users\<user>\Desktop\file.exe')" 

Lorsque je tente la même commande à distance en utilisant PsExec dans un fichier batch: Je reçois "cmd démarré sur remote_machine avec l'ID de processus numéro_id".

Cependant, rien ne s'est produit et le téléchargement n'a pas été exécuté. Les suggestions ici: Run PowerShell scripts on remote PC

n'a pas fonctionné pour moi.

Des suggestions?

Edit:

J'ai réussi à télécharger le fichier via la ligne de commande (cmd) en utilisant cette commande:

PsExec.exe \\<remote_machine> -u <username> -p <password> -d powershell -Command (New-Object Net.WebClient).DownloadFile('<url address','C:\file.exe') 

Mais cela ne fonctionne pas lorsque je tente cela dans un fichier batch:

(Set DownloadInstaller = "powershell -Command (New-Object Net.WebClient).DownloadFile('<url address','C:\file.exe')") 

PsExec.exe \\<remote_machine> -u %username% -p %password% -h -d cmd /c %DownloadInstaller% 
+0

Une raison pour laquelle vous utilisez psexec sur Invoke-Command? – Persistent13

+0

Juste était familier avec ça ... Je vais essayer Invoke-Command. – user2653179

+1

@ Persistent13 Certains environnements bloquent RPC et/ou WinRM, laissant PsExec comme seule autre option. – TheIncorrigible1

Répondre

0

Cela a fonctionné - tout en une ligne. J'ai une variable de boucle, un ordinateur distant (%% a). J'ai supposé que quand j'utilise PsExec, C: \ ... \ file.exe "pense" à C: \ localement dans l'ordinateur distant, mais ce n'était probablement pas le cas.

je devais écrire tout cela dans une seule ligne, depuis le chemin dans DownloadFile (L'emplacement que je veux télécharger le fichier) est localement dans l'ordinateur distant (ce qui est une variable de boucle):

PsExec.exe \\%%a -u %username% -p %password% -h -d cmd /c powershell.exe -Command "&{ (New-Object System.Net.WebClient).DownloadFile('%url%','\\%%a\C$\Users\<username>\Desktop\%file%')}")