1/5 - (1 голос)

Алгоритм сценария

    n

  1. Выполняется поиск объектов «компьютер» из контейнера в Active Directory
  2. Проверяет сетевую доступность
  3. Выполняет поиск событий входа в систему, если сервер доступен
  4. Создает файл с текущей датой, добавляет информацию (Имя пользователя, Дата, Имя сервера, IP адрес клиента)

n

Настройка сценария

Сценарий не исполнен как функция и его корректирование выполняется непосредственно в нем же.nnНеобходимо заполнить переменную OU – это подразделение в Active Directory вмещающее сервера, Path – путь где будет располагаться отчетnnТребуется наличие установленного модуля Active Directory (если использовать поиск серверов из AD)nnWindows 10nnblogs.technet.microsoft.com/ashleymcglone/2016/02/26/install-the-active-directory-powershell-module-on-windows-10/nnWindows 7/2008nnblogs.msdn.microsoft.com/rkramesh/2012/01/17/how-to-add-active-directory-module-in-powershell-in-windows-7/nn n

Сценарий

[sociallocker]n

# Параметры сценарияn$OU = "" #Необходимо указать контейнер Active Directory, в котором расположены терминальные сервера. Пример "OU=Servers,DC=root,DC=local"n$Path = "" # Путь к сетевому ресурсу, в котором размещены отчеты. Пример "\\server\share\" или "c:\reports\"nn$filter = @{nLogName='Microsoft-Windows-TerminalServices-LocalSessionManager/Operational'nID = 22nStartTime = [datetime]::Today.AddDays(-1) # указывается период 1 - один день от текущей датыnEndTime = [datetime]::Todayn}nn$Machines = (Get-ADComputer -Filter * -SearchBase $OU).Namen$Date = Get-Date -Format dn$Date = $Date -replace "/", "-"nnforeach ($Machine in $Machines) {nif(Test-Connection -ComputerName $Machine -BufferSize 16 -quiet -count 2) {n    $result = @()n    $LogOnEvents = Get-WinEvent -filterHashtable $filter -ComputerName $Machine -ErrorAction SilentlyContinuen    Foreach($Event in $LogOnEvents )n            {n            $UserName = $Event.Properties[0].value n			$Ip = $Event.Properties[2].valuen			$logObj =  New-Object PSobject -Property @{ComputerName = $Machine;Time = $Event.TimeCreated; UserName = $UserName ;ClientIPAddress = $Ip  }  n			$result = $result + $logObjn            } n                $result  | Export-Csv -Encoding Unicode $Path\$Date.csv -Append -NoTypeInformation}nElse {Write-Host ("Host not response " + $Machine) -ForegroundColor White -BackgroundColor Red }n} nn

[/sociallocker]n

Создание расписания выполнения

    n

  1. Создать два файла, в примере каталог c:\scripts.  – файл AuditSessions.ps1
  2. Скопируйте сценарий в файл

nСоздание расписания поиска файловnnВ управлении компьютером, перейдите в раздел «Планировщик заданий». Создайте задание, введите желаемое имя заданияnnУкажите периодичность «Ежедневное»nnnnУстановите период «каждый день»nnnnОставьте опцию «Запустить программу»nnnnnnПуть к программе — C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exennАргумент запуска — C:\Scripts\AuditSessions.ps1nnnnПосле создания, откройте свойство задания, перейдите на вкладку «Триггеры»nnnnУстановите опцию «Повторить задачу каждые», указав нужную периодичность повторенияnnnnУстановите опции «Выполнять для всех пользователей» и «Выполнять с наивысшим приоритетом». Укажите пользователя, имеющего право на чтение всех файлов на удаленных компьютерах. Как правило это пользователи, входящие в группу администраторов на удаленных компьютерах.nnn

Информация о результатах и рабочих файлах

Файл отчета хранится в CSV файле, CSV файл по пути указанному в сценарии. CSV файл, можно преобразовать таблицу, содержимое CSV файла имеет разделение в виде запятой или другого символа.nn n

Аудить Windows систем, написание сценариев и скриптов, обращайтесь [email protected]