Из било које ПоверСхелл скрипте можете направити Виндовс услугу која се покреће у позадини и покреће се аутоматски када се сервер покрене. Можете да креирате Виндовс услугу помоћу услужних програма срвани.еке и инстсрв.еке (укључених у комплет Виндовс Сервер Ресоурце 2003 Кит) који вам омогућавају да покренете поверсхелл.еке процес са параметром у облику путање до датотеке скрипте пс1. Главни недостатак ове методе креирања услуге је тај што срвани.еке не контролише извршење апликације (скрипта ПоверСхелл у нашем случају), а ако се апликација сруши (замрзне), сервис то не види и наставља да ради. У овом чланку користићемо услужни програм за креирање Виндовс сервиса из датотеке са ПоверСхелл скрипту Нссм (Руководилац без усисавања - оставите без превода ... :)), што је лишено ових недостатака.
НССМ можете преузети и инсталирати ручно или преко Цхоцолатели. Прво морате сами да инсталирате Цхоцо:
Сет-ЕкецутионПолици Бипасс -Сцопе Процесс -Форце; ''
иек ((Нев-Објецт Систем.Нет.ВебЦлиент) .ДовнлоадСтринг ('хттпс://цхоцолатеи.орг/инсталл.пс1'))
Затим инсталирајте НССМ пакет:
цхоцо инсталл нссм
У овом примеру ћемо пратити промене у одређеној групи АД у реалном времену (скрипта из овог чланка) и, приликом промене, обавестити администратора безбедности са скочним обавештењем и писмом.
Дакле, имамо код који треба да се сачува у ПС1 датотеци. Додајте бесконачну петљу која врши проверу једном минуту:
док је ($ тачно)
# Ваш ПС код
Почетак-спавање-секунде 60
Услугу можете да креирате из скрипте ПоверСхелл користећи НССМ директно из ПоверСхелл :):
$ НССМПатх = (Гет-Цомманд "Ц: \ тоолс \ нссм \ вин64 \ нссм.еке").
$ НевСервицеНаме = "ЦхецкАДГроупСрв"
$ ПоСхПатх = (Гет-Цомманд овлашћење). Извор
$ ПоСхСцриптПатх = "Ц: \ тоолс \ ЦхецкАДГроуп \ цхецкад.пс1"
$ аргс = '-ЕкецутионПолици Бипасс -НоПрофиле -Филе "0"' -ф $ ПоСхСцриптПатх
& $ НССМПатх инсталира $ НевСервицеНаме $ ПоСхПатх $ аргс
& $ НССМПатх статус $ НевСервицеНаме
Покрените нову услугу:
Старт-Сервице $ НевСервицеНаме
Проверите статус услуге користећи ПоверСхелл:
Набавите сервис $ НевСервицеНаме
Дакле, направили сте и покренули нови Виндовс сервис. Проверите да ли се појављује на конзоли за управљање сервисима сервицес.мсц
Услуга ЦхецкАДГроупСрв се заиста појавила, конфигурисана је да се покрене аутоматски и тренутно се покреће (ради). Као што можете видети, ваш ПоверСхелл скрипта покреће се у процесу нссм.еке.
Имајте на уму да се услуга покреће под системским налогом. Ако користите друге модуле у ПС скриптама (у мом случају, цмдлет Гет-АДГроупМембер из модула Ацтиве Дирецтори за Виндовс ПоверСхелл користи се за добијање састава групе безбедности домена), овај налог мора имати приступ датотекама модула и правима за повезивање са АД (у мом случај). Ову услугу можете покренути и са другог налога (или гМСА налога) и корисницима дати право да зауставе / поново покрену услугу ако немају локална администраторска права.Да би сервис могао да прикаже обавештења у сесији корисника (у интеракцији са радном површином), морате да притиснете „Пријава”(Пријава) омогућују“Дозволи интеракцију на радној површини”(Дозволи услузи да комуницира са радном површином).
Да би ово функционисало у систему Виндовс 10 / Виндовс Сервер 2012 Р2 / 2016, морате да промените вредност ДВОРД параметра регистра НоИнтерацтивеСервицес у огранци ХКЛМ \ Систем \ ЦуррентЦонтролСет \ Цонтрол \ Виндовс 0 и омогућити услугу претраживача интерактивних услуга (Служба за откривање интерактивних услуга):Старт-Сервице -Наме уи0детецт
Међутим, у оперативном систему Виндовс 10 1803 услуга за откривање интерактивних услуга потпуно је уклоњена из система и више не можете прелазити на нулу сесије (сесија 0), тако да једноставно нећете видети прозоре који су приказани под системским налогом.
Опис услуге можете променити командом:
& $ НССМПатх сет $ НевСервицеНаме опис „Надгледање промена АД групе“
Да бисте избрисали направљену услугу, можете користити наредбу сц делете или
нссм уклони ЦхецкАДГроупСрв