Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
домен Active Directory, причем преимущественно уровня WindowsXP\Server2003.У леса/домена AD не бывает уровня WindowsXP. Уберите это.
при таком скрипте достаточно настроить в оснастке AD отображение одного дополнительного столбца (в нашем случае department) и можно будет четко видеть где кто работает в данный моментЧётко и в одном месте вы будете это видеть только если у вас все юзеры лежат в одном OU. А в больших организациях нередко юзеров и компьютеры распределяют (из разных соображений) по нескольким разным OU. Поэтому не всегда вы будете видеть всех в одном плоском и удобном списке.
в Пользователя, т.е. в самого себя они и так могут записывать.А вот и неправда. В AD уровня 2003 у обычных пользователей (Domain Users) по умолчанию есть право на изменение далеко не всех своих атрибутов (т.е. права для SELF). Например, свои атрибуты physicalDeliveryOfficeName, telephoneNumber, wWWHomePage — пользователи по умолчанию могут сами менять. А многие другие свои пользовательские атрибуты (включая предлагаемый вами атрибут department) пользователь по умолчанию менять не может. Поэтому на изменение этого атрибута тоже придётся вручную давать права для SELF, если вы хотите, чтобы они писали именно в этот атрибут.
2. Система будет нагладной только в случае плоской организации: когда все пользователи всех отделов лежат в одном OUЯ тоже об этом написал, но потом автор добавил скриншот, на котором видно, что плоские списки юзеров и компьютеров там строятся отдельно от дерева OU через Query (видимо, по всему домену) в оснастке ADUC.
Поля Custom Attribute непросто вытащить в оснастке ADUC (если вообще можно, я не нашел как)Кстати, не все знают, что настройки отображения оснастки ADUC (Active Directory Users and Computers) частично хранятся не на клиентской стороне, а в конфигурации AD.
$tm1 = get-date 7:00 #ставим дату на 7:00 сегодня
$tm2 = get-date 10:00 #ставим дату на 10:00 сегодня
$au = Get-EventLog -ComputerName DC01 -LogName Security -After $tm1 -Before $tm2 -InstanceId 4776 #выгребаем нужные события за нужный период
$lst = $au | foreach {$_.replacementstrings[1] + " | " + $_.replacementstrings[2]} #выдергиваем нужные данные
$lst3 = "","" #самый простой способ создать массив строк
foreach ($ls in $lst) {$poi = [regex]::match($lst3,$ls); $poi.Success ; if ($poi.Success -ne "True") {$lst3 += $ls}} #вычленяем повторения
$lst3 > C:\<путь>\uc.txt
Опытные мелочи Windows-админа