Не удается прочитать раздел реестра при использовании SRVANY

Я работаю над сценарием, который должен читать и записывать определенное значение в куст реестра HKLM. Хотя он отлично работает при запуске в качестве сценария, доступ к реестру запрещен, когда я запускаю тот же код в качестве службы с помощью утилиты SRVANY. Служба, созданная с использованием SRVANY, работает в контексте локальной системы, который, как я полагаю, должен иметь полный доступ к кусту реестра HKLM. При запуске кода как скрипта он запускается под учетной записью администратора.

REG_KEY_PATH = "HKLM\SOFTWARE\AppName\ServiceConfig"
strFilename = objWshShell.RegRead(REG_KEY_PATH)

Ошибка, которую я получаю для приведенного выше кода,

Недопустимый корень в разделе реестра "HKLM\SOFTWARE\AppName\ServiceConfig"


person ngn    schedule 08.07.2015    source источник
comment
SRVANY очень старый, он будет запускать 32-битную версию интерпретатора скриптов. Что заставляет ваш скрипт читать HKLM\SOFTWARE\Wow6432Node\AppName\ServiceConfig. Кабум. Угадай без публикации командной строки: вместо этого запустите c:\windows\sysnative\cscript.exe.   -  person Hans Passant    schedule 08.07.2015
comment
Спасибо за толчок в правильном направлении! Я читал о перенаправлении реестра, но не знал, что даже cscript имеет 64-битную версию. Я был почти уверен, что это заставит его работать, но я получаю одну и ту же ошибку как из C:\Windows\SysWOW64\cscript.exe, так и из C:\Windows\System32\cscript.exe.   -  person ngn    schedule 08.07.2015
comment
Можете ли вы прочитать какие-либо ключи HKLM? Попробуйте что-то вроде HKLM\SYSTEM\RNG\Seed, которое не должно зависеть от 32/64-бит.   -  person Bond    schedule 08.07.2015
comment
@HansPassant Это работает! Я просто изменил его на c:\windows\sysnative\cscript.exe. Не знал, что sysnative на самом деле не настоящая папка. Большое вам спасибо за вашу помощь! РЕДАКТИРОВАТЬ: Не знаю, как я могу пометить ваш комментарий как ответ :(   -  person ngn    schedule 08.07.2015


Ответы (1)


Хитрость заключалась в том, чтобы использовать «c:\windows\sysnative\cscript.exe» для запуска cscript через srvany. Полная благодарность Хансу Пассану за ответ.

person ngn    schedule 10.07.2015