it-swarm-ru.tech

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

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

29
Brian

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

14
Knox

Способ Powershell v2 согласно Microsoft - щелкнуть правой кнопкой мыши по ярлыку и выбрать Запуск от имени администратора .

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

start-process powershell –verb runAs

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

powershell "start-process powershell -verb runas"
26
Nathan Hartley

Это открывает новый экземпляр 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, так что вы можете взломать его там.

10
user2278

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

5
Ryan Fisher

Легкий путь ...

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

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

notepad "$profile"

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

# PowerShell 5
function GoAdmin { Start-Process PowerShell –Verb RunAs }

# PowerShell Core
function GoAdmin { Start-Process pwsh –Verb RunAs }

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

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

Обратите внимание, что окно администратора открывается в отдельной оболочке. Вы можете закрыть оригинальную оболочку или оставить ее открытой. Если ваша работа администратора делает что-то "большое", такое как добавление/изменение переменных среды, тогда ваша пользовательская оболочка (не администратор) может просто набрать refreshenv, чтобы перезагрузить свою среду и получить изменения. (Редактировать: Обнаружено, что refreshenv предоставляется менеджером пакетов great Chocolatey . Тип Update-SessionEnvironment вместо этого, если у вас нет шоколада.)

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

1
Mitch McMabers