Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Требуется доработать скрипт, чтобы при его запуске появлялся запрос на повышение прав

Ответить
Настройки темы
VBS/WSH/JS - [решено] Требуется доработать скрипт, чтобы при его запуске появлялся запрос на повышение прав

Модератор


Moderator


Сообщения: 16831
Благодарности: 3245


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: okshef
Дата: 21-07-2010
Описание: уточнение
Здравствуйте, господа программеры!
Задача: есть файл скрипта, находящийся в папке Windows\System32, который выполняется (должен выполняться в Windows 7/Vista). При отключенном UAC все нормально, при включенном - не работает.
Условие: выполнить скрипт без отключения UAC (с появлением запроса на повышение прав) и использования других программ.
Скрипт

Код: Выделить весь код
Set oWSH = CreateObject("Wscript.Shell")
Args = ""
Last = Wscript.Arguments.Count - 1
For i = 0 To Last
 Args = Args & " " & Wscript.Arguments.Item(i)
Next
Args = Replace(Args,"\","")
RetVal = oWSH.Run("manage-bde.exe" & Args,0,True)
Wscript.Quit RetVal

Смотрел: http://www.winhelponline.com/article...elevation.html
и
http://forum.script-coding.info/viewtopic.php?pid=32735

Надеюсь на вашу помощь.

Файл скрипта называется manage-bde.vbs

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 00:04, 21-07-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


может через предварительно настроенное задание планировщика запускать?..
поробно: Create Administrator Mode Shortcuts Without UAC Prompts in Windows 7 or Vista

Отправлено: 06:54, 21-07-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Нет, скрипт выполняет функции сбора дополнительной информации (аргумента) для команды, выполняемой из командной строки, а запуск осуществляется из реестра с дополнительными ключами.
Это не отдельная задача, поэтому планировщик не пойдет.

Кстати, есть русскоязычный вариант статьи у нас: Упрощаем запуск приложений в Windows 7 от имени администратора без отключения UAC

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 08:53, 21-07-2010 | #3


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


deepred, нужен просто запрос на повышение прав. Никаких имен пользователя и паролей в скрипте быть не должно.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 13:30, 21-07-2010 | #4


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


deepred, спасибо, но...
Может я неполно оговорил условия. Скрипт запускается из реестра по команде
Код: Выделить весь код
wscript.exe manage-bde.vbs -lock -forcedismount %1
Файл manage-bde.vbs находится в Windows\Sysytem32
В настоящий момент вот такая ошибка

Ярлык никакой не нужен, вернее, может его временно в профиль пользователя помещать?

Заменил
Код: Выделить весь код
strDstPath      =  "Путь к manage-bde.exe"
на
Код: Выделить весь код
strDstPath      =  "%windir%\system32"

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 22:18, 22-07-2010 | #5


Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


okshef,

ёлки-палки..., ты просто партизан!

По поводу "%windir%\system32", как насчет ExpandEnvironmentString? Но это так, лирика...

Про реестр надо было сказать сразу, если у тебя эта софтина прописана в реестре (кстати, в каком
разделе - не Run kb и в каком корне?) и судя по твоему скрину содержится в Path то, "%windir%\system32"
вообще не нужен (тем более, что "спецальные папки" надо изначально "развернуть").
А ярлык заменится автоматически при новом запуске скрипта, хотя добавь три строчки и его можно
удалять по окончанию сеанса WSH



Отправлено: 22:51, 22-07-2010 | #6


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


HKEY_CLASSES_ROOT\drive\shell....
Цитата deepred:
как насчет ExpandEnvironmentString? »
А вот таких вопросов задавать не нужно...

Цитата deepred:
ёлки-палки..., ты просто партизан! »
Цитата okshef:
а запуск осуществляется из реестра с дополнительными ключами. »
так что я говорил

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 23:00, 22-07-2010 | #7


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


deepred, может будет понятнее, если я дам ссылку на тему, для чего это все: http://social.technet.microsoft.com/...3-67fe8657bc0f
пост Les Ferch
При отключенном UAC работает превосходно. Нужно, не пользуясь дополнительными программами, запустить скрипт с запросом на повышение прав.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 23:40, 22-07-2010 | #8


Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


okshef,

В общем понятно, т.е. у тебя выскочил bug с учетками?

Ладно, тема знакомая, все, что было написано мною ранее остается в силе, но есть одно уточнее... При включенном UAC у тебя что происходит - вообще

ничего или выходит запрет? Тебе надо просто отладить этот скрипт, косяк там кроется в том, что при активном UAC запуск manage-bde может

производиться только от имени учетной записи локального администратора (по идее должен существовать какой-нибудь манифест, в котором

это прописано).

Попробуй просто исключить путь к файлу, если у тебя автоматом он вносится в wshshortcut. Bitlocker штука скользкая, по той ссылке которую ты скинул

есть пост, он в самом конце - я бы его попробовал применить, хотя рассматриваемый вариант должен работать...



Отправлено: 00:14, 23-07-2010 | #9


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


deepred, у меня при включенном UAC не происходит ничего (при исходном скрипте), т.е. скрипт просто не запускается. Есть вариант использовать программу Elevate - но это не красиво: окно командной строки, и пр. и пр.

Как мне казалось поначалу в
Этом
Цитата:
Method 1

This re-launches the current VBScript as administrator (elevated) if the script has no command-line arguments passed. When re-launching the script as administrator, simply pass a bogus argument so that the script does not run in a cyclic loop.

Код: Выделить весь код
If WScript.Arguments.length =0 Then
  Set objShell = CreateObject("Shell.Application")
  'Pass a bogus argument with leading blank space, say [ uac]
  objShell.ShellExecute "wscript.exe", Chr(34) & _
  WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
  'Add your code here
End If
Method 2

This method uses a stub or wrapper script which runs the main VBScript elevated using the runas verb.

Код: Выделить весь код
Set objShell = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
strPath = FSO.GetParentFolderName (WScript.ScriptFullName)
If FSO.FileExists(strPath & "\MAIN.VBS") Then
     objShell.ShellExecute "wscript.exe", _ 
        Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1
Else
     MsgBox "Script file MAIN.VBS not found"
End If

есть рациональное звено, но как связать - не знаю, ибо, полный ноль.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 00:32, 23-07-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Требуется доработать скрипт, чтобы при его запуске появлялся запрос на повышение прав

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипт выполняется только при запуске вручную! FATruden Программирование в *nix 3 26-07-2010 13:32
Разное - Запрс на повышение прав при запуске приложений RomanWAR Microsoft Windows Vista 2 02-09-2009 17:30
[решено] Как сделать так, чтобы текст формы появлялся по мере выполнения операций? D_Master AutoIt 7 17-01-2009 13:21
Повышение прав для установки системных компонент RVGroup Автоматическая установка приложений 2 25-11-2008 09:56
как открыть попап чтобы вертикальный скрол бар автоматически появлялся и исчезал? Vlad Drakula Вебмастеру 21 25-08-2006 13:26




 
Переход