[python-win32] Vista, _winreg and "Access denied"
le dahut
le.dahut at laposte.net
Mon Jun 2 17:46:31 CEST 2008
Hello,
I've passed some time reading the MS coding guide for Vista
http://msdn.microsoft.com/en-us/library/bb756973.aspx
It explains that an app requiring administrator rights (modify HKLM,
write in C:\Windows\, etc.) will always return "Access denied" or ask
the user for UAC if it's launched with the appropriate manifest or with
"runas".
You can personalize the UAC prompt by a short description of your
program and an icon.
In short, if your user app does something like that, rewrite it using a
service.
Mark Hammond a écrit :
>> With Vista (XP works fine), when using SetValueEx in a script ran by an
>> administrator I get "Access Denied". I know that's it's due to UAC so
>> does someone know how to do a 'sudo' when using something else than
>> CreateProcess ?
>
> The short version of my understanding of Vista and UAC: Firstly, an
> existing process can not be elevated - once you are running, you are out of
> luck - your option is, basically, re-execute yourself requesting elevation
> and have the new process retry the operation (the exception is when you are
> using a COM object - in which case you can ask for an "elevated" COM object
> - but that is rare, so I'm treating it as the exception :) If you want to
> reexecute yourself, IIUC you are limited to calling ShellExecute(Ex), with
> the "verb" set to "runas" - which can be a PITA, but I'm not aware of other
> options. My current best guess for when you might *need* to do this if is
> win32com.shell.IsUserAnAdmin() returns true (which needs pywin32-211, which
> I promise is in the process of being tested right now :)
>
> As Tim said though, please read MSDN and all other references you can find,
> and please correct me if I'm wrong/mistaken/confused/etc for everyone elses
> benefit...
>
> Cheers,
>
> Mark
>
>
>
More information about the python-win32
mailing list