понедельник, 21 октября 2013 г.

Запуск программ от имени администратора из-под ограниченной учетной записи

Как то решил я прицепиться в удаленном филиале к пользователю, чтобы до настроить систему через Light manager. Подключился по VPN к их сети, всех вижу, его не вижу (не пингуется). При этом интернет и все остальное у него работает, и IP адрес такой, про который я думал. Нужно как то остановить Firewall, но с правами пользователя, даже если я ему скажу как это сделать по телефону, он не сможет из-за ограниченных прав. Пароль админа я ему говорить не хотел, по понятным тому причинам, причем такой пароль был установлен на все ПК в филиале. Все ПК были в рабочей группе. Как вариант можно попросить скачать и запустить портабл версию TeamViewer, а что если например загрузка.zip .rar .exe порезана? Мог бы сам скачать и положить им на сервер. Но я решил все же решить проблему не легким путем.

Запустить программу (например cmd), от "администратора" из командной строки у меня получилось так:

C:\ > echo PASSWORD | runas /netonly /user:Администратор cmd
(почему то работает, только с /netonly)

Я сделал 2 скрипта Runme.bat и FirewallStop.bat

Runme.bat

echo PASSWORD | runas /netonly /user:Администратор \\192.168.155.5\Public\FirewallStop.bat
скрипт запускает .bat файлик с правами администратора.

FirewallStop.bat

netsh firewall set opmode DISABLE
pause
cкрипт останавливающий Windows Firewall

Можно также выполнить (остановить службу):

sc stop SharedAccess
или

net stop SharedAccess


Далее, дабы хитрый юзер не смог подсмотреть пароль, я воспользовался программой bat-2-exe и перегнал Runme.bat в Runme.exe

В итоге, я выложил 2 файла на локальный сервер \\192.168.155.5\Public\
Runme.exe и FirewallStop.bat и попросил пользователя запустить Runme.exe

Итог:


Таким образом, можно решить проблему, например когда пользователю необходимо регулярно запускать программу, которой необходимы админские права (например - Банк-клиент), при этом пользователь будет болтаться в ограниченном окружении.

1 комментарий: