[DUG] Detecting admin privilege

Paul McKenzie paul at smss.org.nz
Mon May 8 15:35:06 NZST 2006


You are right about being dated ... That original e-mail was from 28/03/2003 :-)
But does that matter much if you are doing Win32 development and need compatibility with W2K.

Regards
Paul McKenzie
Wellington
New Zealand


Jeremy North wrote:
> That information is a bit outdated now.
> 
> Use the OpenKeyReadOnly method to avoid the issue when the user
> doesn't have admin priviledges.
> 
> For the OP you need to use OpenProcessToken and GetTokenInformation
> and compare the Sid with the administrator Sid which you get from
> calling AllocateAndInitializeSid.
> 
> OpenProcessToken
> ms-help://borland.bds4/security/security/openprocesstoken.htm
> 
> Check out the See Also section as you should really use
> OpenThreadToken and if that fails use OpenProcessToken.
> 
> AllocateAndInitializeSid
> ms-help://borland.bds4/security/security/allocateandinitializesid.htm
> 
> If you do a search on these keywords you might find a function already
> prepared for you.
> 
> HTH,
> Jeremy
> 
> On 5/8/06, Paul McKenzie <paul at smss.org.nz> wrote:
> 
>> This may help...
>> This is a link I save ages ago (in case I need to do something similar)
>>
>> http://www.delphi32.com/info_facts/faq/faq_349.asp
>> When using the TRegistry component under NT, a user with less than 
>> "administrator" rights is unable
>> to access information stored in the HKEY_LOCAL_MACHINE. How can I work 
>> around this?
>>
>>
>> The problem is caused by the fact that TRegistry (and the derived 
>> TRegInifile) always opens a key
>> with KEY_ALL_ACCESS, even if only KEY_READ would be needed. You can 
>> avoid this by going back to
>> using the API registry functions (RegOpenKey et al.), or create a new 
>> class from the TRegistry
>> component, and change the new TRegistry class to add an access property.
>>
>>
>>
>> Regards
>> Paul McKenzie
>> Wellington
>> New Zealand
>>
>>
>> Phil Scadden wrote:
>> > I want to detect where current user of program has write access to
>> > the hkey_local_machine hive. (so I can choose to display the a settings
>> > option on a menu). Short of attempt a write and then read, is there 
>> another
>> > way to detect this?
>> >
>> > ----------------------------------------------------------
>> > Phil Scadden, Institute of Geological and Nuclear Sciences
>> > 764 Cumberland St, Private Bag 1930, Dunedin, New Zealand
>> > Ph +64 3 4799663, fax +64 3 477 5232
>> >
>> > _______________________________________________
>> > Delphi mailing list
>> > Delphi at ns3.123.co.nz
>> > http://ns3.123.co.nz/mailman/listinfo/delphi
>> >
>> >
>>
>> _______________________________________________
>> Delphi mailing list
>> Delphi at ns3.123.co.nz
>> http://ns3.123.co.nz/mailman/listinfo/delphi
>>
> 
> _______________________________________________
> Delphi mailing list
> Delphi at ns3.123.co.nz
> http://ns3.123.co.nz/mailman/listinfo/delphi
> 
> 



More information about the Delphi mailing list