Jump to content

Probleme mit Powershell Script


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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: 3
Logon Date: 18.11.2010
Logon 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

Geschrieben (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 von blub
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...