1

Тема: VBS: Ввод пароля для RUNAS

Коллеги, приветствую !
Есть следующая затея...
Система - Win XP SP3
Надо из под учётной записи простого пользователя штатными средствами винды толкнуть соседний файл скрипта с админскими правами.

runas /noprofile /savecred /user:admin "wscript.exe C:\util\111\mmm.vbs"

По безопасности никаких опасений, в скрипте можно в открытую прописывать и логин и пароль админа...
Нужно сделать так, чтобы запрос пароля обнаруживался и вводился автоматически...
В голове крутится использование wsshell stdout / stdin ...
Никто подобное не реализовывал ?

Времени не хватает... :-(

2

Re: VBS: Ввод пароля для RUNAS

Евген пишет:

По безопасности никаких опасений, в скрипте можно в открытую прописывать и логин и пароль админа...

Это как так?

3 (изменено: Евген, 2012-07-16 18:59:16)

Re: VBS: Ввод пароля для RUNAS

Ну вот так
В обоих офисах девушки, которые умеют включать/выключать компьютеры, печатать бумажки + индус, который нажимает клавиши под диктовку.
А уж найти расположение скрипта и догадаться что этот файл вообще что-то делает - опасности нет никакой
Вход в офис - только через охрану, под запись в журнале. Каждое место в офисе просматривается и записывается на 2 разные видеокамеры
Ну вообщем охрана обеспечена другими средствами
Установлено антивирьное серъёзное ПО и т.д. и т.п.....

Времени не хватает... :-(

4

Re: VBS: Ввод пароля для RUNAS

По ходу дела вроде через WSShell.Sendkeys надо будет пароль вводить ?

Времени не хватает... :-(

5

Re: VBS: Ввод пароля для RUNAS

Евген, если устроит с «/netonly», то работает простое:

echo MyPassword|runas.exe /netonly /user:"User" "wscript.exe C:\util\111\mmm.vbs"

Но я бы всё же использовал проксирование: скрипт, запущенный от имени администратора/системы через Планировщик, который следит за неким событием, по которому он исполняет заранее заданные действия.

6 (изменено: Евген, 2012-07-17 07:04:21)

Re: VBS: Ввод пароля для RUNAS

2 alexii мне нужен запуск на этом же самом локальном компе...
Единственным выходом пока что тоже вижу шедулер....

Времени не хватает... :-(

7

Re: VBS: Ввод пароля для RUNAS

Евген пишет:

2 alexii мне нужен запуск на этом же самом локальном компе...

Не понял в чём состоит проблема.

8

Re: VBS: Ввод пароля для RUNAS

Думал можно автоматом с помощью VBS вбить пароль, но не получается...

Времени не хватает... :-(

9

Re: VBS: Ввод пароля для RUNAS

Вместо Runas можно посмотреть в сторону AdminLink.Программа умеет шифровать логин и пароль на основании строки запуска.
В описанни можно прочитать про недостатки Runas /savecred

set WshShell = CreateObject("WScript.Shell") 
WshShell.Run "runas /user:superlogin C:\uarm3\bin\uarm.exe",2  
WScript.Sleep 100 
WshShell.Sendkeys "Mypassword~" 
WScript.Sleep 1000

10

Re: VBS: Ввод пароля для RUNAS

alexii все уже написал

Я конечно далек от мысли... (с)

11 (изменено: wisgest, 2013-09-28 12:12:12)

Re: VBS: Ввод пароля для RUNAS

Команда RUNAS при перенаправлении её входного потока не срабатывает, но как оказывается, за исключением случая, когда ввод читается из устройства CON. При этом:
1) пароль начинает отображаться при вводе;
2) макросы DOSKEY начинают работать с RUNAS.EXE:

doskey.exe /exename=runas.exe pw=Мой пароль
runas /user:admin "chkdsk x:" <con

— теперь вместо пароля можно ввести «pw».

В свою очередь макросы DOSKEY позволяют улучшить автоматизацию ввода пароля с помощью WshShell.SendKeys(), — я подозреваю, что в тех случаях, когда говорят, что это не работает с RUNAS, виноват ненадёжный метод WshShell.SendKeys(): например, пароль содержит символы отсутствущие в текущей раскладке клавиатуры и т.п. Если же воспользоваться макросом, имя которого — устойчивый к отправке с помощью WshShell.SendKeys() символ, например, точка или цифра, то всё должно заработать:

@if (0)==1 @end /*
@echo off
set title="%~fs0 %random% %time%"
title %title%
doskey.exe /exename=runas.exe .=Мой пароль&&^
CScript.exe /nologo /e:JScript "%~fs0"&&^
runas.exe /user:admin "cmd.exe /k set user" >nul <con
exit /b

*/
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.AppActivate(WshShell.ExpandEnvironmentStrings("%title%"))?
WshShell.SendKeys(".~") : WScript.Quit(1);

(не следует запускать в скрытом окне, но можно в свёрнутом).

12 (изменено: ig.aruba, 2013-10-10 19:07:24)

Re: VBS: Ввод пароля для RUNAS

Евген пишет:

По ходу дела вроде через WSShell.Sendkeys надо будет пароль вводить ?

SendKey для RUNAS и правда - работает, но в описанной ситуации это будет ненадежно: если текущий юзер переведет фокус ввода на другое окно - все идет наперекосяк. Я пользуюсь подобной байдой для генерации каталогов пользовательских профайлов на свеженастроенных клиентских машинах под XP, но - соответственно - скрипт запускает админ, который знает, что нужно подождать и ничего не нажимать пару минут.

Можно также PSEXEC Руссиновича использовать - логин/пароль простыми параметрами CLI передать можно. Если безопасность и вправду некритична - то упаковать такой вызов в VBE для девизуализации - и все дела.

Если по уму, то лучше проксирования  - в обычной форме или в форме scheduled task - ничего нет. Но это вариант хорош только при "стационарном" применении. Если скрипт предназначен для эпизодического применения на различных машинах - тогда ИМХО только упаковка - см. выше.