
Ако га требате покренути са администраторским привилегијама да бисте покренули ПоверСхелл скрипту, можете проверити тренутни поступак за административне повластице директно у ПС коду.
Следећи ПоверСхелл код може да се користи за проверу да ли се тренутна скрипта ради у режиму „Покрени као администратор“ или не:
Хост писања "Проверавање административних права ..."
иф (-НОТ ([Сецурити.Принципал.ВиндовсПринципал] [Сецурити.Принципал.ВиндовсИдентити] :: ГетЦуррент ()). ИсИнРоле ('
[Сецурити.Принципал.ВиндовсБуилтИнРоле] "Администратор"))
Писање упозорења "Недовољно дозвола за покретање ове скрипте. Отворите ПоверСхелл конзолу са администраторским привилегијама и поново покрените скрипту."
Бреак
елсе
Хост писања "Постоје администраторска права - наставите скрипту ..." -ФорегроундЦолор Греен
Спремите ПоверСхелл код у датотеку цхецк_пермс.пс1 и покрените је у конзоли без административних права:
Ц: \ ПС \ цхецк_пермс.пс1
Као што видите, појавио се натпис да нема права администратора, па је ПоверСхелл скрипта престала да ради.
Покрените ову скрипту сада у повишеној сесији ПоверСхелл-а. Као што видите, скрипта је утврдила да се ова ПоверСхелл сесија изводи са привилегијама администратора.
Такође можете затражити повећање привилегија директно из ПоверСхелл скрипте, за то уместо линије:
Писање упозорења „Нема довољно права“
Користите код
Старт-Процесс Поверсхелл -АргументЛист $ ПСЦоммандПатх -Верб РунАс
Када покренете скрипту без привилегија администратора, ова скрипта ће се поново покренути у новој привилегованој сесији ПоверСхелл и појавиће се УАЦ захтев за повећање привилегија..
Ако омогућите ескалацију привилегија, ваша ПС1 скрипта ће се изводити са правима администратора (пут до тренутне датотеке скрипте ПоверСхелл пролази кроз променљиву околину $ ПСЦоммандПатх).
У ПоверСхеллу 4.0 и новијим верзијама, још је лакше проверити да ли постоје администраторске повластице. Да бисте то учинили, користите директиву -РунАсадминистратор.
#рекуирес -верзија 4.0
#рекуирес -РунАсАдминистратор
Хост писања "ПоверСхелл је започео као администратор" -ФорегроундЦолор Греен
Ако се скрипта не покрене под администратором, појавиће се грешка:
Скрипта 'цхецк_пермс.пс1' се не може покренути јер садржи изјаву "#рекуирес" за покретање као Администратор. Тренутна сесија Виндовс ПоверСхелл не ради као Администратор. Покрените Виндовс ПоверСхелл употребом опције Рун ас Администратор и покушајте поново покренути скрипту.На линији: 1 знак: 1
+ Ц: \ ПС \ цхецк_пермс.пс1
+ ~~~~~~~~~~~~~~~~~~~~~~
+ ЦатегориИнфо: ПермиссионДениед: (цхецк_пермс.пс1: Стринг) [], СцриптРекуиресЕкцептион
+ ФуллиКуалифиедЕррорИд: СцриптРекуиресЕлеватион
Ако покренете ову скрипту на рачунару са ПоверСхелл в2, појављује се грешка:
Не могу обрадити изјаву "#рекуирес" у линији 2 јер није у исправном формату.Изјава "#рекуирес" мора бити у једном од следећих формата:
"#Рекуирес -схеллид"
"Захтева -верзија"
"#Рекуирес -псснапин [-верзија]"
Да бисте управљали Ацтиве Дирецтори-ом, можда ће вам требати други задатак: из скрипте ПоверСхелл, морате да проверите да ли тренутни корисник има администраторска права домена. Користите следећи код:
Иф (([[Сецурити.Принципал.ВиндовсПринципал] [Сецурити.Принципал.ВиндовсИдентити] :: ГетЦуррент ()). ИсИнРоле ("Администратор домена"))
# корисник који је покренуо скрипту има домена администратора
Остало
# но ригхтс Администратор домена