Покретање ПоверСхелл скрипте као Виндовс сервиса

Из било које ПоверСхелл скрипте можете направити Виндовс услугу која се покреће у позадини и покреће се аутоматски када се сервер покрене. Можете да креирате Виндовс услугу помоћу услужних програма срвани.еке и инстсрв.еке (укључених у комплет Виндовс Сервер Ресоурце 2003 Кит) који вам омогућавају да покренете поверсхелл.еке процес са параметром у облику путање до датотеке скрипте пс1. Главни недостатак ове методе креирања услуге је тај што срвани.еке не контролише извршење апликације (скрипта ПоверСхелл у нашем случају), а ако се апликација сруши (замрзне), сервис то не види и наставља да ради. У овом чланку користићемо услужни програм за креирање Виндовс сервиса из датотеке са ПоверСхелл скрипту Нссм (Руководилац без усисавања - оставите без превода ... :)), што је лишено ових недостатака.

НССМ можете преузети и инсталирати ручно или преко Цхоцолатели. Прво морате сами да инсталирате Цхоцо:

Сет-ЕкецутионПолици Бипасс -Сцопе Процесс -Форце; ''
иек ((Нев-Објецт Систем.Нет.ВебЦлиент) .ДовнлоадСтринг ('хттпс://цхоцолатеи.орг/инсталл.пс1'))

Затим инсталирајте НССМ пакет:

цхоцо инсталл нссм

У овом примеру ћемо пратити промене у одређеној групи АД у реалном времену (скрипта из овог чланка) и, приликом промене, обавестити администратора безбедности са скочним обавештењем и писмом.

Дакле, имамо код који треба да се сачува у ПС1 датотеци. Додајте бесконачну петљу која врши проверу једном минуту:

док је ($ тачно)
# Ваш ПС код
Почетак-спавање-секунде 60

Наравно, да бисте имплементирали такав сценарио, можете да креирате задатак у планеру (Таск Сцхедулер), али ако требате одговорити на било какве промене у реалном времену, метода са засебном услугом је много тачнија.

Услугу можете да креирате из скрипте ПоверСхелл користећи НССМ директно из ПоверСхелл :):

$ НССМПатх = (Гет-Цомманд "Ц: \ тоолс \ нссм \ вин64 \ нссм.еке").
$ НевСервицеНаме = "ЦхецкАДГроупСрв"
$ ПоСхПатх = (Гет-Цомманд овлашћење). Извор
$ ПоСхСцриптПатх = "Ц: \ тоолс \ ЦхецкАДГроуп \ цхецкад.пс1"
$ аргс = '-ЕкецутионПолици Бипасс -НоПрофиле -Филе "0"' -ф $ ПоСхСцриптПатх
& $ НССМПатх инсталира $ НевСервицеНаме $ ПоСхПатх $ аргс
& $ НССМПатх статус $ НевСервицеНаме

Покрените нову услугу:

Старт-Сервице $ НевСервицеНаме

Проверите статус услуге користећи ПоверСхелл:

Набавите сервис $ НевСервицеНаме

Дакле, направили сте и покренули нови Виндовс сервис. Проверите да ли се појављује на конзоли за управљање сервисима сервицес.мсц

Услуга ЦхецкАДГроупСрв се заиста појавила, конфигурисана је да се покрене аутоматски и тренутно се покреће (ради). Као што можете видети, ваш ПоверСхелл скрипта покреће се у процесу нссм.еке.

Имајте на уму да се услуга покреће под системским налогом. Ако користите друге модуле у ПС скриптама (у мом случају, цмдлет Гет-АДГроупМембер из модула Ацтиве Дирецтори за Виндовс ПоверСхелл користи се за добијање састава групе безбедности домена), овај налог мора имати приступ датотекама модула и правима за повезивање са АД (у мом случај). Ову услугу можете покренути и са другог налога (или гМСА налога) и корисницима дати право да зауставе / поново покрену услугу ако немају локална администраторска права.

Да би сервис могао да прикаже обавештења у сесији корисника (у интеракцији са радном површином), морате да притиснете „Пријава”(Пријава) омогућују“Дозволи интеракцију на радној површини”(Дозволи услузи да комуницира са радном површином).

Да би ово функционисало у систему Виндовс 10 / Виндовс Сервер 2012 Р2 / 2016, морате да промените вредност ДВОРД параметра регистра НоИнтерацтивеСервицес у огранци ХКЛМ \ Систем \ ЦуррентЦонтролСет \ Цонтрол \ Виндовс 0 и омогућити услугу претраживача интерактивних услуга (Служба за откривање интерактивних услуга):

Старт-Сервице -Наме уи0детецт

Међутим, у оперативном систему Виндовс 10 1803 услуга за откривање интерактивних услуга потпуно је уклоњена из система и више не можете прелазити на нулу сесије (сесија 0), тако да једноставно нећете видети прозоре који су приказани под системским налогом.

Опис услуге можете променити командом:

& $ НССМПатх сет $ НевСервицеНаме опис „Надгледање промена АД групе“

Да бисте избрисали направљену услугу, можете користити наредбу сц делете или

нссм уклони ЦхецкАДГроупСрв