0
是否有一種方法可以按用戶名對csv表進行排序,然後爲每個用戶排序創建時間列?Powershell - 按用戶名和創建時間對錶進行排序
我想看看我是否可以從最近的回來排序創建時間列。
我正在研究腳本以查看安全事件日誌中每個用戶的最後一次登錄。
我可以按名稱排序,但寫入的時間不是按任何順序。
我的下一個目標是顯示最近一次爲一位用戶創建的條目,而不是其他條目。
$time = (Get-Date) – (New-TimeSpan -Day 30)
$ComputerName = $env:COMPUTERNAME
#Delete any previously created files
Get-ChildItem -Path "C:\PowerShellScripts\LastLogon\Results" -Recurse |
Where-Object CreationTime -lt (Get-Date).AddDays(-0) | Remove-Item -
ErrorAction SilentlyContinue
$hastable = Get-WinEvent -FilterHashtable
@{Logname='Security';ID=4624;starttime=$time} -ComputerName $ComputerName |
? {($_.Properties[8].Value -eq '10') -and
($_.Properties[5].Value -ne 'SYSTEM') -and
($_.Properties[5].Value -ne 'Agvadmin') -and
($_.Properties[5].Value -ne 'Agvance') -and
($_.Properties[5].Value -ne 'ssi1') -and
($_.Properties[5].Value -ne 'ssi2') -and
($_.Properties[5].Value -ne 'ssi3') -and
($_.Properties[5].Value -notmatch 'DWM') -and
($_.Properties[5].Value -notmatch 'Default') -and
($_.Properties[5].Value -notmatch 'TS6') -and
($_.Properties[5].Value -notmatch 'DC1') -and
($_.Properties[5].Value -notmatch 'DC1') -and
($_.Properties[5].Value -notmatch 'SQLTELEMETRY') -and
($_.Properties[5].Value -notmatch 'MSSQL') -and
($_.Properties[5].Value -notmatch "$env:COMPUTERNAME") -and
($_.Properties[5].Value -ne 'PANKAHLERSERVER$') -and
($_.Properties[5].Value -ne 'GREKAHLERSRVR$') -and
($_.Properties[5].Value -ne 'DIEKAHLERSERVER$') -and
($_.Properties[5].Value -ne 'ANONYMOUS LOGON') -and
($_.Properties[5].Value -ne 'LOCAL SERVICE') -and
($_.Properties[5].Value -ne 'NETWORK SERVICE') -and
($_.Properties[5].Value -ne 'ssiadmin') -and
($_.Properties[5].Value -ne 'Administrator')
} |
select @{N='User';E={$_.Properties[5].Value}} , @{N='TimeCreated';E=
{$_.TimeCreated}} , @{l="Logon Type";e={$_.Properties[8].Value}}
$hastable.GetEnumerator()| Sort -Property User |
Export-Csv C:\PowerShellScripts\Lastlogon\Results\LastLogon.csv -
NoTypeInformation
#The user count is created here
$number = (Import-Csv C:\PowerShellScripts\Lastlogon\Results\LastLogon.csv |
measure | % { $_.Count})
#The file is renamed to include computername, date, and user count
rename-item -path C:\PowerShellScripts\Lastlogon\Results\LastLogon.csv -
NewName
C:\PowerShellScripts\Lastlogon\Results\LastLogon-$ComputerName-$CurrentDate-
UserCount-$number.csv
謝謝,我會嘗試一下,看看會不會起作用。如果我選擇了-first,那麼這很有意義,但我可能必須按名稱將它們組合在一起,然後選擇每個組的第一個條目。 – RedThorn88