marcimarc85
Goto Top

Powershell Ausgabe in csv-Format

Hi,

Ich habe ein Powershell Script, was mir die täglichen RDP-Verbindungen auf einigen Servern in einer Textdatei ausgibt:

$timestamp = Get-Date -Format 'yyyyMMdd'  
$hostname = "<hostname>"  
$Server = "<sserver>"  

$Logon_Event = Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational';id=1149;StartTime=(Get-date).Date;EndTime=(get-date)} | select TimeCreated,@{n='Username';e={$_.Properties[0].Value}},@{n='Domain';e={$_.Properties[1].Value}},@{n='Client';e={$_.Properties[2].Value}},@{n='Computername';e={$hostname}} | format-table  
$Logon_Event | Out-File "D:\log\rdp_connections_$($Server)_$($timestamp).log"  

Dabei kommt dann sowas raus:

TimeCreated         Username      Domain    Client         Computername                             
-----------         --------      ------    ------         ------------                             
06.11.2023 12:49:06 Kay    	  <domain>  10.104.182.57  [<hostname>] <server> 
06.11.2023 12:44:42 Kay     	  <domain>  10.104.182.57  [<hostname>] <server> 
06.11.2023 12:43:05 Kay     	  <domain>  10.104.180.146 [<hostname>] <server> 
06.11.2023 12:11:01 ahmed  	  <domain>  10.104.180.146 [<hostname>] <server> 
06.11.2023 11:39:16 Bianca   	  <domain>  10.104.182.57  [<hostname>] <server> 
06.11.2023 10:28:00 johannes 	  <domain>  10.104.182.57  [<hostname>] <server> 
06.11.2023 10:20:35 Kay    	  <domain>  10.104.180.146 [<hostname>] <server> 
06.11.2023 09:09:44 Florian 	  <domain>  10.104.180.146 [<hostname>] <server> 

Nun ist das zwar schön übersichtlich in der Textdatei, es soll aber jetzt in excel aufbereitet werden und da wäre es im csv-Format natürlich die Beste Lösung.

Wie bekomme ich die Ausgabe denn nun so hin, dass sie so dargestellt wird:

TimeCreated|Username|Domain|Client|Computername                                                     
06.11.2023 12:49:06 |Kay    	  |<domain>  |10.104.182.57  |[<hostname>] <server> 
06.11.2023 12:44:42 |Kay     	  |<domain>  |10.104.182.57  |[<hostname>] <server> 
06.11.2023 12:43:05 |Kay     	  |<domain>  |10.104.180.146 |[<hostname>] <server> 
06.11.2023 12:11:01 |ahmed  	  |<domain>  |10.104.180.146 |[<hostname>] <server> 
06.11.2023 11:39:16 |Bianca   	  |<domain>  |10.104.182.57  |[<hostname>] <server> 
06.11.2023 10:28:00 |johannes 	  |<domain>  |10.104.182.57  |[<hostname>] <server> 
06.11.2023 10:20:35 |Kay    	  |<domain>  |10.104.180.146 |[<hostname>] <server> 
06.11.2023 09:09:44 |Florian 	  |<domain>  |10.104.180.146 |[<hostname>] <server> 

Danke schonmal

Content-Key: 61998986920

Url: https://administrator.de/contentid/61998986920

Printed on: April 27, 2024 at 22:04 o'clock

Member: SlainteMhath
SlainteMhath Nov 08, 2023 at 08:18:32 (UTC)
Goto Top
Moin,

Export-Csv
ist dein Freund face-smile

lg,
Slainte
Member: TK1987
TK1987 Nov 08, 2023 at 08:58:58 (UTC)
Goto Top
Moin,

entweder, wie @slainte schon sagte, mit Export-Csv, Semikolon als Delimiter und UTF8-Kodierung - dann lässt sich die CSV so Problemlos in Excel öffnen.
$Logon_Event | Export-Csv -Path "<Ausgabepfad>.csv" -Delimiter ';' -Encoding UTF8 -NoTypeInfomation  

Oder aber man nutzt ConvertTo-Csv mit Tabstop als Delimiter und speichert die Daten in die Zwischenablage. So kann man die Daten dann direkt in eine Arbeitsmappe in Excel einfügen
$Logon_Event | ConvertTo-Csv -NoTypeInformation -Delimiter "`t" | Set-Clipboard  

Gruß Thomas
Mitglied: 8030021182
8030021182 Nov 08, 2023 updated at 10:15:44 (UTC)
Goto Top
Aber bitte nicht vergessen das
| format-table
am Ende der Variablen $Logon_Event zu entfernen wenn man das ganze an Export-CSV oder ConvertTo-CSV piped.

Gruß Katrin