Powrshell脚本来读取Windows Secutiry日志并过滤Elevationtypes196和1937

我有一个PowerShell脚本读取高程types,并显示在PowerShell窗口中的内容。 但是我需要把内容放在Excel文件中。

请帮忙。

CLS

$ evtLogEntries = $ null $ WorkDir =“import.csv”$ evtEntry = $ null

$ datetimeAfter = get-date“2016/6/20 10:00:00 am”

$ evtLogEntries = $空

$ evtLogEntries = Get-EventLog -LogName安全性-After $ datetimeAfter -EntryType SuccessAudit -Message“已创build新进程*”| Export-Csv SecurityLog.csv

foreach($ evtEntry in $ evtLogEntries){

$startIdx=$null $len=$null $startIdx=$evtEntry.Message.IndexOf("Subject:") $len=$evtEntry.Message.IndexOf("Token Elevation Type indicates")–$startIdx 

#write-host $ evtEntry.Message.substring($ startIdx,$ len)

 switch ( $evtEntry.Message.substring($evtEntry.Message.IndexOf("%%"),6)) { "%%1936" { write-host $evtEntry.TimeGenerated write-host $evtEntry.Message.substring($startIdx,$len) write-host "`tToken Elevation Type: Type 1 is a full token with no privileges removed or groups disabled. A full token is only used if User Account Control is disabled or if the user is the built-in Administrator account or a service account." } "%%1937" { write-host $evtEntry.TimeGenerated write-host $evtEntry.Message.substring($startIdx,$len) write-host "`tToken Elevation Type: Type 2 is an elevated token with no privileges removed or groups disabled. An elevated token is used when User Account Control is enabled and the user chooses to start the program using Run as administrator. An elevated token is also used when an application is configured to always require administrative privilege or to always require maximum privilege, and the user is a member of the Administrators group." } } } 

#“%% 1936” – 令牌提升types:types1是一个完整的令牌,没有权限被删除或组被禁用。 仅当用户帐户控制被禁用或者用户是内置的pipe理员帐户或服务帐户时才使用完整令牌。

#“%% 1937” – 令牌提升types:types2是一个提升的令牌,没有删除权限或禁用组。 当用户帐户控制#被启用并且用户select使用以pipe理员身份运行来启动程序时使用提升的令牌。 当应用程序configuration为始终需要pipe理#权限或始终要求最大权限,并且用户是pipe理员组的成员时,也会使用提升的令牌。

#“%% 1938” – 令牌提升types:types3是一个有限令牌,删除了pipe理权限并禁用了pipe理组。 使用有限令牌#启用用户帐户控制时,应用程序不需要pipe理权限,并且用户不select使用以pipe理员身份运行启动程序。

你有没有尝试过这样的事情:

 Get-EventLog -logname security | Where-Object {($_.eventid -eq 1936) -or ($_.eventid -eq 1937) -or ($_.eventid -eq 1938)} | export-csv -path c:\temp\events 

过滤它的相关部分

 Get-EventLog -logname security | Where-Object {($_.eventid -eq 1936) -or ($_.eventid -eq 1937) -or ($_.eventid -eq 1938)} | select EventID,MachineName,EntryType,Message,InstanceId,TimeGenerated,Timecreated,UserName | fl | export-csv -path C:\logs.csv