Показать полную графическую версию : Скрипт для отслеживания даты.
Всем здравствуйте ,хотел бы узнать есть ли возможность, с помощью скрипта написанного на VBS,
создать следующее:
Имеется Active Directory (AD). В ней находятся учетные записи пользователей, а также созданы группы пользователей.
Группы созданы для упрощения и объединения пользователей по отделам предприятия.
На каждую группу назначен свой отдел. В группу добавлены учетные записи пользователей конкретного отдела.
Возможно ли с помощью ADSI, если я правильно понимаю, взаимодействовать с объектами AD, которые бы мне возвращали свойство
"даты добавления учетных записей в указанную группу?"
Вообщем мне нужно узнать даты добавления учетных записей пользователей, какие и когда добавлены были в группу?
Может это можно узнать штатными средствами Windows Server?
Заранее спасибо!...
Для данной задачи потребуется включить аудит по событию 4728. Event ID when a User is Added or Removed from Security-Enabled Global Group such as Domain Admins or Group Policy Creator Owners (http://social.technet.microsoft.com/wiki/contents/articles/17049.event-id-when-a-user-is-added-or-removed-from-security-enabled-global-group-such-as-domain-admins-or-group-policy-creator-owners.aspx)
Для PowerShell - можно использовать модуль PsEventLogWatcher и примерами использования https://pseventlogwatcher.codeplex.com/wikipage?title=Advanced%20Examples
$BookmarkStreamPath = "C:\Eventlogwatchers\EventsToCSV.stream"
$BookmarkToStartFrom = Get-BookmarkToStartFrom $BookmarkStreamPath
$EventLogQuery = New-EventLogQuery "ForwardedEvents"
$EventLogWatcher = New-EventLogWatcher $EventLogQuery $BookmarkToStartFrom
$Action = {
$EventObj = New-Object psobject
$EventObj | Add-Member noteproperty TimeCreated $EventRecord.TimeCreated
$EventObj | Add-Member noteproperty ID $EventRecord.ID
$EventObj | Add-Member noteproperty MachineName $EventRecord.MachineName
$EventRecordXML.Event.EventData.Data | Where-Object {$_.name -ne $Null} | ForEach-Object {$EventObj | Add-Member noteproperty $_.name $_."#text"}
switch ($EventObj.ID)
{
4728 {$Outfile = "SecurityGroup_MemberAdded.csv"}
}
If ($Outfile -ne $Null)
{
$EventObj | Convertto-CSV -Outvariable OutData -NoTypeInformation
$OutPath = "C:\EventLogWatchers\CSV\$Outfile"
If (Test-Path $OutPath)
{
$Outdata[1..($Outdata.count - 1)] | ForEach-Object {Out-File -InputObject $_ $OutPath -append}
} else {
Out-File -InputObject $Outdata $OutPath
}
}
}
Register-EventRecordWrittenEvent $EventLogWatcher $BookmarkStreamPath -action $action -SourceIdentifier "EventsToCSV"
$EventLogWatcher.Enabled = $True
Спасибо,При включенном перехвате события в Аудите, оно ведь будет действовать с того момента, как мы активируем перехват этого события, а
а мне нужно посмотреть пользователей , которые были добавлены в группы около месяца назад.
Никак, т.к. в AD такая информация не хранится.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC