FunkyByte
11-09-2008, 11:05
Доброго времени суток! Возникла необходимость выполнить скрипт на локальном компьютере от имени локального же администратора. В скрипте идёт работа с WMI, поэтому первое, что я сделал, это попытался подключиться к WMI под учётной записью администратора:
var objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator");
var objWMIService = objSWbemLocator.ConnectServer(".", "root\CIMV2", "Администратор", "somepass", null, null, 0);
Однако оказалось, что подключаться к WMI таким образом под чужой учётной записью можно только на удалённый компьютер. В то время как мне надо выполнять скрипт именно на локальном. Как вариант попытался запускать при помощи runas echo somepass|runas /user:Администратор ... . Тоже облом. runas постоянно ругался, что неверно введён логин или пароль (хотя и то и другое введено было верно). Кроме того, такой способ - редкостное палево, т.к. придётся в ярлыке на запуск скрипта палить админский пароль, что мягко говоря нежелательно :)
Вот теперь собственно вопрос: как можно выполнить скрипт от имени чужой учётной записи (в частности локального администратора) на локальном компьютере?
var objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator");
var objWMIService = objSWbemLocator.ConnectServer(".", "root\CIMV2", "Администратор", "somepass", null, null, 0);
Однако оказалось, что подключаться к WMI таким образом под чужой учётной записью можно только на удалённый компьютер. В то время как мне надо выполнять скрипт именно на локальном. Как вариант попытался запускать при помощи runas echo somepass|runas /user:Администратор ... . Тоже облом. runas постоянно ругался, что неверно введён логин или пароль (хотя и то и другое введено было верно). Кроме того, такой способ - редкостное палево, т.к. придётся в ярлыке на запуск скрипта палить админский пароль, что мягко говоря нежелательно :)
Вот теперь собственно вопрос: как можно выполнить скрипт от имени чужой учётной записи (в частности локального администратора) на локальном компьютере?