NeoTek 10 Geschrieben 18. November 2010 Melden Teilen Geschrieben 18. November 2010 Hallo zusammen, ich muss bei uns einige Scripte von Batch auf Powershell umstellen. Nun komme ich bei einem Script an folgender Stelle nicht weiter. Das Script wird auf Terminal Servern verwendet um Informationen über die aktuelle Session auszulesen. So sieht der Aufruf in Batch aus: for /f "tokens=3,6,7" %%i in ('quser %username% ^| find /i ">"') do ( ECHO Session ID: %%i > "%TEMP%\SESSION_INFO.TXT" ECHO Logon Date: %%j >> "%TEMP%\SESSION_INFO.TXT" ECHO Logon Time: %%k >> "%TEMP%\SESSION_INFO.TXT")[/Code] Als Ausgabe erhalte ich dann eine Textdatei die ich dann weiter verarbeiten kann. So würde die Ausgabe z.B. aussehen: [Code]Session ID: 3Logon Date: 18.11.2010Logon Time: 08:46[/Code] Unter Powershell habe ich erst folgendermaßen angefangen: [Code]QUser[/Code] Als Ausgabe erhalte ich: [Code] USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME testuser1 console 2 Active none 18.11.2010 12:35>testuser2 rdp-tcp#0 3 Active . 18.11.2010 08:46 testuser2 rdp-tcp#1 4 Active . 18.11.2010 08:52[/Code] Die aktuelle Session wird mit einem ">" markiert. An dieser Stelle wird im Batchscript nach der Zeile mit > gesucht und dann Anhand einer For-Schleife die Tokens 3,6 und 7 ausgegeben. Unter Powershell habe ich das Script daher wie folgt erweitert: [Code]QUser | Select-String ">"[/Code] Dann erhalte ich schon mal die von mir benötigte Zeile als Ausgabe: [Code]>testuser2 rdp-tcp#0 3 Active . 18.11.2010 08:46[/Code] Hier komme ich aber nicht mehr weiter. Ich habe es mit einer weiteren Pipe mit ForEach und und auch schon Select-Object versucht. Das klappt aber beides nicht. Könnt Ihr mir vielleicht weiterhelfen. Ich brauche am Ende einfach folgende Variablen, damit ich damit weiterarbeiten kann: [Code]$ID=3$Date=18.11.2010$Time=08:46[/Code] Danke für Eure Unterstützung! Gruß NeoTek Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 18. November 2010 Melden Teilen Geschrieben 18. November 2010 (bearbeitet) Hallo und willkommen an Board! Probiers mal so: $user=QUser | Select-String ">" $b = $user -split("\s+") "ID: $($b[2])" "Date: $($b[$b.length-2])" "Time: $($b[$b.length-1])" cu blub bearbeitet 18. November 2010 von blub Zitieren Link zu diesem Kommentar
NeoTek 10 Geschrieben 19. November 2010 Autor Melden Teilen Geschrieben 19. November 2010 Hallo blub, vielen Dank für deine Hilfe. So klappt es wunderbar. Gruß NeoTek Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 19. November 2010 Melden Teilen Geschrieben 19. November 2010 gerne :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.