Получение прав администратора в PowerShell

27

У меня только одна учетная запись на моем компьютере с Windows Vista, и у этого пользователя есть права администратора. Тем не менее, когда я пытаюсь выполнить команду в PowerShell для завершения определенного процесса, меня приветствует сообщение «Доступ запрещен». Как мне стать администратором?

Брайан
источник

Ответы:

14

Самый простой способ сделать это - запустить Powershell с токенами администрирования. Для этого щелкните правой кнопкой мыши Powershell (или ярлык к нему) и выберите «Запуск от имени администратора». В качестве альтернативы вы можете использовать elevate.cmd .

Нокс
источник
25

По словам Microsoft , способ Powershell v2 состоит в том, чтобы щелкнуть правой кнопкой мыши ярлык и выбрать « Запуск от имени администратора» .

И чтобы поднять в окне Powershell:

start-process powershell verb runAs

Который из командного файла, ярлыка или строки запуска cmd.exe будет выглядеть (многократно) примерно так:

powershell "start-process powershell -verb runas"
Натан Хартли
источник
10

Это открывает новый экземпляр powershell:

function Run-Elevated ($scriptblock)
{
  # TODO: make -NoExit a parameter
  # TODO: just open PS (no -Command parameter) if $scriptblock -eq ''
  $sh = new-object -com 'Shell.Application'
  $sh.ShellExecute('powershell', "-NoExit -Command $scriptblock", '', 'runas')
}

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

user2278
источник
5

Если вы хотите всегда запускать PowerShell с правами администратора, вы можете щелкнуть правой кнопкой мыши ярлык PowerShell, затем нажать кнопку «Дополнительно ...» на вкладке «Ярлык» и выбрать «Запуск от имени администратора».

Райан Фишер
источник
0

Простой способ ...

Вот как настроить простую команду для получения прав администратора в любое время из любого сеанса PowerShell!

Шаг 1. Откройте свой профиль PowerShell. (Разрешить блокнот для создания файла, если он отсутствует.)

notepad "$profile"

Шаг 2: Вставьте следующий код в любое место этого файла.

function GoAdmin { start-process powershell verb runAs }

Шаг 3. Перезапустите PowerShell. Команда теперь доступна постоянно.

Шаг 4: В любое время, когда вы хотите обратиться к администратору, просто введите GoAdmin(и не беспокойтесь о вводе правильного регистра; функции PS фактически нечувствительны к регистру). Вы, конечно, можете назвать функцию как-нибудь по-другому Elevateили как-то еще , но я не хотел риска конфликтов, поэтому я назвал ее двухсловной фразой без дефисов, чтобы она никогда не конфликтовала с собственными функциями PowerShell.

Обратите внимание, что окно администратора открывается в отдельной оболочке. Вы можете закрыть оригинальную оболочку или оставить ее открытой. Если ваша работа администратора делает что-то «большое», такое как добавление / изменение переменных среды, тогда ваша пользовательская оболочка (не администратор) может просто напечатать, refreshenvчтобы перезагрузить свою среду и получить изменения.

Так что, в основном, просто GoAdminсделайте такие вещи для администратора, как установка пакетов ( конечно, с помощью https://chocolatey.org/ !), А затем закройте окно администратора и запустите refreshenvсвою пользовательскую оболочку! Вуаля.

Митч МакМаберс
источник