web-dev-qa-db-ja.com

Windows Server 2003でのレジストリ読み取りアクセス許可(スクリプト)

Windows Server2003で次の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マシンで同じスクリプト(昇格)を実行すると、正常に機能します。

(このスクリプトが役に立たないことはわかっています。これは、問題を示すための最小限の例です。)

2
Heinzi

読み取りコマンドに特定のレジストリキーを入力しない限り、このエラーが発生します

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