¿Cómo configura Windows la variable %SystemRoot%?

¿Cómo configura Windows la variable %SystemRoot%?

ElVariable de entorno %SystemRoot%contiene la ruta al directorio de Windows. (p.ej c:\windows)

SystemRootno está configurado en Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment, esautomágicamentecolocar.

Ahora, normalmente en Windows 10, este directorio tiene la carcasa C:\Windowsen el disco NTFS.

Después de que fallara una prueba de script (*), notamos:

  • Con la misma versión del sistema operativo Windows 10 (LTSC 1809 17763.3887)
  • Algunas casillas usan %SystemRoot% == C:\WINDOWS(todas en mayúsculas, a pesar de que el directorio en el disco sea C:\Windows)
  • Se utilizan algunas cajas %SystemRoot% == C:\Windows(caso de directorio en el disco)
  • Realizamos una verificación cruzada con ProcessExplorer: la diferencia de mayúsculas y minúsculas ya está presente en el bloque de entorno del wininit.exeproceso, por lo que no se anula en ninguna parte.

P:

¿La base para el valor de SystemRootlectura es de alguna clave de registro específica?

¿Qué podría explicar esta diferencia?


(*): Para ser claros, la prueba no se realizó de todos modos; no debes confiar en las mayúsculas y minúsculas de la ruta en Windows.

Respuesta1

Está configurado en el proceso de arranque. No está configurado en el registro, porque el proceso de inicio del sistema operativo necesita saber dónde encontrar los archivos de registro (y otros archivos del sistema operativo) antes de poder leerlos desde el registro.

https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/boot-options-in-windows

Las opciones de arranque de Windows se almacenan en el almacén de datos de configuración de arranque (BCD) en las computadoras basadas en BIOS y EFI.

PS C:\> bcdedit.exe /enum | select-string "device|root"

device                  partition=\Device\HarddiskVolume1
device                  partition=C:
osdevice                partition=C:
systemroot              \WINDOWS

PS C:\> $env:systemroot
C:\WINDOWS

En sistemas operativos Windows antiguos, probablemente esté en boot.ini

información relacionada