首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows如何设置%SystemRoot%变量?

Windows如何设置%SystemRoot%变量?
EN

Server Fault用户
提问于 2023-03-02 16:08:59
回答 1查看 242关注 0票数 2

%SystemRoot%环境变量包含指向Windows目录的路径。(例如c:\windows)

SystemRoot不是在Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment中配置的,而是自动设置的。

现在,通常在Windows 10上,这个目录在NTFS磁盘上有大写的C:\Windows

在脚本测试(*)崩溃后,我们注意到:

  • 具有相同操作系统版本的Windows 10 (LTSC 1809年17763.3887)
  • 有些框使用%SystemRoot% == C:\WINDOWS (大写,尽管磁盘上的目录是C:\Windows)。
  • 一些盒子使用%SystemRoot% == C:\Windows (磁盘上dir的情况)
  • 我们与ProcessExplorer交叉检查:大小写差异已经存在于wininit.exe进程的环境块中,因此它不会在某个地方被覆盖。

Q:

是否从任何特定注册表项读取SystemRoot值的基?

有什么可以解释这种差异呢?

(*):要明确的是,测试无论如何都被打破了--你不应该依赖Windows上的路径外壳。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2023-03-02 16:36:37

它是在引导过程中设置的。它没有在注册表中设置,因为操作系统引导过程需要知道在哪里找到注册表文件(和其他OS文件),然后才能从注册表中读取它们。

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

Windows引导选项存储在基于BIOS和基于EFI的计算机上的启动配置数据(BCD)存储中。

代码语言:javascript
运行
复制
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

在旧的Windows上,它可能在boot.ini中

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1125145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档