我从批处理脚本中设置了一个环境变量:
reg add "HKEY_CURRENT_USER\Environment" /v TOOL_CHAIN_PATH /t REG_SZ /d C:\Users\MClarkson\Documents\svn\tool-chain /f
批处理脚本使用以下代码段以提升权限模式运行:
rem Make sure we are running in Administrator mode
reg add HKLM\Software\UDP\WindowsInstall\aad3a310a315f101030965e3da3e15b6 /v Elevated /t REG_DWORD /d 1 /f > nul 2>&1
if %ERRORLEVEL%==1 (
echo You must run %~nx0 in elevated mode. Right-Click and select 'Run as Administrator'
echo.
pause
exit /b 740
)
reg delete HKLM\Software\UDP\WindowsInstall\aad3a310a315f101030965e3da3e15b6 /va /f > nul 2>&1
在脚本运行后打开cmd.exe
时,我看不到环境变量:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\MClarkson>echo %TOOL_CHAIN_PATH%
%TOOL_CHAIN_PATH%
C:\Users\MClarkson>
但如果我以管理员身份打开cmd.exe
:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>echo %TOOL_CHAIN_PATH%
C:\Users\MClarkson\Documents\svn\tool-chain
C:\Windows\system32>
我可以看到环境变量!!
我注意到我可以像普通用户一样运行原始reg add
命令 - 似乎没有设置HKEY_CURRENT_USER
的限制,然后我可以立即看到环境变量。
是否有更熟悉Windows的人知道普通用户无法在HKEY_CURRENT_USER
中看到管理员设置的注册表项的原因?
有没有办法在无提升级别的提升批处理脚本中执行命令?
答案 0 :(得分:1)
重新启动允许用户查看环境变量。这很烦人,因为这是一个如此简单的改变。