En exécutant le VBScript suivant sur notre Windows Server 2003
Set p_shell = CreateObject("WScript.Shell")
p_shell.RegRead("HKEY_USERS\S-1-5-19\")
donne l'erreur suivante
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.
bien que l'utilisateur (Administrateur) dispose certainement des autorisations nécessaires. La lecture de la clé directement à partir de la ligne de commande fonctionne :
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)
et les permissions (comme indiqué par regedit) sont par défaut : Contrôle total (LOCAL SERVICE, SYSTEM, Administrateurs), Lecture (RESTRICTED).
Pourquoi le VBScript ne parvient-il pas à lire la valeur par défaut de la clé ? L'exécution du même script (en élévation) sur une machine Vista fonctionne bien.
(Je sais que ce script ne sert à rien -- c'est un exemple minimal pour démontrer le problème).