I Found a first solution, though not very satisfying:
News123 wrote:
Hi,
I have a small python script, which has been started as normal non
privileged user.
At a later point in time it would like to start another python script
with elevated privileges.
How can I write my code such, that I will get the privilege elevation
prompt and I can start a sub process / python function with elevated
privileges.
thanks for any hints.
Under Linux Ubuntu I would use sudo/gksu
Under Windows 7 I'm a little lost.
A Python only solution is of course prefered, but any .bat .c .C# .cmd
wrapper would be fine.
I could call following command:
PowerShell -Command (New-Object -com
'Shell.Application').ShellExecute('Cmd.exe', '/c
c:\abs_path_to_my_app\pyscript.pyw', '
', 'runas')
So I might do something like:
# ########### script starts
import subprocess
cmd_wrap = "PowerShell -Command (New-Object -com "\
"'Shell.Application').ShellExecute('Cmd.exe', "\
"'/c %s', '', 'runas')"
args = r"c:\abspathtommyapp\myapp.pyw"
cmd = cmd_wrap % args
# create KW args to hide console
kwargs = { }
su = subprocess.STARTUPINFO()
su.dwFlags |= subprocess.STARTF_USESHOWWINDOW
su.wShowWindow = subprocess.SW_HIDE
kwargs['startupinfo'] = su
p = subprocess.Popen( cmd.split() , **kwargs )
# script ends here
However my issue is, that I have one annoying console window popping up
when PowerShell starts cmd.exe
Is there anything better?