Как я могу ускорить этот сценарий PowerShell? - PullRequest
1 голос
/ 26 марта 2020

У нас есть NetApp NAS, обслуживающий общие ресурсы CIFS. На общем ресурсе, который используется нашей бухгалтерской группой, кто-то или какой-то процесс перемещает каталоги, что нарушает другие процессы. Мы включили одитинг в надежде поймать виновника. Когда это происходит, мы угадываем, какие журналы могут охватывать время события, а затем выбираем журналы, чтобы найти подсказку, потому что не существует идентификатора события для «Эй, эта папка была перемещена», поэтому мы пытаемся сузить ее, отфильтровывая ID по ID. Я создал сценарий PowerShell, который использует -FilterHashTable, чтобы мы могли запустить сценарий и go, чтобы сделать что-то более стоящее.

$evtid = $args[0]
$folder = $args[1]

Get-ChildItem -include *.evt, *.evtx -Path .\log -Recurse |
ForEach-Object {
"Parsing $($_.fullname)`r`n"
$events = Get-WinEvent -FilterHashtable @{path=$_.fullname;ID=$evtid}
ForEach ($event in $events) {
    $eventXML = [xml]$event.toXML()
    For ($i=0; $i -lt $eventXML.Event.EventData.Data.Count; $i++) {
        Add-Member -InputObject $event -MemberType NoteProperty -Force -Name $eventXML.Event.EventData.Data[$i].name -Value $eventXML.Event.EventData.Data[$i].'#text'
    }
  $events | select * | where ObjectName -Like $folder |Export-CSV ".\Event$($evtid).csv" -Append
  }
}

Я запустил это для файла .evtx с 269 465 событиями и отфильтрованным идентификатором, который выдает 134 837 через 25 часов после отмены сценария. Я столкнусь с этим? Я экспортировал файл .evtx в файл .csv и попытался найти его, но это файл размером 225 МБ, и мне пришлось искать другие инструменты, которые недоступны остальной компании.

Давно, но я хочу знать следующее: видите ли вы способ ускорить этот запрос?

Информация, которая сохраняется для события

<Event xmlns="http://schemas.netapp.com/events/event">
- <System>
  <Provider Name="NetApp-Security-Auditing" Guid="{3CB2A168-FE19-4A4E-BDAD-DCF422F13473}" /> 
  <EventID>4663</EventID> 
  <EventName>Get Object Attributes</EventName> 
  <Version>101.2</Version> 
  <Source>CIFS</Source> 
  <Level>0</Level> 
  <Opcode>0</Opcode> 
  <Keywords>0x8020000000000000</Keywords> 
  <Result>Audit Success</Result> 
  <TimeCreated SystemTime="2020-03-26T14:34:11.343330000Z" /> 
  <Correlation /> 
  <Channel>Security</Channel> 
  <Computer>NA1-FAS01/svm_nam-pdfs01</Computer> 
  <ComputerUUID>dd646d34-6fc6-11e8-8c96-00a098bd5477/ae301520-91a2-11e8-a174-00a098bd5477</ComputerUUID> 
  <Security /> 
  </System>
- <EventData>
  <Data Name="SubjectIP" IPVersion="4">10.6.21.11</Data> 
  <Data Name="SubjectHostname" Source="" /> 
  <Data Name="SubjectUnix" Uid="0" Gid="1" Local="false" /> 
  <Data Name="SubjectUserSid">S-1-5-21-1139423721-663753744-1511918330-115546</Data> 
  <Data Name="SubjectUserIsLocal">false</Data> 
  <Data Name="SubjectDomainName">AMERICAS</Data> 
  <Data Name="SubjectUserName">AM050240</Data> 
  <Data Name="ObjectServer">Security</Data> 
  <Data Name="ObjectType">Directory</Data> 
  <Data Name="HandleID">00000000000427;00;0000393f;4163de28</Data> 
  <Data Name="ObjectName">(CHIdata);/SOG/NetApp/NetApp Select</Data> 
  <Data Name="InformationRequested">File Type; File Size; Created Time; Last Accessed Time; Last Metadata Modfied Time; Last Modified Time; Allocation size; Delete on last close;</Data> 
  </EventData>
  </Event>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...