Войти

Показать полную графическую версию : [решено] Запуск программ на удалённом компьютере


tuguror
13-07-2015, 17:11
Уважаемые форумчане. Не подскажет ли мне кто –то как решить проблему над которой я сижу уже несколько недель . Есть домен АД server 2008/windows 7. Нужно из контроллера домена с помощью PowerShell запустить на одном или нескольких компьютерах программу, например Paint. Работа на контроллере домена идет в Администраторе домена.
WinRm на всех компьютерах включен.
Я использовал код
Enable-PSRemoting
Invoke-Command -ComputerName Rex -Scriptblock {Start-Process "c:\windows\system32\mspaint.exe"}

или
Invoke-Command -ComputerName Rex -Scriptblock {& "c:\windows\system32\mspaint.exe"}

Но никакой реакции не было . Даже когда я указывал -Scriptblock текущий компьютер он не давал результата.
Все машины находятся в одном помещении.
Мне советовали применить параметр -credential из указанием пользователя, но это ничего не давало. Кроме того например
Invoke-Command -ComputerName Rex -Scriptblock { get-process}
работает отлично и без него.

Порошу по возможности написать код потому что уже находился по разным ссылкам. Заранее благодарен за представленную помощь .

Foreigner
13-07-2015, 17:50
Попробуйте через start-process

Invoke-Command -ComputerName Rex -Scriptblock { start-process "c:\windows\system32\mspaint.exe" }

tuguror
13-07-2015, 18:51
Попробуйте через start-process
Так через start-process я пробовал, код выше

Iska
13-07-2015, 18:57
Но никакой реакции не было . »
Вы проверяли наличие не окна Paint на экране у удалённого пользователя, а наличие процесса «mspaint.exe» на удалённой машине?

tuguror
13-07-2015, 19:03
Проверял. Так как машины находятся в одном помещении, мне достаточно повернуть экран . И никакого процесса mspaint.exe в диспетчере задач не было.

Iska
13-07-2015, 20:57
И никакого процесса mspaint.exe в диспетчере задач не было. »
Уточню: при этом в Диспетчере задач Вы нажимали кнопку «Отображать процессы всех пользователей»?

tuguror
13-07-2015, 21:29
Нет. Но когда я запускал с параметром -credential и указывал пользователя запущенного на том компьютере тоже не было никакой реакции.

Вы нажимали кнопку «Отображать процессы всех пользователей»?
Только что попробовал сделать по вашему совету но процесса все равно нет

corbis
21-07-2015, 09:35
Попробуйте подключиться к машине через Enter-PSSession.
Может отправленная команда где-то теряется..

Kazun
21-07-2015, 14:17
PowerShell Remoting имеет свои ограничения, и не позволяет взаимодействовать с interactive desktop session пользователя и запускать программы с GUI-интерфейсом. Как вариант:

1) PsExec указать логин и пароль пользователя
& ".\psexec" -accepteula -i "\\computername" -u "domain\username" -p "password" "command line"

2) Создать задачу через schtasks указав заданного пользователя от кого выполняется задача
schtasks /create /?
schtasks /run /?

https://technet.microsoft.com/en-us/library/dd347642.aspx - about_Remote_Troubleshooting

Some native Windows programs, such as programs with a user interface, console applications that prompt for input, and console applications that use the Win32 console API, do not work correctly in the Windows PowerShell remote host.

tuguror
31-07-2015, 18:14
Большое спасибо всем кто откликнулся. Спасибо вам Kazun за разъяснение возможностей программы и как можно это обойти. Я попробую сделать по вашему методу




© OSzone.net 2001-2012