Форум: "Сети";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизКак заставить сетевой комп запустить приложение командой сервера? Найти похожие ветки
← →
Slonco (2004-09-30 08:57) [0]Вкраце. Есть программа на сервере, которая в определенный момент должна заставить некоторые сетевые компьютеры запустить некое приложение. Как это делается? Какие существуют методики? Помогите кто сталкивался с этой проблемой.
Спасибо.
← →
Slonco (2004-09-30 09:01) [1]Сеть LAN если что.
← →
Rouse_ © (2004-09-30 09:38) [2]На нужных тебе компьютерах запускается написанный тобой сервис, потом связываешся с нужным тебе сервисом и отдаешь ему команду на нужные тебе действия...
← →
Slonco (2004-09-30 09:48) [3]А, скажем, службы Telnet и RPC можно приспособить для этой цели? Или они не связаны с поставленным мною вопросом?
← →
Alex Konshin © (2004-09-30 10:13) [4]Команду "at" не пробовал?
← →
Slonco (2004-09-30 10:25) [5]Неа, а что это за команда. Можно поподробнее, плииииииииииз :)
← →
kaZaNoVa © (2004-09-30 14:00) [6]Slonco (30.09.04 9:48) [3]
> А, скажем, службы Telnet и RPC можно приспособить для
> этой цели
Telnet запросто, но его сначала нужно запустить .. (по умолчанию он отключён)+ надо знать пароли локальных пользователей ...
RPC точно не знаю, но если нет патча, то можно юзать его через эксполоит (поищи в нете - он идёт исходником на си)
← →
Slonco (2004-09-30 14:01) [7]Подробности пришлось искать самому. Нашел я эту at, это команда виндовозовской командной строки:
At
Вывод списка запланированных команд или планирование запуска команд или программ на компьютере в указанное время. Для работы команды at должна быть запущена служба расписаний.
at [\\имя_компьютера] [[код] [/delete] | /delete [/yes]]
at [\\имя_компьютера] время [/interactive] [/every:дата[,...] | /next:дата[,...]] команда
Все гениальное оказалось весьма простым! Однако, можно ли сделать жизнь еще слаще? Можно ли запустить программу СРАЗУ, не устанавливая в командной строке времени и даты запуска, а? Есть ли такая команда? Я что-то не могу найти :(
← →
Reindeer Moss Eater © (2004-09-30 14:17) [8]Есть ли такая команда?
Команда кому?
← →
Slonco (2004-09-30 14:27) [9]Команда от компа на котором стоит Win2003Server сетевому компу. Я имею ввиду команду для командной же строки виндовс.
← →
Reindeer Moss Eater © (2004-09-30 14:29) [10]Команда отдается кому-то кто её может принять и понять что она означает.
Это может быть программа.
На том компьютере есть такая программа?
← →
BiN © (2004-09-30 16:59) [11]Можно использовать WMI и иже с ним
вот небольшой пример на VB, переделка на Дельфи занимает 3 минуты:
http://www.enterpriseitplanet.com/resources/scripts_win/article.php/3081841
← →
Slonco (2004-10-01 11:28) [12]Все это хорошо, но я не знаю VB скриптов и переделка на Дельфи убьет полдня (в лучшем случае). Вот как сие перевести на Дельфи? Я не представляю:
"************************************************************************
"*This script is for executing an application on a remote
"*computer running Win2K or WinNT w/WMI installed.
"*
"*Author: Darron Nesbitt
"*Date: 7/10/2001
"*
"************************************************************************
Dim strComputerName " The Computer Name to be queried via WMI
Dim strWinMgt" The WMI management String
On Error Resume Next
"get computer"s name or ip address
strComputerName = ucase(InputBox("Enter the remote computers name or IP","Computer Name/IP"))
AppPath = ucase(InputBox("Enter path to application:" & VBCRLF & VBCRLF & "Example:C:\WINNT\SYSTEM32\Calc.exe","Application Path"))
WorkingDirectory = ucase(InputBox("Enter path to application directory" & VBCRLF & VBCRLF & "Example: C:\WINNT\SYSTEM32","Application Working Directory"))
strWinMgt = "winmgmts://" & strComputerName & ""
"
" Get Computer/User Info
"
Set CompSysSet = GetObject(strWinMgt).ExecQuery("select * from Win32_ComputerSystem")
for each CompSys in CompSysSet
strDescription = CompSys.Description
strModel = CompSys.Model
strName = CompSys.Name
strManufacturer= CompSys.Manufacturer
strUserName= CompSys.UserName
next
CompInfo = "Computer Information" & VBCrLf & VBCrLf
CompInfo = CompInfo & "Computer Name: " & strName & VBTab & "User: " & strUserName & VBCrLf
"connect to processes
Set Process = GetObject(strWinMgt).Get("Win32_Process")
"start app
RetVal = Process.Create (AppPath,WorkingDirectory,null,PID)
"if 0 not returned error
if RetVal <> 0 then
MsgBox "Error: " & Err.Description & ":" & Err.Number
else
"build ProcessInfo string
Set Processes = GetObject(strWinMgt).ExecQuery("select * from Win32_Process where ProcessID = " & PID)
for each Process in Processes
RetVal = Process.GetOwner(strUser,strDomain)
ProcessInfo = "Name: " & Process.Caption & VBTAB & "ProcessID: " & PID & VBCRLF
ProcessInfo = ProcessInfo & "Process Owner: " & ucase(strDomain) & "\" & ucase(strUser) & VBCRLF
next
"display info about computer and process
RetVal = MsgBox (CompInfo & VBCRLF & VBCRLF & "Application started." & VBCRLF & VBCRLF & _
ProcessInfo,VBOKOnly,strComputerName & " - Start Application")
end if
msgbox "Done!!"
Хэльп плиииииз!
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.031 c