PDA

Показать полную графическую версию : Скрипт для отслеживания даты.


DMBS
05-02-2014, 14:45
Всем здравствуйте ,хотел бы узнать есть ли возможность, с помощью скрипта написанного на VBS,
создать следующее:
Имеется Active Directory (AD). В ней находятся учетные записи пользователей, а также созданы группы пользователей.
Группы созданы для упрощения и объединения пользователей по отделам предприятия.
На каждую группу назначен свой отдел. В группу добавлены учетные записи пользователей конкретного отдела.
Возможно ли с помощью ADSI, если я правильно понимаю, взаимодействовать с объектами AD, которые бы мне возвращали свойство
"даты добавления учетных записей в указанную группу?"
Вообщем мне нужно узнать даты добавления учетных записей пользователей, какие и когда добавлены были в группу?
Может это можно узнать штатными средствами Windows Server?
Заранее спасибо!...

Kazun
05-02-2014, 15:49
Для данной задачи потребуется включить аудит по событию 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

DMBS
06-02-2014, 12:15
Спасибо,При включенном перехвате события в Аудите, оно ведь будет действовать с того момента, как мы активируем перехват этого события, а
а мне нужно посмотреть пользователей , которые были добавлены в группы около месяца назад.

Kazun
06-02-2014, 12:48
Никак, т.к. в AD такая информация не хранится.




© OSzone.net 2001-2012