Запустите файл сценария от имени администратора

У меня есть этот скрипт .vbs, который я пытаюсь запустить в Windows 7. Он должен работать с полными разрешениями и должен делать это автоматически. Чтобы было ясно, когда пользователь дважды щелкает файл, он получает запрос «разрешить запуск файла от имени администратора», а затем запускает его с полными разрешениями.

Для этого я создал пакетный файл (run.bat), который вызывает файл сценария

cscript "V02.vbs"
pause

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

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я запускаю командный файл от имени администратора, папка меняется на c\windows\system32. Скрипт, командный файл и ярлык находятся в одной папке. есть ли способ получить расположение папки?


person Marcom    schedule 31.03.2011    source источник
comment
в вашем ярлыке вы устанавливаете свойство start In?   -  person RRUZ    schedule 31.03.2011
comment
start in указывает на папку, содержащую файлы   -  person Marcom    schedule 31.03.2011


Ответы (2)


Я может неправильно понял...

Самым простым решением было бы «жестко закодировать» этот путь в файле исправления с помощью - cd \path\to\my\script cscript myscript.vbs pause

person tamarintech    schedule 31.03.2011
comment
это работает, но эта папка будет отправлена ​​​​разным пользователям. Это должно быть таким образом, чтобы независимо от того, где пользователь его сохранил, пользователь открыл папку, дважды щелкнул ярлык, и он работал. - person Marcom; 31.03.2011
comment
Создайте пакетный файл, который пользователь запускает первым. Скажем, setup.bat — внутри этого пакетного файла получите текущий рабочий каталог и вставьте его в скрипт. Затем вы можете использовать этот метод для динамического запуска от имени администратора — insidethe.com/blog/2009/12/ - person tamarintech; 31.03.2011

Используйте "модификаторы с пакетными параметрами". Из связанной документации:

%~dp1 Заменяет %1 на букву диска и путь.

Поскольку %0 — это ваш сценарий, %~dp0 — это то, что вам нужно:

cscript "%~dp0V02.vbs"
pause

Обратите внимание, что %~dp0 включает обратную косую черту в конце, поэтому ваше имя файла v02.vbs, приведенное выше, становится довольно трудным для чтения.

person mivk    schedule 20.05.2011