Я новичок в PowerShell, пытаюсь написать простой сценарий, чтобы узнать, сколько раз конкретный пользователь заходил на рабочую станцию, и экспортировать эту информацию полезным способом в файл CSV, чтобы ее можно было легко манипулировать. Файл CSV действительно должен содержать только время входа в систему и имя пользователя, указанное в разделе «Сообщение» записи журнала безопасности.
Моя проблема в том, что мне кажется, что я могу либо получить CSV-файл с усеченным «сообщением», не содержащим имени пользователя, либо получить всю информацию, которую я хочу распечатать, для размещения вместо экспорта в CSV. Я уверен, что решение, вероятно, очень простое, но, как я уже сказал, я новичок.
В приведенном здесь коде я распечатываю все необходимое для размещения, но, похоже, не могу вставить его в файл CSV. Любая помощь будет оценена.
New-Item -Name "UserLoginHistory" -Path C:\ -ItemType Directory -Force | Out-Null
$UserName = Read-Host -Prompt 'Which user are you searching for?'
$a =Get-EventLog -LogName Security -Message "*$UserName*" | Where-Object {$_.EventID -eq 4624}
foreach($item in $a)
{
$timeLog = $item.TimeGenerated
$item = $item.Message.Split(":")
$subject = $item[3].split()
#$subject[2]
$NewLogin = $item[14].split()
#$NewLogin[2]
$WorkstationName = $item[26].split()
#$WorkstationName[1]
$SourceNetworkAddress = $item[27].split()
#$SourceNetworkAddress[1]
"Time: $timeLog Subject: $($subject[2]) NewLogin: $($NewLogin[2]) WorkstationName $($WorkstationName[1]) SourceNetworkAddress $($SourceNetworkAddress[1])"
}
Export-Csv -Path C:\UserLoginHistory\LoginHistory.csv