Hallo,
Ik ben bezig met het maken van een applicatie die waarden in het register moet aanpassen. Het probleem is echter dat deze ook toegang moet hebben tot HKEY_LOCAL_MACHINE. Het programma wordt uitgevoerd op een gebruikersaccount met beperkte rechten.
Op http://technet.microsoft....ry/cc728310(v=ws.10).aspx heb ik wel kunnen vinden hoe ik deze gebruiker rechten kan geven voor deze sleutels alleen het is de bedoeling dat dit niet handmatig maar in code gedaan wordt. (Tijdens de installatie, hiervoor heb ik zelf een installer gemaakt). Als ik met een code de rechten kan aanpassen van de gelimiteerde gebruiker dan is het dus mogelijk om deze code uit te voeren op een account met administratorrechten.
Op http://vlaurie.com/computers2/Articles/xprunas.htm heb ik een omzeiling gevonden voor het probleem (de "Runas" sectie, onderaan de pagina) alleen heeft dit niet mijn voorkeur gezien mijn applicatie vaker opgestart moet worden en dan zou het wachtwoord van de administrator blijvend opgeslagen staan in een .vbs bestand (waardoor met notepad kinderlijk eenvoudig te achterhalen is wat het wachtwoord van de administrator is).
Op http://msdn.microsoft.com...s.registrypermission.aspx heb ik een artikel gevonden alleen heb ik geen idee hoe ik dit moet implementeren in mijn code. Als het mogelijk is om de rechten hiermee aan te passen wat zou ik dan als code moeten gebruiken?
Op http://msdn.microsoft.com/en-us/library/88b6xhxd(vs.71).aspx staat een hele voorbeeldcode en als ik het goed heb zou ik dat op deze manier moeten gebruiken maar ik vraag het liever toch even na.
Geeft bovenstaande code toegang tot:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor\0
?
Overige ideeen hoe ik het register kan aanpassen via de limited useraccount of code waarmee ik de gebruiker rechten kan geven zijn welkom!
Kort:
Ik ben bezig met het maken van een applicatie die waarden in het register moet aanpassen. Het probleem is echter dat deze ook toegang moet hebben tot HKEY_LOCAL_MACHINE. Het programma wordt uitgevoerd op een gebruikersaccount met beperkte rechten.
Op http://technet.microsoft....ry/cc728310(v=ws.10).aspx heb ik wel kunnen vinden hoe ik deze gebruiker rechten kan geven voor deze sleutels alleen het is de bedoeling dat dit niet handmatig maar in code gedaan wordt. (Tijdens de installatie, hiervoor heb ik zelf een installer gemaakt). Als ik met een code de rechten kan aanpassen van de gelimiteerde gebruiker dan is het dus mogelijk om deze code uit te voeren op een account met administratorrechten.
Op http://vlaurie.com/computers2/Articles/xprunas.htm heb ik een omzeiling gevonden voor het probleem (de "Runas" sectie, onderaan de pagina) alleen heeft dit niet mijn voorkeur gezien mijn applicatie vaker opgestart moet worden en dan zou het wachtwoord van de administrator blijvend opgeslagen staan in een .vbs bestand (waardoor met notepad kinderlijk eenvoudig te achterhalen is wat het wachtwoord van de administrator is).
Op http://msdn.microsoft.com...s.registrypermission.aspx heb ik een artikel gevonden alleen heb ik geen idee hoe ik dit moet implementeren in mijn code. Als het mogelijk is om de rechten hiermee aan te passen wat zou ik dan als code moeten gebruiken?
Op http://msdn.microsoft.com/en-us/library/88b6xhxd(vs.71).aspx staat een hele voorbeeldcode en als ik het goed heb zou ik dat op deze manier moeten gebruiken maar ik vraag het liever toch even na.
code:
1
2
3
4
5
| Imports System Imports System.Security Imports System.Security.Permissions Imports System.Collections Imports Microsoft.VisualBasic |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| Friend Class RegGenerator Private myReg As String() = {"HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION", "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor\0"} Private regIndex As Integer = 0 Public Sub New() ResetIndex() End Sub 'New Public Sub ResetIndex() regIndex = 0 End Sub 'ResetIndex ' CreateReg creates a RegistryPermission. Public Function CreateReg(ByRef regPerm As RegistryPermission, ByRef reg As String, ByVal rpa As RegistryPermissionAccess) As Boolean If regIndex = myReg.Length Then regPerm = New RegistryPermission(PermissionState.None) reg = "" regIndex &= 1 Return True End If If regIndex > myReg.Length Then regPerm = Nothing reg = "" Return False End If reg = myReg(regIndex) regIndex = regIndex + 1 Try regPerm = New RegistryPermission(rpa, reg) Return True Catch e As Exception Console.WriteLine(("Cannot create RegistryPermission : " & reg & " " & e.ToString())) regPerm = New RegistryPermission(PermissionState.None) reg = "" Return True End Try End Function 'CreateReg ' End of RegGenerator. End Class |
Geeft bovenstaande code toegang tot:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor\0
?
Overige ideeen hoe ik het register kan aanpassen via de limited useraccount of code waarmee ik de gebruiker rechten kan geven zijn welkom!
Kort:
- Het programma wat meerdere malen gebruikt gaat worden staat op de gelimiteerde account
- Tijdens de installatie kan ik code uitvoeren op de administrator account
- Ik zoek een code waarmee het programma op de gelimiteerde account toegang heeft tot HKEY_LOCAL_MACHINE sleutels.