在 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 计算机上执行相同的脚本(提升权限)可以正常工作。
(我知道这个脚本没有任何用处——它只是一个用来演示问题的最小例子。)
答案1
除非我在读取命令中输入特定的注册表项,否则会出现该错误
Set p_shell = CreateObject("WScript.Shell")
p_shell.RegRead("HKEY_USERS\S-1-5-19\Console\HistoryBufferSize")