Как запустить пакетный скрипт с правами администратора программно? - PullRequest
0 голосов
/ 04 января 2019

Как запустить пакетный скрипт с правами администратора вместо того, чтобы щелкнуть по нему правой кнопкой мыши и программно щелкнуть «Запуск от имени администратора»?

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

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Команда, которую вы ищете: runas - это позволяет запускать программы от имени пользователя, отличного от текущего.

Я не уверен, что это позволяет вамчтобы записать пароль, но из памяти вы можете кэшировать учетные данные для последующего использования.

Для написания пароля потребуется такой инструмент, как psexec (из набора PsTools от Microsoft),Вы должны быть в состоянии сделать что-то вроде:

psexec \\127.0.0.1 -u Administrator -p <admin-password> xyzzy

для запуска команды xyzzy от имени администратора.

Обычно я не могу проверить это, поскольку наше корпоративное программное обеспечение защиты предотвращает это psexec программа создана, благодаря ее использованию в векторах атаки.Тем не менее, я нашел компьютер в изолированной испытательной зоне, который показывает его в работе:

C:\> psexec \\172.16.1.100 -u Administrator -p NeverYouMind ipconfig
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Windows IP Configuration
Ethernet adapter Local Area Connection:
   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 172.16.1.100
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 172.16.1.1
ipconfig exited on 172.16.1.100 with error code 0.
0 голосов
/ 04 января 2019

Вы можете сделать это с помощью VBS.Все, что вам нужно сделать, это добавить следующий код в начало пакетного сценария:

>NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
    ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
    ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
    "%TEMP%\Getadmin.vbs"
    DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
    Exit /b
)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...