Warum zeigt der Set-Befehl mehr Umgebungsvariablen an als die Umgebungsvariablen-GUI?

Warum zeigt der Set-Befehl mehr Umgebungsvariablen an als die Umgebungsvariablen-GUI?

Wenn ich den setBefehl in der Eingabeaufforderung ausführe, sehe ich als erste Variable folgende:

Bildbeschreibung hier eingeben

Aber wenn ich meine Umgebungsvariablen-GUI öffne, sehe ich nichtALLUSERSPROFILE

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Warum ist das so? Es sind zahlreiche andere Variablen aufgelistet, setdie ebenfalls nicht in der GUI angezeigt werden. Sollten sie nicht alle die gleichen Informationen anzeigen?

Antwort1

Nach einigem Herumprobieren habe ich herausgefunden, dass dies die zusätzlichen Umgebungsvariablen sind, die SETauf meinem Windows 8.1-System gemeldet werden:

ALLUSERSPROFILE
APPDATA
COMPUTERNAME
CommonProgramFiles
CommonProgramFiles(x86)
CommonProgramW6432
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
LOGONSERVER
PROMPT
PUBLIC
ProgramData
ProgramFiles
ProgramFiles(x86)
ProgramW6432
SESSIONNAME
SystemDrive
SystemRoot
USERDOMAIN
USERDOMAIN_ROAMINGPROFILE

Ich vermute, dass sie alle automatisch von Windows generiert und aktualisiert werden. Dies ist wahrscheinlich der Grund, warum ich einige davon nirgends in der Windows-Registrierung finden konnte.

Ich weiß das HOMEDRIVE, HOMEPATHund HOMESHAREsindautomatisch aktualisiertausdieser Beitrag im TechNet-Forum.

Ich habe versucht, die Variable dauerhaft PROMPTin etwas anderes als $P$G(was die Standardeinstellung ist) „using“ zu ändern SETXund habe festgestellt, dass dadurch eine neue PROMPTUmgebungsvariable in derBenutzervariablen für <Benutzername> in der GUI für Umgebungsvariablen.

Beim Löschen dieser Variable wurde meine Eingabeaufforderung auf zurückgesetzt $P$G. Dasselbe Verhalten ist mir bei COMPUTERNAMEUmgebungsvariablen aufgefallen. Dasselbe gilt für:

CommonProgramFiles
CommonProgramW6432
PROCESSOR_ARCHITECTURE
ProgramFiles
ProgramW6432

wie in diesem erklärtMSDN-Artikel zu WOW64-Implementierungsdetails.

Antwort2

EntsprechendSS64.com(Abschnitt Autoexec.bat) können diese VariablenStartzeitVariablen, die „für 32-Bit-GUI-Programme nicht verfügbar“ sind. Seit Windows XP sollten Boot-Time-Umgebungsvariablen in der Registrierung wie folgt festgelegt werden:
HKEY_CURRENT_USER\Environment (USER-Umgebungsvariablen)oder:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment(SYSTEM-Umgebungsvariablen)
wie gezeigt inMicrosoft-KB

verwandte Informationen