在我们的 Windows Server 2003 上执行以下 VBScript
Set p_shell = CreateObject("WScript.Shell")
p_shell.RegRead("HKEY_USERS\S-1-5-19\")
产生以下错误
C:\Documents and Settings\Administrator\Desktop>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
C:\Documents and Settings\Administrator\Desktop\test.vbs(2, 1) WshShell.RegRead:
Unable to open registry key "HKEY_USERS\S-1-5-19\" for reading.
尽管用户(管理员)肯定拥有必要的权限。直接从命令行读取密钥有效:
C:\Documents and Settings\Administrator\Desktop>reg query HKEY_USERS\S-1-5-19\ /ve
HKEY_USERS\S-1-5-19
(Default) REG_SZ (value not set)
并且权限(如 regedit 所示)是默认的:完全控制(本地服务、系统、管理员)、读取(受限)。
为什么 VBScript 无法读取密钥的默认值?在 Vista 机器上执行相同的脚本(提升)工作正常。
(我知道这个脚本没有任何用处——这是一个演示问题的最小示例。)
除非我在读取命令中放入特定的注册表项,否则我会收到该错误