So lesen Sie Remote-Registrierungsschlüssel?

8

Ich muss in der Lage sein, die Werte in einem bestimmten Registrierungsschlüssel aus einer Liste von Remote-Computern zu lesen. Ich kann dies lokal mit dem folgenden Code tun

%Vor%

aber ich weiß nicht, wie ich die gleichen Informationen für einen Remote-Computer bekomme. Benutzt ich sogar den richtigen Ansatz oder sollte ich auf WMI oder etwas anderes schauen?

    
etoisarobot 14.10.2009, 14:16
quelle

7 Antworten

12

Sie können dies über WMI erreichen, obwohl ich denke, dass Sie es auch über denselben Mechanismus (d. h. Microsoft.Win32-Namespace-Klassen) erreichen können, den Sie gerade verwenden.

Sie müssen in das:

schauen

OpenRemoteBaseKey-Methode

Der obige Link gibt Beispiele. Es sollte so einfach sein wie etwa:

%Vor%

Beachten Sie jedoch, dass Sicherheitsrisiken beim Öffnen von Remoteregistrierungsschlüsseln auftreten. Daher müssen Sie möglicherweise sicherstellen, dass Sie über die entsprechenden Sicherheitsberechtigungen verfügen. Dafür solltest du in das folgende schauen:

SecurityPermission

und

RegistryPermission

-Klassen im Namespace System.Security.Permissions .

    
CraigTP 14.10.2009, 14:29
quelle
9

Ich habe festgestellt, dass CraigTP die OpenRemoteBaseKey () -Methode verwenden konnte. Allerdings musste ich die Berechtigungen in der Registrierung auf den Zielcomputern ändern.

Hier ist der Code, den ich geschrieben habe, der funktioniert hat, nachdem ich die Berechtigungen geändert habe.

%Vor%

Ich habe auch festgestellt, dass ich dieselben Informationen mit WMI abrufen kann, ohne die Berechtigungen ändern zu müssen. Hier ist der Code mit WMI.

%Vor%

P.S. Ich rufe die GetStringValue () Methode in der Schleife auf, da ich weiß, dass alle Werte Strings sind. Wenn mehrere Datentypen vorhanden sind, müssten Sie den Datentyp über den Ausgabeparameter Typen der EnumValues-Methode lesen.

    
etoisarobot 14.10.2009 20:42
quelle
1

Mit der Win32-API können Sie einen Computernamen über RegConnectRegistry . Ich bin nicht sicher, dass die .NET-Wrapper dies offen legen. Sie können WMI auch wie erwähnt verwenden.

    
On Freund 14.10.2009 14:21
quelle
1

Suchen Sie OpenRemoteBaseKey ().

    
Jerry Coffin 14.10.2009 14:24
quelle
1

Ein Kommentator in meinem Blog hat mich gebeten, meine Lösung beim Stack-Überlauf zu posten, also hier ist es.

Wie authentifizieren und Greifen Sie mit C #

remote auf die Registrierung zu

Es ist im Grunde das gleiche wie die Antwort von CraigTP, aber es enthält eine nette Klasse für die Authentifizierung auf dem entfernten Gerät.

Und der Code ist in Produktion und getestet.

    
Rhyous 21.09.2012 16:35
quelle
1

Dies ist die Lösung, mit der ich am Ende gegangen bin:

%Vor%

Funktioniert wie ein Zauber:]

    
Robert Fey 21.07.2014 09:01
quelle
1

Einfaches Beispiel in c # installierten Programmen über die Windows-Registrierung (remote: OpenRemoteBaseKey)

%Vor%     
Domenico Zinzi 17.07.2017 08:12
quelle

Tags und Links