![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
HKLM под Windows Vista (Build 5308)
Nostradamus © (2006-03-06 03:51:00)Почему-то под Windows Vista Build 5308 не создаются Ключи в рееестре в HKEY_LOCAL_MACHINE\Software
Не подскажете ли в чём проблема. Может быть для этого нужно иметь какие-то особые права?
Использую TRegistry.
fellix (2006-03-07 16:48:00) [21]А как насчет SeBackupPrivilege и SeRestorePrivilege?
Nostradamus (2006-03-07 16:41:00) [22]
> Игорь Шевченко © (06.03.06 22:40) [21]
>
>
> > Я же говорю, что я запускаю программу от имени админа
>
>
> Запусти Process Explorer с http://www.sysinternals.comи
> посмотри, с какими правами у тебя реально выполняется программа.
>
> Если с правами администратора - ищи ошибку в программе.
>
Посмотрел: программа запускается с правами юзера в группе Administrators.
А какая тут может быть ошибка. Ума не приложу. Может быть Вы можете подсказать.
var
Reg : TRegistry;
KeyGood : Boolean;
begin
Reg := TRegistry.Create;
try
//Reg.Access := KEY_READ OR KEY_WRITE; //Не помогает
Reg.RootKey := HKEY_LOCAL_MACHINE;
KeyGood := Reg.OpenKey('Software\Test\ProgName\', True); //Тут уже Access denied
if KeyGood then begin
Reg.WriteBool('allowChange', allowChange);
...
end;
finally
Reg.Free;
end;
Работает под всеми виндами кроме Vista.
n0name (2006-03-07 06:56:00) [23]открывай клюс с параметрами REG_READ_CONTROL + REG_WRITE_CONTROL.
Только я к сожалению не помню предоставляется такая возможность Registry.
Игорь Шевченко (2006-03-06 22:40:00) [24]
> Я же говорю, что я запускаю программу от имени админа
Запусти Process Explorer с http://www.sysinternals.comи посмотри, с какими правами у тебя реально выполняется программа.
Если с правами администратора - ищи ошибку в программе.
Nostradamus (2006-03-06 22:25:00) [25]
> Eraser © (06.03.06 21:58) [18]
>
>
> > Nostradamus (06.03.06 21:54) [17]
>
> если программа запущена от имени администратора или текущий
> поток имеет права администратора, то такая возможность есть
> итак... по крайней мере должна быть.
>
Я же говорю, что я запускаю программу от имени админа и всё равно не пишет в реестр...
Может быть это нужно как-то установить програмно?
antonn (2006-03-06 22:10:00) [26]а если создать файл *reg и его запустить?
т.е. не самому лезть в реестр, а дать виндовозу поработать?
Eraser (2006-03-06 21:58:00) [27]
> Nostradamus (06.03.06 21:54) [17]
если программа запущена от имени администратора или текущий поток имеет права администратора, то такая возможность есть итак... по крайней мере должна быть.
Nostradamus (2006-03-06 21:54:00) [28]
> Eraser © (06.03.06 21:09) [16]
>
>
> > Nostradamus (06.03.06 18:48) [15]
>
>
> > Только, что с этим делать???
>
> да в том то и дело что ничего!
> по умолчанию у админа доступ должен быть.
>
Я имею ввиду как дать возможность программе писать в HKEY_LOCAL_MACHINE???
Eraser (2006-03-06 21:09:00) [29]
> Nostradamus (06.03.06 18:48) [15]
> Только, что с этим делать???
да в том то и дело что ничего!
по умолчанию у админа доступ должен быть.
Nostradamus (2006-03-06 18:48:00) [30]Вот, что я нашёл в MSDN:
...
Securable objects, like files and registry keys, have security descriptors that define the integrity level, or level of privilege required for write access to the object. This integrity level is defined with a new mandatory access control entry (ACE) in the System access control list (SACL). The new mandatory ACE is called a mandatory label. Objects without mandatory labels have an implied default integrity level of Medium.
*
Processes have a process integrity level defined in the security access token. In Protected Mode, Internet Explorer has a low process integrity level. Applications run from the Start menu have a medium integrity level. Applications that require administrator permissions run with high integrity level.
*
Low integrity processes cannont gain write access to objects at a higher integrity levels, even if the user's SID is granted write access in the discretionary access control list (DACL). Integrity level checks are performed before user access permission checks.
All files and registry keys on Windows Vista have a default integrity level of Medium. A Low integrity process, like Internet Explorer in Protected Mode, will receive access denied errors when it tries to modify existing files.
...
High:
Administrative (Process can install files to the Program Files folder and write to sensitive registry areas like HKEY_LOCAL_MACHINE.)
Medium:
User (Process can create and modify files in the user's Documents folder and write to user-specific areas of the registry, such as HKEY_CURRENT_USER.)
Low:
Untrusted (Process can only write to low integrity locations, such as the Temporary Internet Files\Low folder or the HKEY_CURRENT_USER\Software\LowRegistry key)
Только, что с этим делать???
Nostradamus (2006-03-06 18:34:00) [31]>попробуй открыть ветку через RegEdit в вручную поставь ей нужные права.
>И заодно скажи нам, какие они там по умолчанию.
по умолчанию:
HKEY_LOCAL_MACHINE
Everyone: Read
RESTRICTED: Read
SYSTEM: Full Control, Read
Administrators : Full Control, Read
HKLM\Software
CREATOR OWNER: Special Permissions
SYSTEM: Full Control, Read
Administrators : Full Control, Read
Users : Read
Изменение прав вручную - не помогло
(поставил Full Control ВСЕМ в HKLM и HKLM\Software)
Nostradamus (2006-03-06 18:18:00) [32]2 Игорь Шевченко
>> Я и вхожу под админом
>Ты в этом абсолютно уверен ? И программа работает с теми же правами ?
То, что вхожу под админом - уверен. Какие права у программы - точно не знаю. (я всегда думал что те же, что и у самого юзера)
2 Eraser
> возможно недоработака, ведь это бета...
VMWare Tools удалось туда писать - значит НЕ недоработка (точнее недоработка, только моя)
Eraser (2006-03-06 18:14:00) [33]
> Nostradamus (06.03.06 03:51)
возможно недоработака, ведь это бета...
попробуй открыть ветку через RegEdit в вручную поставь ей нужные права.
И заодно скажи нам, какие они там по умолчанию.
Игорь Шевченко (2006-03-06 17:52:00) [34]Nostradamus (06.03.06 14:48) [8]
> Я и вхожу под админом
Ты в этом абсолютно уверен ? И программа работает с теми же правами ?
Nostradamus (2006-03-06 16:10:00) [35]> А что говорит GetLastError ?
Access is denied
Crash Coredump (2006-03-06 15:03:00) [36]А что говорит GetLastError ?
Nostradamus (2006-03-06 14:48:00) [37]Я и вхожу под админом, но всё равно моя прога не может создавать ключи в HKEY_LOCAL_MACHINE :(
Crash Coredump (2006-03-06 14:31:00) [38]
> Только как их получить?
Войти под учетной записью администратора ?
Nostradamus (2006-03-06 13:56:00) [39]Я тоже думаю, что просто прав нет. Только как их получить?
А реестр есть 100% :)
Crash Coredump (2006-03-06 13:52:00) [40]ssk © (06.03.06 13:48) [4]
> Одним из главных нововедений является…отсутствие реестра
> в обычном понимании этого слова
Реестр никуда не делся - см. тему.
То, что прав нету - это проблема политики или неумения ей пользоваться