Главная > Powershell > Проверка наличия прав администратора в Powershell

Проверка наличия прав администратора в Powershell

В Powershell очень часто приходится работать с правами администратора. В старых версиях для проверки имеет-ли текущий сеанс Powershell административные полномочия приходилось использовать приблизительно такой код:

$CurrentUser = [Security.Principal.WindowsIdentity]::GetCurrent()
if (-not((New-Object Security.Principal.WindowsPrincipal $currentUser).
    IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)))
{
    Write-Warning "Этот скрипт должен быть запущен с правами администратора"
    break
}

Write-Host -ForegroundColor Green "Всё в порядке, можно работать"

В Powershell 4.0 всё стало намного проще.

Для того, чтобы проверить имеет-ли Powershell права администратора достаточно указать директиву –RunAsAdministrator. И так как эта директива появилась только с 4-й версии, то для большей надёжности можно ещё указать требуемую версию:

#requires -version 4.0
#requires –RunAsAdministrator
Write-Host "Powershell запущен от имени администратора"

Если этот код запустить в версии Powershell ниже, чем 4.0, то вывалится ошибка, говорящая о том, что этот код нельзя запустить в данной версии Powershell:

Не удалось выполнить скрипт "temp.ps1", так как он содержит инструкцию "#requires" в строке 1 для версии 4.0 Windows PowerShell. Необходимая для выполнения скрипта версия не соответствует текущей версии 3.0 Windows PowerShell.

А если запустить в Powershell 4.0, но без прав администратора получим другую ошибку:

Не удается выполнить сценарий, так как он содержит оператор "#requires" для запуска от имени администратора. Текущий сеанс Windows PowerShell выполняется не с правами администратора. Запустите Windows  PowerShell от имени администратора, а затем попробуйте запустить данный сценарий еще раз.

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

Реклама
Рубрики:Powershell Метки:
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: