Windows-Server-2003

Windows Server 2003 上的系統資料庫讀取權限(腳本)

  • October 6, 2011

在我們的 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 機器上執行相同的腳本(提升)工作正常。

(我知道這個腳本沒有任何用處——這是一個展示問題的最小範例。)

除非我在讀取命令中放入特定的系統資料庫項,否則我會收到該錯誤

Set p_shell = CreateObject("WScript.Shell")
p_shell.RegRead("HKEY_USERS\S-1-5-19\Console\HistoryBufferSize")

引用自:https://serverfault.com/questions/76642