Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Auslesen des aktuellen Consolen Users

Frage Entwicklung Batch & Shell

Mitglied: L0c4lh0sT

L0c4lh0sT (Level 1) - Jetzt verbinden

26.09.2013 um 15:37 Uhr, 1373 Aufrufe, 5 Kommentare, 2 Danke

Hallo liebe Administratoren,

ich hoffe mal ihr könnt mir helfen. Habe aktuell ein Problem mit einem Batch, dass ich gerade schreibe.

Es geht darum, den Benutzernamen des aktuellen Consolen Users herauszufinden.

Das Problem ist vielleicht ganz einfach zu lösen, aber ich komme nicht drauf.

Und zwar möchte ich nur den Benutzernamen haben, ohne Leerzeichen oder andere Zeichen. Klar könnte ich die Variable mit ":~0,20" auf die ersten 20 Zeichen kürzen, aber es kann durchaus vorkommen, dass Benutzer mit mehr als 20 Zeichen existieren. Außerdem hätte ich dann wieder die Leerzeichen mir drin.

Hier ist das Script:

01.
@echo off 
02.
setlocal 
03.
set qry=query session console 
04.
set fnd=findstr /I /L /C:"console" 
05.
for /f "Tokens=1*" %%u in ('%qry%^|%fnd%') do ( 
06.
 set vsn=%%v 
07.
08.
@echo %vsn% 
09.
endlocal
Der Benutzername des aktiven Benutzers soll hinterher in der Variablen "vsn" stehen

Gruß
Alex
Mitglied: Penny.Cilin
26.09.2013 um 15:48 Uhr
Hallo Alex,

warum so umständlich? Nehme QWINSTA.


Gruss Penny.
Bitte warten ..
Mitglied: AnonBorg
26.09.2013 um 16:00 Uhr
Hi,

%username%
mach mal ein "set" auf der console, dann siehst Du alle Systemvariablen die Dir zur Verfügung stehen.

echo %username% sollte den aktuellen Namen ausgeben, auch wenn die console mit run as gestartet wurde.


René
Bitte warten ..
Mitglied: L0c4lh0sT
26.09.2013 um 16:50 Uhr
Das funktioniert leider nur, wenn man selbst der aktuelle Benutzer ist. Wenn das Script aber als Automatisierter Task mit Systemrechten ausgeführt wird, bringt mir das nichts ;) Danke trotzdem.

@Penny.Cillin
Gib mal in einer cmd "QWINSTA /?" ein. Na was kommt? Richtig "Query session". Das ist ein und der selbe befehl. Bringt mich hier auch nicht weiter, da nur der Benutzername in der Variablen stehen soll. Aber an sich hast du recht und ich könnte anstatt "query session console" auch "qwinsta console" nehmen
Auch dir natürlich ein Danke

Gruß
Alex
Bitte warten ..
Mitglied: Endoro
27.09.2013 um 00:54 Uhr
Hi, das sollte es tun (nicht an veralteten Windows Versionen getestet):
01.
@echo off &setlocal 
02.
for /f "tokens=*delims=>" %%a in ('query user^|find /i "console"') do set "user=%%a" 
03.
set "right=console%user:*console=%" 
04.
call set "user=%%user:%right%=%%" 
05.
set "user=%user: =%" 
06.
echo "%user%"
lg.
Bitte warten ..
Mitglied: L0c4lh0sT
27.09.2013 um 07:59 Uhr
Vielen Dank Endoro das funktioniert super!

Wusste doch das es irgendwie möglich ist.
Könntest du mir noch erklären was genau passiert bei dem Script?`
Also ich mein jetzt nicht die elementaren sachen wie setlocal oder die FOR-Schleife.

Aber gerade Zeile 3 und 4 interessieren mich doch sehr. Habe ich so noch nicht gesehen.
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Account-Sperrungen eines AD-Users auslesen (2)

Frage von MissJones zum Thema Windows Server ...

Xenserver
gelöst XenCenter VM Console Remotezguriff (5)

Frage von sunics zum Thema Xenserver ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
Remotedesktop admin Console (5)

Frage von gruener.puma zum Thema Windows Server ...

Neue Wissensbeiträge
Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(4)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Windows 10

Microsoft veröffentlicht das "Fall Creators Update

(10)

Information von Penny.Cilin zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...