Како да проверите администраторске привилегије у ПоверСхелл скрипти?

Ако га требате покренути са администраторским привилегијама да бисте покренули ПоверСхелл скрипту, можете проверити тренутни поступак за административне повластице директно у ПС коду.

Следећи ПоверСхелл код може да се користи за проверу да ли се тренутна скрипта ради у режиму „Покрени као администратор“ или не:

Хост писања "Проверавање административних права ..."
иф (-НОТ ([Сецурити.Принципал.ВиндовсПринципал] [Сецурити.Принципал.ВиндовсИдентити] :: ГетЦуррент ()). ИсИнРоле ('
[Сецурити.Принципал.ВиндовсБуилтИнРоле] "Администратор"))
Писање упозорења "Недовољно дозвола за покретање ове скрипте. Отворите ПоверСхелл конзолу са администраторским привилегијама и поново покрените скрипту."
Бреак

елсе
Хост писања "Постоје администраторска права - наставите скрипту ..." -ФорегроундЦолор Греен

Спремите ПоверСхелл код у датотеку цхецк_пермс.пс1 и покрените је у конзоли без административних права:

Ц: \ ПС \ цхецк_пермс.пс1

Као што видите, појавио се натпис да нема права администратора, па је ПоверСхелл скрипта престала да ради.

Покрените ову скрипту сада у повишеној сесији ПоверСхелл-а. Као што видите, скрипта је утврдила да се ова ПоверСхелл сесија изводи са привилегијама администратора.

Можете покренути ПоверСхелл скрипте са администраторским привилегијама директно из Виндовс Екплорера.

Такође можете затражити повећање привилегија директно из ПоверСхелл скрипте, за то уместо линије:

Писање упозорења „Нема довољно права“

Користите код

Старт-Процесс Поверсхелл -АргументЛист $ ПСЦоммандПатх -Верб РунАс

Када покренете скрипту без привилегија администратора, ова скрипта ће се поново покренути у новој привилегованој сесији ПоверСхелл и појавиће се УАЦ захтев за повећање привилегија..

Ако омогућите ескалацију привилегија, ваша ПС1 скрипта ће се изводити са правима администратора (пут до тренутне датотеке скрипте ПоверСхелл пролази кроз променљиву околину $ ПСЦоммандПатх).

У ПоверСхеллу 4.0 и новијим верзијама, још је лакше проверити да ли постоје администраторске повластице. Да бисте то учинили, користите директиву -РунАсадминистратор.

#рекуирес -верзија 4.0
#рекуирес -РунАсАдминистратор
Хост писања "ПоверСхелл је започео као администратор" -ФорегроундЦолор Греен

Ако се скрипта не покрене под администратором, појавиће се грешка:

Скрипта 'цхецк_пермс.пс1' се не може покренути јер садржи изјаву "#рекуирес" за покретање као Администратор. Тренутна сесија Виндовс ПоверСхелл не ради као Администратор. Покрените Виндовс ПоверСхелл употребом опције Рун ас Администратор и покушајте поново покренути скрипту.
На линији: 1 знак: 1
+ Ц: \ ПС \ цхецк_пермс.пс1
+ ~~~~~~~~~~~~~~~~~~~~~~
+ ЦатегориИнфо: ПермиссионДениед: (цхецк_пермс.пс1: Стринг) [], СцриптРекуиресЕкцептион
+ ФуллиКуалифиедЕррорИд: СцриптРекуиресЕлеватион

Ако покренете ову скрипту на рачунару са ПоверСхелл в2, појављује се грешка:

Не могу обрадити изјаву "#рекуирес" у линији 2 јер није у исправном формату.
Изјава "#рекуирес" мора бити у једном од следећих формата:
"#Рекуирес -схеллид"
"Захтева -верзија"
"#Рекуирес -псснапин [-верзија]"

Да бисте управљали Ацтиве Дирецтори-ом, можда ће вам требати други задатак: из скрипте ПоверСхелл, морате да проверите да ли тренутни корисник има администраторска права домена. Користите следећи код:

Иф (([[Сецурити.Принципал.ВиндовсПринципал] [Сецурити.Принципал.ВиндовсИдентити] :: ГетЦуррент ()). ИсИнРоле ("Администратор домена"))

# корисник који је покренуо скрипту има домена администратора

Остало

# но ригхтс Администратор домена