![]() |
Удалённое выполнение сценариев
Есть домен под 2003 ,все клиенты XP ,есть необходимость удалённо запускать wsh сценарии в любой момент времени и желательно с правами администратора ,для примера такой сценарий :
Код:
Set objSysInfo = CreateObject("ADSystemInfo") Запуск из логон скрипта неподходит, вопервых потому как запускается только в момент самого логона ,во вторых с правами пользователя ,запуск по шедулеру тоже ,неудобно... pcexec тоже не то ,процессы удалённо и так запускать умею через WMI ,не то. Нашол такой код в репозитории микрософта используется так Script_name remote_comp Код:
On Error Resume Next Вопрос как осущевствить запуск сценария на удалённой машине с правами администратора ? |
Приведенный скрипт делает следующее:
получает имя компьютера как аргумент командной строки; пытается его пингануть 3 раза; если в выводе программы ping (STDOUT) находит строку Reply, то получает список пользователей этого компьютера и выводит их на экран(вот тут пес знает, что именно вернет Array("User"), надо тестить) Т.е. на удаленной машине он и не должен выполняться. Чтобы выполнить скрипт на удаленной машине с правами локального администратора, необходимо добавить этот скрипт в автозагрузку (конфигурация компьютера) Чтобы выполнить скрипт на удаленной машине с правами пользователя, необходимо добавить этот скрипт в логон-скрипты (конфигурация пользователя) Если необходимо выполнять скрипт в процессе работы, можно покопаться в сторону RPC, мне в руки как-то попадалась утилита, позволяющая выполнить команду/запустить программу на удаленной машине. Только зачем это нужно? если выполнить приведенный аффтором сценарий Set objSysInfo = CreateObject("ADSystemInfo") Set objComputer = GetObject _ ("LDAP://" & objSysInfo.ComputerName) Set CurrentUser = GetObject("LDAP://" & objSysInfo.UserName) objComputer.Put "Description" , CurrentUser.DisplayName objComputer.SetInfo с правами администратора, то в Description передастся имя администратора, а не пользователя, который под ним залогинен. |
По поводу последнего скрипта уже и так понятно ,он впринципе работать не будет от пользователя ,на него я уже зибил.
Через RPC не полуится ,через него насколько я понял только процессы можно запускать таким вот образом Код:
Const SW_NORMAL = 1 Поидее вот таким скриптом можно запустить любой сценарий на удалённой машине в процессе работы Код:
strRemoteComputer = "target_comp" Код:
Set WshNetwork = CreateObject("WScript.Network") Я прекрасно понимаю что такое можно сделать и через автозагрузку и через логон скрипт ,но задача в том чтобы запустить скрипт именно когда мне того захочется в любой момент работы. |
А почему не пользуемся тегом code?
Перенесено обратно в NT. Все-таки вопрос связан с администрированием клиентов, а это тема NT-форума, несмотря на тип клиентской ОС. |
сорри ,запамятовал исправлюсь ,почему перенесли тоже не в курсе ,думаю это как раз админам нужно ,а большинство обитает в 2k3
|
Время: 10:14. |
Время: 10:14.
© OSzone.net 2001-