Обавијести када се корисник дода у групу Ацтиве Дирецтори

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

Постоје две опције за организовање таквог решења:

  • Можете омогућити ревизију догађаја на контролерима домена и пратити појаву догађаја када је корисник додан у безбедносну групу (ЕвентИД 4728)
  • Чувајте локалну текстуалну датотеку са списком корисника у одређеној групи и периодично је упоређујте са тренутним члановима групе домена

Садржај:

  • Ревизија додавања корисника у групу на контролеру домена
  • Поређење тренутног састава групе домена са предлошком

Ревизија додавања корисника у групу на контролеру домена

У случају да вам је омогућена политика ревизије у вашем ГПО-у Конфигурација рачунара -> Подешавања оперативног система Виндовс -> Подешавања безбедности -> Напредна конфигурација ревизије -> Управљање рачуном -> Управљање безбедносном групом ревизије, онда када се корисник дода у групу Ацтиве Дирецтори, догађај ЕвентИд се појављује у безбедносном дневнику 4728 (Члан је додат у безбедносну глобалну групу).

Помоћу ПоверСхелл-а можете пратити појаву овог догађаја у безбедносном дневнику. На пример, приказујемо све догађаје са овим кодом за 24 сата на контролеру домена. Ради практичности приказаћемо име АД групе која се променила, који је налог додан и ко је од администратора додао корисника у групу (скрипта која следи примером из чланка Добијање листе АД корисника креираних за 24 сата).

$ тиме = (датум добијања) - (ново време - час 24)
Гет-ВинЕвент -ФилтерХасхтабле @ ЛогНаме = "Сигурност"; ИД = 4728; СтартТиме = $ Време | Фореацх
$ евент = [кмл] $ _. ТоКсмл ()
иф ($ догађај)

$ Тиме = Датум добијања $ _. ТимеЦреате -УФормат "% И-% м-% д% Х:% М:% С"
$ НевУсер = $ евент.Евент.ЕвентДата.Дата [0]. "# Текст"
$ АДГроуп = $ евент.Евент.ЕвентДата.Дата [2]. "# Текст"
$ АдминУсер = $ евент.Евент.ЕвентДата.Дата [6]. "# Текст"
$ дц = $ евент.Евент.Систем.цомпутер
$ дц + "|" + $ Време + „|“ + “|” + $ АДГроуп + "|" + $ НевУсер + "|" + $ АдминУсер

Сада, на контролеру домена, морате да направите нови задатак за планер и вежете његово покретање на догађај 4728. Када се овај догађај догоди, пошаљите поруку кориснику (како везати скрипту за догађај описано је у чланку Виндовс Евент Триггерс и покретање ПоверСхелл скрипте када се догоди догађај, нећу га поновити).

Међутим, проблем је што се проверава само један ДЦ записник. Ако је корисник додат у групу на другом регулатору домена, нећете видети овај догађај. Можете, наравно, креирати претплату на догађаје са неколико ДЦ-а или сортирати све контролере са скрипту, али ако постоји велики број ДЦ-ова у домену, све то није баш згодно.

Савет. Пример петље за набрајање свих ДЦ-ова у домену помоћу Гет-АДДомаинЦонтроллер и прикупљање догађаја из њих може изгледати овако (пример из овог чланка):

$ тиме = (датум добијања) - (ново време - сат 124)
$ ДЦс = Гет-АДДомаинЦонтроллер -Филтер *
фореацх ($ ДЦ у $ ДЦ)
Гет-ВинЕвент -ЦомпутерНаме $ ДЦ -ФилтерХасхтабле @ ЛогНаме = "Сигурност"; ИД = 4728; СтартТиме = $ Тиме | Фореацх
$ евент = [кмл] $ _. ТоКсмл ()
иф ($ догађај)

$ Тиме = Датум добијања $ _. ТимеЦреате -УФормат "% И-% м-% д% Х:% М:% С"
$ НевУсер = $ евент.Евент.ЕвентДата.Дата [0]. "# Текст"
$ АДГроуп = $ евент.Евент.ЕвентДата.Дата [2]. "# Текст"
$ АдминУсер = $ евент.Евент.ЕвентДата.Дата [6]. "# Текст"
$ дц = $ евент.Евент.Систем.цомпутер
$ дц + "|" + $ Време + „|“ + “|” + $ АДГроуп + "|" + $ НевУсер + "|" + $ АдминУсер



Размотримо другачији приступ.

Поређење тренутног састава групе домена са предлошком

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

(Гет-АДГроупМембер -Идентити "Домаин Админс" -рецурсиве) .Наме | Изван датотеке Ц: \ ПС \ ДомаинАдминс.ткт

Сада додајте новог корисника у групу Администратор домена и поново сачувајте листу корисника, али у другу датотеку.

(Гет-АДГроупМембер -Идентити "Домаин Админс" -рецурсиве) .Наме | Изван датотеке Ц: \ ПС \ ДомаинАдминсЦуррент.ткт

Сада упоредите две датотеке и прикажите разлике у списковима:

$ олдадм = ГЦ Ц: \ ПС \ ДомаинАдминс.ткт
$ невадм = ГЦ Ц: \ ПС \ ДомаинАдминсЦуррент.ткт
$ дифф = Упореди-Објекат -РеференцеОбјецт $ олдадм -ДифференцеОбјецт $ невадм | Селецт-Објецт -ЕкпандПроперти ИнпутОбјецт
врите-хост $ разл

Приказао се налог који је додан у групу АД..

На конзоли можете да прикажете поруку:

$ ресулт = (Упореди-Објекат -РеференцеОбјецт $ олдадм -ДифференцеОбјецт $ дифф | Вхере-Објецт $ _. СидеИндицатор -ек "=>" | Селецт-Објецт -ЕкпандПроперти ИнпутОбјецт) -јоин ","
Иф ($ резултат)
мсг * "Корисник је додан у групу администратора домена: $ ресулт"

Или пошаљите е-пошту помоћу цмдлета Сенд-МаилМессаге:

Иф ($ резултат)
Сенд-МаилМессаге -СмтпСервер мсг01 -Од АДЦхангес@винитпро.ру -То админ@винитпро.ру -Предмет "Корисник је додан у групу Администратор домена: $ ресулт" -Тоди "Порука је креирана $ дате" -Приорити Хигх

Ова скрипта се може сачувати у датотеку админс_гроуп_цхангес.пс1 и редовно покренути помоћу распореда (како креирати задатак планера помоћу ПоверСхелл-а). Креирајмо нови задатак за планер који једном дневно покреће нашу ПоверСхелл скрипту која проверава састав групе администратора домена са локално сачуваном листом.

$ Триггер = Ново-заказаниТаскТриггер -У 10:00 сати -Дневно
$ Усер = "НТ АУТХОРИТИ \ СИСТЕМ"
$ Ацтион = Ново-заказанаТаскАцтион -Екецуте "ПоверСхелл.еке" -Аргумент "Ц: \ ПС \ админс_гроуп_цхангес.пс1"
Региструј се-ЗаказаниТаск -ТаскНаме "Провери Админс Гроуп" -Триггер $ Триггер -Усер $ Усер -Ацтион $ Ацтион -РунЛевел Хиггест

Тако ће се састав групе администратора проверавати једном дневно, а у случају промена, администратор ће добити обавештење (поп-уп поруку или писмо).