Вы, вероятно, должны удалить косую черту. Если вы используете это, он будет искать значение по умолчанию для ключа, который вы указали, и если он не найдет его, выдаст эту ошибку.
И наоборот, если вы попытаетесь получить доступ к ключу, как если бы он был значением, без использования косой черты, вы получите ту же ошибку.
Некоторые примеры попыток доступа к ключу:
Сбой:
var keyPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
var shell = new ActiveXObject("WScript.Shell");
var regValue = shell.RegRead(keyPath);
WScript.Echo("Value: " + regValue);
Успешно (но дает пустой результат, так как значение по умолчанию пусто):
var keyPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\";
var shell = new ActiveXObject("WScript.Shell");
var regValue = shell.RegRead(keyPath);
WScript.Echo("Value: " + regValue);
Некоторые примеры попыток получить доступ к значению:
Успешно (вывод Value: C:\Program Files
):
var keyPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDir";
var shell = new ActiveXObject("WScript.Shell");
var regValue = shell.RegRead(keyPath);
WScript.Echo("Value: " + regValue);
Сбой (не следует использовать косую черту при доступе к значению):
var keyPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDir\\";
var shell = new ActiveXObject("WScript.Shell");
var regValue = shell.RegRead(keyPath);
WScript.Echo("Value: " + regValue);