2013-03-13 2 views
4

Я пытаюсь использовать AccessControl plugin в NSIS для установки разрешений в разделе реестра. Это не работает. После запуска установщика группа «Все пользователи» не имеет полного контроля.Что такое эффективный способ предоставления разрешений в раздел реестра с помощью установщика NSIS?

Я создал образец ниже. Здесь что-то не так? Есть ли еще один механизм для достижения того же? Я также попытался использовать numeric form группы Everyone S-1-1-0. Я еще не пробовал использовать «Все».

; Create the key for local machine settings (could be a 32 bit or 64 bit location) 
    SetRegView 32 
    WriteRegStr HKLM "SOFTWARE\MyApp" "x" "y" 
    SetRegView 64 
    WriteRegStr HKLM "SOFTWARE\MyApp" "x" "y" 

    ; Give all authenticated users (BUILTIN\Users) full access on the registry key HKEY_LOCAL_MACHINE\Software\MyApp 
    SetRegView 32 
    AccessControl::GrantOnRegKey HKLM "SOFTWARE\MyApp" "BUILTIN\USERS" "FullAccess" 
    SetRegView 64 
    AccessControl::GrantOnRegKey HKLM "SOFTWARE\MyApp" "BUILTIN\USERS" "FullAccess" 

Во-первых, я не беспокоился о двух представлениях реестра. Но после экспериментов, пытаясь исключить проблемы с WOW6432Node, я удвоил команды. Надеюсь, это не обязательно.

ответ

4

При использовании SID с плагином синтаксиса является (S-1-....):

WriteRegStr HKCU "Software\test" hello world 
AccessControl::GrantOnRegKey HKCU "Software\test" "(S-1-1-0)" "FullAccess" ; Everyone 

Вы можете найти list of SIDs here.

Вы можете использовать AccessControl::NameToSid преобразовать имя его SID, но сделать это может иметь проблемы локализации неанглоязычных систем:

AccessControl::NameToSid "BUILTIN\USERS" 
Pop $0 
StrCmp $0 "error" +2 
AccessControl::GrantOnRegKey HKCU "Software\test" "($0)" "FullAccess" 

При смене владельца вы также можете использовать синтаксис Machine\Username.

Псевдонимы, подобные (BU), работают только в версии Unicode, а также зависят от версии Windows, поэтому лучше просто придерживаться SID.

+0

Работает ли '(S-1-1-0)' на Windows XP? Если нет, есть ли альтернатива XP? – nawfal

+0

@nawfal Строки S должны быть более переносимыми, чем псевдонимы, они содержат необработанные данные SID. – Anders

+0

Я не уверен, эта ссылка http://www.avid-insight.co.uk/2014/01/nsis-access-control-problem-with-built-in-users-group/ allude, что я сказал. Я проверю его сам и дам знать. – nawfal

Смежные вопросы