Есть два компа в одной сети, пусть комп "А" и комп "Б". Между ними есть все необходимые доверительные отношения. Надо с компа "А" запустить exe-шник, находящийся на компе "Б". Это нужно сделать сразу же, т.е. помещение егзешнега в автозагрузку не канает. Как сервис его делать тоже нельзя. PsExec умеет это как-то делать. Есть альтернативное решение изначальной проблемы. Нужно с компа "А" снести драйвера (анинсталировать), установленные на компе "Б". Буду благодарен за помощь по любым из этих двух направлений.
Как вариант - запустить на компе Б службу telnet, создать пользователя в группе TelnetClients с правами админа и готово. Единственный минус - отсутствие GUI Если нужен гуй, то radmin или встроенный в винду "удалённый рабочий стол"
Vov4ick Гуй не нужен. На счет телнета - уточню, но не уверен что это прокатит... Спасибо за совет, попробую, но вопрос пока что отстается открытым.
_DEN_ PsExec как раз устанавливает сервис на удалённом компе, а этот сервис уже запускает нужный ехе.
http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct07/hey1029.mspx(Тут правда на ВБ но имхо это не такая большая проблема) а чем не устраивает схема используемая в PsExec(т.е. установка сервиса)? да и вообще чем не устраивает сам PsExec?
А подробнее кто может описать его работу? Прогнав через отладчик я так понял что он как то через ipc ставит сервис-но сам лично с ним мало знаком и документацию найти не могу пока.Расталкуйте.Столкнулся с той же ситуацией-щас ломаю голову как сделать... Задача состоит кокрас в установке сервиса...
Если речь об этом- не то. http://www.samag.ru/art/01.2006/01.2006_02.html Мне нужна в частности информация о IPC$ ресурсе...Через него и можно все это реализовать.А доки по нему найти не могу.винапи ссылается на файл IPC.HLP но у меня его не оказалось.Натйи не могу.
Общая схема такая: 1. Логинишся на удаленную машину с админскими правами (WNetAddConnection2 на ресурс \\host\ipc$) 2. Заливаешь сервис например на \\Host\ADMIN$\System32\ 3. OpenSCManager(Host) 4. CreateService/OpenService/StartService 5. Дисконнект (WNetCancelConnection2)
Max.Черт -а ведь ты прав.Элементарно же ватсон...Почему я не догнал до этого)))) Надо завязывать с куревом...
Код (Text): .586 .model flat,stdcall include windows.inc include kernel32.inc include mpr.inc include advapi32.inc includelib kernel32.lib includelib mpr.lib includelib advapi32.lib .data pcname DB "\\compname",0 lpPath DB "\\compname\IPC$",0 lpUser db "administrator",0 lpPass db "superpass",0 servfile DB "C:\utils\RemADMIN.exe",0 tofile db "\\compname\ADMIN$\System32\RemADMIN.exe",0 sfile db "C:\WINNT\System32\RemADMIN.exe",0 sname db "Remote ADMIN",0 hSCM HANDLE ? hServ HANDLE ? mpr NETRESOURCE <> .code start: ;structure netresourse mov mpr.dwScope,RESOURCE_GLOBALNET mov mpr.dwType,RESOURCETYPE_DISK mov mpr.dwDisplayType,RESOURCEDISPLAYTYPE_DOMAIN mov mpr.dwUsage,RESOURCEUSAGE_CONNECTABLE mov mpr.lpLocalName,NULL mov mpr.lpRemoteName,offset lpPath mov mpr.lpComment,NULL mov mpr.lpProvider,NULL ;end structure netresourse invoke WNetAddConnection2,addr mpr,addr lpPass,addr lpUser,NULL invoke CopyFile,addr servfile,addr tofile,FALSE invoke OpenSCManager,addr pcname,NULL,SC_MANAGER_ALL_ACCESS mov hSCM,eax invoke CreateService,hSCM,addr sname,addr sname,SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_IGNORE,addr sfile,NULL,NULL,NULL,NULL,NULL mov hServ,eax invoke StartService,hServ,NULL,NULL invoke WNetCancelConnection2,addr lpPath,NULL,TRUE invoke ExitProcess,0 end start Вот че и получилось.(без обработки событий и так далее))- так для примеру..