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, 1341 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Batch & Shell
gelöst Appx aus Image auslesen und entfernen (9)

Frage von Markus2016 zum Thema Batch & Shell ...

Windows Userverwaltung
gelöst Mit der PoweShell die lokal angelegten Users eines anderen Rechners auflisten (7)

Frage von M.Marz zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...