vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 05.01.10 00:31

Guten Morgen

Ich möchte mit meinem Tool den Besitzer eines Registry-Schlüssels ändern. Wie kann ich das machen? WMI oder so? Es können auch ruhig Windows abfragen kommen ob das erlaubt werden soll.

Es ist jetzt momentan so das ich weder schreib noch lese Rechte auf diesen Schlüssel habe. Erst wenn ich über die Registry den Besitzer ändere. Und genau dieses möchte ich nun aus meinen Tool heraus tun.


Hoffe ihr könnt mir helfen!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 05.01.10 11:21

Stichwort ist ACL (Access Control List), wofür es einen eintsprechenden Namespace gibt (System.Security.AccessControl). Such im Forum entsprechend.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 06.01.10 00:17

hallo
ich habe versucht mit MyRegKey.SetAccessControl die rechte zu ändern. aber ich komme hier überhaupt nicht weiter.

kann mir das wer vielleicht genauer erklären.


Grüße Toolmaster
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 06.01.10 22:05

Kann mir wirklich keiner weiterhelfen? Das System beansprucht diesen Schlüssel als Besitzer, aber es muss der Administrator Besitzer werden.

Wie funktioniert so was?

Bitte echt um eure Hilfe.

Grüße Toolmaster
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 07.01.10 10:12

Ich werde heute Abend oder morgen dazu kommen. Vorher lässt es meine Zeit nicht zu.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 08.01.10 10:39

Das ist ganz nett Danke.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 08.01.10 16:21

Hier das Beispiel:

Imports Microsoft.Win32
Imports System.Security.Principal
Imports System.Security.AccessControl
 
Dim keyName As String = "Software\Test"
Dim domainName As String = ""
Dim userName As String = "Test"
 
Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey(keyName, True)
Dim regSecurity As RegistrySecurity = key.GetAccessControl()
 
Dim ident As New NTAccount(domainName, userName)
regSecurity.SetOwner(ident)
 
key.SetAccessControl(regSecurity)

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 08.01.10 18:42

Danke aber das Problem ist das ich damit nur rechte ändern kann die Windows nicht in Beschlag genommen hat.

Unter Windows 7 in HKEY_LOCAL_MACHINE kann ich damit keinen Schlüssel in Besitz nehmen der gesperrt ist.

Gibt es dafür eine Lösung?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 08.01.10 18:52

Der Code funktioniert da auch - nur braucht der Code administrative Berechtigungen. Die brauchst du ja sowieso, um in HKLM schreiben zu können.

Wofür brauchst du die Besitzerrechte?

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 08.01.10 19:17

Auch wenn ich jetzt Händisch als Administrator die Registry bearbeite muss ich diesen Schlüssel in Besitz nehmen um ihn ändern zu können.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender

Das ist das Problem das ich habe.


Hier

Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey(keyName, True)

bekomme ich folgende Fehlermeldung

Der angeforderte Registrierungszugriff ist unzulässig.

Grüße Toolmaster

Beitrag wurde zuletzt am 08.01.10 um 19:21:40 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 08.01.10 20:49

Warum willst du beim Windows Defender rumspielen? Dieser lässt sich entweder direkt oder über Gruppenrichtlinien besser konfigurieren.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 08.01.10 21:29

ich möchte mit meinem Tool überprüfen ob er eingeschaltet ist oder nicht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 08.01.10 22:54

Wenn du das aber nur prüfen willst, musst ja nicht gleich den ganzen Besitz über den Schlüssel an dich reißen

Unter [1] findest du Excel-Dateien mit einen Überblick, welche Gruppenrichtlinien möglich sind (diese setzen im Hintergrund auch nur Registryschlüssel, welche dort mit genannt sind).

[1] http://www.microsoft.com/downloads/details.aspx?FamilyID=18c90c80-8b0a-4906-a4f5-ff24cc2030fb&displaylang=en

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 08.01.10 23:09

