9

Я хочу использовать команду runas в CMD и из пакетных файлов для получения повышенных разрешений, но у меня нет пароля администратора на моем ПК, потому что это мой домашний компьютер, и я единственный пользователь. Каждый раз, когда я пытаюсь использовать команду runas, она спрашивает у меня пароль, а затем говорит, что пустые пароли запрещены, есть ли способ обойти это? Я знаю, что могу просто щелкнуть правой кнопкой мыши и выбрать запуск от имени администратора, но я бы предпочел иметь команду, которая может это сделать, так как это не всегда вариант, и это немного болезненно.

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

5 ответов5

12

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

Перейти к началу | Запустить. Введите secpol.msc и нажмите Enter. Перейдите к Локальным политикам, затем Параметры безопасности. Найдите политику, которая гласит : Учетные записи: ограничьте использование локальной учетной записи пустыми паролями только для входа в консоль. Установите его на отключено.

4

Вы можете использовать VBScript для повышения команд:

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "", "", "runas", 1 

Сохраните как *.vbs а затем запустите его с помощью cscript или wscript

3

Я полагаю, что вы можете использовать SysInternal's PSexec.exe для форсирования.

Например, вы можете попробовать запустить это: psexec \\%computername% -i -h notepad.exe

3

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

Повышение прав происходит, когда вы пытаетесь запустить исполняемый файл, помеченный как требующий повышения прав, что вызывает запрос UAC. Это не просто опция CreateProcess. Поэтому, если вы запускаете копию с повышенными правами для cmd и хотите, чтобы она запускала другую обычную команду, но она выполнялась с повышенными правами, вам нужна команда interlude, которая может запустить ее для вас, но помечена для повышения прав. Это осложняется тем фактом, что текущие каталоги и переменные среды не наследуются дочерним объектом с повышенными правами.

У команды su, которую я включил в свою оболочку Hamilton C (полное раскрытие: я автор), есть опция sudo, которая решает эту проблему, и вот как я это сделал: когда вы просите su запустить команду с повышенными правами, она запускает свою копию хранится как elevate.exe, который помечен для повышения прав. Поднимите затем рукопожатия через разделяемую память с помощью su, чтобы передать аргументы командной строки, текущие каталоги и среду через границу повышения, а затем elevate выполняет команду.

0

Я наткнулся на RunAsSpc , который выполнит команду RunAs, но включит возможность чтения / записи с зашифрованным кодом, чтобы ваш пароль не был раскрыт.

Автор заявляет, что эти требования выполняются с помощью RunAsSpc

  • Пользователь не должен вводить пароль, как runas.
  • Только приложения, разрешенные мной, могут быть запущены пользователем.
  • Инструмент нельзя обойти простым переименованием имени приложения или сохранением идентификации (например, runas /savecred)
  • Это должно быть просто в обращении.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .