Frage von RalRam, 31

Windows: Unbekannte Variable in Anmeldescript (Prä Windows 2000)?

Ich habe hier gerade ein altes Anmeldescript vorliegen. Darin enthalten ist ein Befehl um ein eventuell gemountetes Netzlaufwerk zu löschen.

if exist m:%w2k% net use m: /d >nul:

Was genau bewirkt die Variable %w2k%?

Ich vermute, das ist ein Relikt aus der NT zu W2K Umstellung (Kompatibilität?). Es begegnet mir immer mal wieder, teilweise habe ich es sogar übernommen - aber wofür genau ist das Ding?

Ich finde darüber nichts in der Suchmaschine meiner Wahl.

Antwort
von thel3est, 29

Wird denn weiteroben eine Variable %w2k% gesetzt?

Er prüft anescheinend ob ein Laufwerk M:+Pfad vorhanden ist und falls einer da ist soll er dieses Laufwerk (Netzlaufwerk oder USB Stick usw.) löschen/trennen.

Kommentar von RalRam ,

Ja scheint so zu sein.
Nur wird die Variable nirgends gesetzt.
Ist also doch nur ein Relikt was seit Urzeiten einfach mitgeschleppt wird.

Kommentar von thel3est ,

Ich würde es zwar nicht Relikt nennen aber ja, es ist wahrscheinlich nicht mehr zu verwenden, wenn diese Variable nicht gesetzt wird ;)

Kommentar von thel3est ,

Ich bezweifle aber auch das es eine Systemvariable ist. So eine wäre mir zumindest nicht bekannt.

Kommentar von RalRam ,

Ich habe etwas gefunden, ein Call aufruf auf eine Andere Batchdatei, die zwischendurch aber sinnigerweise umbenannt wurde und damit gar nicht mehr berücksichtigt wurde.
Darin enthalten:

if "%ALLUSERSPROFILE%".=="". goto weiter
set w2k=.

In der Sprungmarke 'weiter' sind dann ganz normale Laufwerksverbindungen per net use.
Ich komm nicht drauf, was das insgesamt bewirken soll.

if "%ALLUSERSPROFILE%".=="". goto weiter
set w2k=.
if exist p:%w2k% net use p: /d >nul:

ergibt für mich

if exist p:. net use p: /d >nul:

Da werde ich nicht schlau draus.

Expertenantwort
von Roderic, Community-Experte für Windows, 31

Kein Relikt. Eine solche vordefinierte gab es nie. Die hat der Autor deines Anmeldescriptes selber gesetzt.

Kommentar von RalRam ,

Mhm. Auf die Variante bin ich nun gar nicht gekommen.
Denn die Variable wird nirgendo deklariert oder gesetzt.

Deswegen ging ich davon aus, das es sich dabei um eine Systemvarable handelt, die ich nur nicht kenne.

Kommentar von Roderic ,

...und zwar entweder

  • an einer anderen Stelle im Anmeldeskript weiter oben

oder

  • in einem anderem Skript, das vor dem Anmeldeskript ausgeführt wird

oder

  • in der Computerkonfiguration der PCs, die dieses Anmeldeskript ausführen, vermutlich in deren Autoexec.bat.

Mit großer Wahrscheinlichkeit letzteres.

Schau dir die Autoexec.bat an, das steht mit Sicherheit sowas wie:

SET w2k=\ordnername\



Kommentar von RalRam ,

Ich habe etwas gefunden, ein Call aufruf auf eine Andere Batchdatei, die zwischendurch aber sinnigerweise umbenannt wurde und damit gar nicht mehr berücksichtigt wurde.
Darin enthalten:

if "%ALLUSERSPROFILE%".=="". goto weiter
set w2k=.

In der Sprungmarke 'weiter' sind dann ganz normale Laufwerksverbindungen per net use.
Ich komm nicht drauf, was das insgesamt bewirken soll.

if "%ALLUSERSPROFILE%".=="". goto weiter
set w2k=.
if exist p:%w2k% net use p: /d >nul:

ergibt für mich

if exist p:. net use p: /d >nul:

Da werde ich nicht schlau draus.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten