Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 1361 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 Userverwaltung
Mit Powershell am AD Controller die aktiven Usersessions auslesen (1)

Frage von arduino zum Thema Windows Userverwaltung ...

Windows Installation
gelöst Vorinstalliertes Betriebssystem auslesen (BIOS) (14)

Frage von Yauhun zum Thema Windows Installation ...

Batch & Shell
gelöst Daten mit Mediainfo auslesen (17)

Frage von Dr.Byte zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Festplatten, SSD, Raid
PC stellt nach dem Bios ab (19)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...

Microsoft Office
gelöst VBA Excel Problem mit UserForm, ListBox und TextBox (12)

Frage von abuelito zum Thema Microsoft Office ...