Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Скрипт для отслеживания даты. (http://forum.oszone.net/showthread.php?t=277163)

DMBS 05-02-2014 14:45 2303251

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

Kazun 05-02-2014 15:49 2303307

Для данной задачи потребуется включить аудит по событию 4728. Event ID when a User is Added or Removed from Security-Enabled Global Group such as Domain Admins or Group Policy Creator Owners

Для PowerShell - можно использовать модуль PsEventLogWatcher и примерами использования https://pseventlogwatcher.codeplex.c...ced%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 2303901

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

Kazun 06-02-2014 12:48 2303917

Никак, т.к. в AD такая информация не хранится.


Время: 07:09.

Время: 07:09.
© OSzone.net 2001-