Выполнять команды Powershell удаленно

4

У меня есть сервер Linux с winexe пакет установлен. Он такой же, как PSExec, и все работает нормально при выполнении простых команд, но когда я запускаю его с помощью этой команды ниже, я получаю ошибку синтаксического анализа!

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

Кто-нибудь может понять, что с этим не так? Это является причиной конфликта в кавычках вокруг URL и имени файла, с кавычками вокруг всей команды?

Ammar Lakis
источник
1
Можете ли вы опубликовать полное сообщение об ошибке?
cpast

Ответы:

3

Попробуйте использовать формат: powershell.exe -Command "& {<command>}"

Это сработало для меня, используя ваш пример:

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

Кроме того, я использовал одинарные кавычки в DownloadFile

Ссылка: http://technet.microsoft.com/en-us/library/hh847736.aspx

Josh
источник
1

Вложенное использование двойных кавычек не сработает. Попробуйте что-то вроде этого:

winexe -U user%password //host "powershell -Command (New-Object System.Net.WebClient).DownloadFile('http://host/filename.iso','c:\file.iso')"
skno
источник
0

Самый простой способ - запустить команду напрямую, используя одинарные кавычки. Например, перечисление процессов может быть сделано следующим образом:

winexe -U "Domain\PC-Name" //IP Address 'powershell.exe Get-Process'
VAM
источник