Простая (казалось бы...) задача : Нужно определить наличие ключей в реестре.
ОС
Windows 10 (20h2) x64, ключи :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\UI\Visibility
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Spynet
Не тут то было... Права доступа похоже не при чём (да и вроде как не нужны для этого...).
Пример, который нормально работает (проверял в W7) с "крутым" владельцем другого ключа ( с TrustedInstaller) :
Код:

!addplugindir .
!include "LogicLib.nsh"
!include "Registry.nsh"
OutFile "IfKeyExists-test.exe"
RequestExecutionLevel admin
Var NameKey
Section
StrCpy $NameKey "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\AGP"
ClearErrors
${registry::KeyExists} "$NameKey" $R0
${If} $R0 = -1
MessageBox MB_OK "NO Key"
${ElseIf} $R0 = 0
MessageBox MB_OK "OK!"
${EndIf}
${registry::unload}
SectionEnd
Этот же пример (и с EnumRegKey тоже)
не работает в W10 с вышеназванными ключами...
В чём дело ? Кто "охраняет" конкретно эти ключи ? У кого какие соображения ?
ps к слову сказать, эти ключи не находятся при получении ACL, и при использовании команд PowerShell, и при работе с subinacl.exe...