Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2355
Благодарности: 557

Профиль | Отправить PM | Цитировать


Простая (казалось бы...) задача : Нужно определить наличие ключей в реестре.
ОС 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...

Последний раз редактировалось MKN, 04-03-2021 в 15:34.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:22, 04-03-2021 | #2562