Hallo,
ich schreibe soeben ein Programm für unsere Administratoren in meiner Firma.
Rechte auf einen Registry-Key sollen gesetzt werden.
Mein Programm muß Werte verändern bzw. schreiben auf die der Benutzer mit Benutzer-Rechte noch kein Recht haben.
Das Programm wird mit einem Benutzer-Konto mit Benutzer-Rechte ausgeführt.
Ich denke das ein Benutzer mit Administratorrechte einmal die Registry-Rechte verändern muß, das ist auch in Ordnung.
Geschrieben werden soll in HKLM und in HKCR.
Einen Registry-Key mit den gewünschten Rechten zu Erstellen habe ich schon gefunden.
Ich möcht jedoch nur die Rechte ändern!
schöne Grüße
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: 39: 40:
| using System; using System.Security.AccessControl; using System.Windows.Forms; using Microsoft.Win32; namespace WindowsFormsApplication4 { class c_RegistryKeyRechteÄndern_mit_Delete_ { public void RegistryKeyErstellenAndRechteVergeben() { String user = "Jeder"; String RegPath = "SOFTWARE\\_foo"; RegistrySecurity rs = new RegistrySecurity(); rs.AddAccessRule(new RegistryAccessRule(user, RegistryRights.FullControl | RegistryRights.Delete, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow)); RegistryKey rk = null; try { rk = Registry.LocalMachine.CreateSubKey(RegPath, RegistryKeyPermissionCheck.Default, rs); rk.SetValue("ValueName", "StringValue"); } catch (Exception ex) { MessageBox.Show(ex.Message); } if (rk != null) rk.Close(); } } |