Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 18.11.2010, 21:00   #1
Newbie
 
Offline
Registriert seit: 11-2010
Beiträge: 2
Probleme mit Powershell Script

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:
Code:
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"
)
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
Unter Powershell habe ich erst folgendermaßen angefangen:
Code:
QUser
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
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 ">"
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
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
Danke für Eure Unterstützung!

Gruß NeoTek
    Mit Zitat antworten
Alt 18.11.2010, 22:31   #2
Moderator
 
Offline
Registriert seit: 11-2002
Beiträge: 6.666
Hallo und willkommen an Board!

Probiers mal so:

Code:
$user=QUser | Select-String ">" 
$b = $user  -split("\s+")
"ID: $($b[2])"
"Date: $($b[$b.length-2])"
"Time: $($b[$b.length-1])"
cu
blub

Geändert von blub (18.11.2010 um 22:47 Uhr).

Signatur
www.powershellpraxis.de

Nec Cupias, Nec Metuas

    Mit Zitat antworten
Alt 19.11.2010, 09:37   #3
Newbie
 
Offline
Registriert seit: 11-2010
Beiträge: 2
Hallo blub,

vielen Dank für deine Hilfe. So klappt es wunderbar.

Gruß NeoTek
    Mit Zitat antworten
Alt 19.11.2010, 11:10   #4
Moderator
 
Offline
Registriert seit: 11-2002
Beiträge: 6.666
gerne

Signatur
www.powershellpraxis.de

Nec Cupias, Nec Metuas

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Powershell - download aus Internet via script Pet7 Windows Forum — Scripting 2 03.11.2010 08:06
Powershell Script zum Auslesen Gruppenmitglieder tom701 Windows Forum — Scripting 11 18.10.2010 17:02
Powershell Script zum Auslesen der Festplattenkapazität fjoerdman Windows Forum — Scripting 2 03.03.2010 16:24
Powershell Script Signatur firefox80 Windows Forum — Scripting 5 09.08.2008 17:10
Trouble mit Powershell Script matze@1und1 Windows Forum — Scripting 0 26.09.2007 16:32


Alle Zeitangaben in MEZ/CET. Es ist jetzt 15:19 Uhr. Seite generiert in 0,030 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang