Server 2008 Kan nie gebruiker regte
-
27-09-2019 - |
Vra
Ek het probeer om 'n paar Win32 dinge doen in C # 3,5 tot verhoogde User Rights vir 'n konsole app kry. Ek ontwikkel op Visual Studio 2008 SP1 / DDR en dinge werk goed wanneer hardloop onder die debugger. Dinge ook werk goed wanneer ek hardloop die konsole app stand-alone. Dinge loop ook fyn toe ek alles in 'n MSI te verpak en installeer dit op 'n bediener 2003 en hardloop die konsole inligting.
As ek dieselfde MSI neem en installeer dit op 'n 2008-bediener met UAC aangeskakel, dan die konsole app hardloop, kry ek boodskappe soos hierdie:
Unable to set right for the account "DOMAIN\QAUSER": SeCreateGlobalPrivilege
System.UnauthorizedAccessException Attempted to perform an unauthorized operation.
Ek kan nie verwag dat my ontplooiing / bediener bestuurders om iets te doen met my app behalwe installeer dit, en hulle is nie van plan af UAC te draai. Daar moet 'n paar programmatiese manier wees om behoorlik te stel gebruikersregte wat ek kan byvoeg by die konsole app - iemand wat weet hoe
Dankie.
Oplossing
Waarskynlik jy gebruik " Global \" voorvoegsel 'n> om die naam voorwerp in jou aansoek en die aansoek sal begin in 'n buite-werksblad sessie Host (RD sessie Host) bediener sessie. In die geval van jou program moet in staat stel SE_CREATE_GLOBAL_NAME (SeCreateGlobalPrivilege
) voorreg. Sien C # - Hoe om SeDebugPrivilege (maar gebruik SE_CREATE_GLOBAL_NAME
in plaas van in staat stel SE_DEBUG_NAME
) of Manipuleer Voorregte in beheer kode betroubaar veilig en doeltreffend as 'n voorbeeld.
Ander wenke
Ek neem aan dat UAC aangeskakel op die masjien 2008 en ek kan nog nie kommentaar lewer op jou vraag te vind.
As dit so is, verseker dat in jou app.manifest lêer in VS (onder eiendomme), verandering
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
na
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Selfs al is die kode wel soos 'n administrateur, wat jy hoef te kry deur die UAC waarskuwing.