ElVariable de entorno %SystemRoot%contiene la ruta al directorio de Windows. (p.ej c:\windows
)
SystemRoot
no 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:\Windows
en 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 seaC:\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.exe
proceso, por lo que no se anula en ninguna parte.
P:
¿La base para el valor de SystemRoot
lectura 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