Anzeige

Am Puls von Microsoft

Anzeige

[gelöst] Das System kann den angegebenen Pfad nicht finden

M0K4

Herzlich willkommen
Guten Morgen alle zusammen,

Ich bin ein Azubi in der IT und schreibe im Moment ein batch-skript das den aktuellen User anzeigt. Da die batch Datei nicht vom aktuellen User selbst gestartet wird sind whoami und echo %USERNAME% keine Optionen.
Also verwende ich qwinsta und filtere das ganze mit der for /f schleife und findstr. Das schaut dann wie folgt aus.
test.bat :
Code:
for /f "tokens=2 delims= " %%a IN ('qwinsta ^| findstr Aktiv') DO (
	set current_user=%%a
)
direkt in cmd:
Code:
for /f "tokens=2 delims= " %a in ('qwinsta ^| findstr Aktiv') do @echo %a

Ich kriege den Fehler "Das System kann den angegebenen Pfad nicht finden". Jedoch ist dieser Fehler User bezogen.
Gleicher Rechner anderer User -> kein Fehler
anderer Rechner anderer User -> kein Fehler (nur bei 2 getestet)
anderer Rechner gleicher User -> Fehler

Was habe ich bisher noch probiert (bei meinem problem User):
- Nur den Befehl qwinsta ausgeführt -> kein Fehler
- in meine for schleife den genauen Pfad von qwinsta angegeben -> Fehler
- sfc /scannow ausgeführt -> keine Integritätsverletzung gefunden

Die Möglichkeiten die mir noch einfallen aber die sehr ungerne ausführen würde.

- meine Komplette [HKEY_CURRENT_USER] mit dem eines anderen Users vergleichen (hab mich noch nicht schlau gemacht ob es dafür schon ein Programm gibt)
- mein User Profil vom Raid löschen

Ich weiß leider langsam nicht mehr wirklich weiter, vielleicht könnt mir ja noch Ideen oder Lösungen geben.

Alle Rechner haben übrigens Windows 7 Professional 64-bit Service Pack 1.

mit freundlichen Grüßen
Moritz



Zusatz Informationen:
Das Skript soll dann vom Nagios / Check_mk verarbeitet werden.
Und hier noch das gesamte Script (nur zur Vollständigkeit her)
Code:
@echo off

for /f "tokens=2 delims= " %%a IN ('qwinsta ^| findstr Aktiv') DO (
	set current_user=%%a
)

if "%current_user:~0,2%" == "ca" (
	set /p last_user=< "C:\tmp\userlog.txt"
	echo.%current_user% > "C:\tmp\userlog.txt"
	GOTO AUSGABE
	
)
if "%current_user:~0,2%" == "ex" (
	set /p last_user=<C:\tmp\userlog.txt
	echo.%current_user%>C:\tmp\userlog.txt
	GOTO AUSGABE
)
if "%current_user:~0,2%" == "ad" (
	set /p last_user=<C:\tmp\userlog.txt
	echo.%current_user%>C:\tmp\userlog.txt
	GOTO AUSGABE
)
if "%current_user:~0,2%" == "pa" (
	set /p last_user=<C:\tmp\userlog.txt
	echo.%current_user%>C:\tmp\userlog.txt
	GOTO AUSGABE
)

set current_user=niemand
set /p last_user=<C:\tmp\userlog.txt
GOTO AUSGABE

:AUSGABE
echo ^<^<^<current_user_test^>^>^>
echo.%current_user%
echo ^<^<^<last_user^>^>^>
echo.%last_user%
 
Anzeige
Habe den übeltäter schon selbst gefunden.

Ich hatte im HKCU\SOFTWARE\Microsoft\Command Processor einen eintrag AutoRun der auf Insi ging.

Eintrag gelöscht und nun krieg ich auch keine Fehler Meldung mehr.
 
Anzeige
Oben