Execute comandos do Powershell remotamente

4

Eu tenho um servidor linux com o pacote winexe instalado. É o mesmo que PSExec, e tudo funciona bem ao executar comandos simples, mas quando eu corro com este comando abaixo eu recebo um erro de análise!

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

Alguém pode imaginar o que há de errado com isso? É por causa de um conflito nas aspas em torno do nome do arquivo e url, com as aspas em torno do comando todo?

    
por Ammar Lakis 18.03.2013 / 22:47

3 respostas

3

Tente usar o formato: powershell.exe -Command "& {<command>}"

Isso funcionou para mim, usando o seu exemplo:

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

Além disso, usei aspas simples em DownloadFile

Referência: link

    
por 18.03.2013 / 23:09
1

O uso aninhado de aspas duplas não funcionará. Tente algo assim:

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

A maneira mais fácil é executar o comando diretamente usando aspas simples. Por exemplo, listar os processos pode ser feito da seguinte forma:

winexe -U "Domain\PC-Name" //IP Address 'powershell.exe Get-Process'
    
por 16.12.2013 / 20:26