Danke aber dieser weist genau auf Den Eintrag hin den ich auslesen möchte. Aber für diesen Eintrag brauche ich auch den Besitz damit es funktioniert.

Grüße Toolmaster
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 09.01.10 18:29

Hat vielleicht noch wer eine Idee wie das lösen könnte?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorDaveS (Moderator)
Datum: 09.01.10 21:54

Was denn? Die Schlüssel kannst du ohne weiters auslesen. Und vor allem warum? Überlass wichtige Systemeinstellungen den Programmieren, die die Erfahrung haben damit richtig umzugehen (meine Empfehlung).

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 09.01.10 22:14

Kann ich eben nicht auslesen da der zugriff verweigert wird. Ein jeder hat mal klein angefangen
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 10.01.10 01:36

Zum Lesen und Prüfen, ob der Schlüssek existieren, sind keine besonderen Berechtigungen nötig.
Da muss man aber als zweiten Parameter von OpenSubKey False übergeben (der regelt nämlich, ob man schreiben möcte oder nicht).

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 10.01.10 17:00

OK. Nun interessiert mich mich nur noch wie das wirklich funktioniert das ich zb. dem Administrator Vollzugriff geben kann.

Das muss doch möglich sein vor allem wenn ich selbst als Administrator angemeldet bin.

Grüße Toolmaster
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 10.01.10 20:09

Schau dir folgenden Workshop an: vbarchiv.net/workshop/workshop_115-uac-konforme-anwendungen-entwickeln.html

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 10.01.10 20:34

Die uac Funktion habe ich bereits eingebaut und sie funktioniert auch. Das löst aber dieses Problem nicht. Da selbst der Administrator von Haus aus nur lese rechte besitzt. Diese können aber mit 2 Klicks in der Registry auf Vollzugriff geändert werden. Allerdings gelingt es mir nicht dieses per Code zu tun.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 10.01.10 21:06

Sub GiveFullAccess(ByVal key As RegistryKey, ByVal domain As String, ByVal _
  userName As String)
  Dim regSecurity As RegistrySecurity = key.GetAccessControl()
 
  Dim account As New NTAccount(domain, userName)
 
  Dim fullAccessRule As New RegistryAccessRule(account, _
    RegistryRights.FullControl, AccessControlType.Allow)
  regSecurity.AddAccessRule(fullAccessRule)
 
  key.SetAccessControl(regSecurity)
End Sub

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: Toolmaster
Datum: 10.01.10 23:25

Danke! damit bin ich einen Schritt weiter. Nur kann ich ja bei
ByVal key As RegistryKey
nur HKEY_LOCAL_MACHINE und keinen erweiterten Schlüssel eingeben oder?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 11.01.10 07:34

Vorher halt den Registry mittels OpenSubKey() holen und diesen übergeben.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Registry schlüssel besitzer ändern 
Autor: noi
Datum: 15.04.12 06:47

Hallo Toolmaster,

wie hast du diese Aufgabe lösen können? Hast du es geschafft auf irgendwelcher Weise den Besitz eines bestimmten Registry-Schlüssels z. B. für "Administratoren" und sonstige Benutzer zuzuweisen?
Über den Code würde ich mich sehr freuen.
Ich möchte es gerne mit Windows 7 Mitteln versuchen - also ohne SubInACL und sonstige externe Lösungen, falls es geht .

Mit regini "Script.ini" lassen sich zwar die Rechte für einen REG-Schlüssel setzen, allerdings nur wenn der Besitzer nicht gerade TrustedInstaller ist. In so einem Falle können mit regini keine Berechtigungen für Administrator (bzw. Administratoren), ohne den Besitz vorher zu übernehmen, neu gesetzt werden.
In der Datei "Script.ini" ist dann z. B. folgendes eingetragen:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\Display [1 7 17]

Hallo Ralf Ehlert,
wie würde der gesamte Code dann aussehen?

Vielen Dank euch!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel