bambi2012
Goto Top

Probleme bei auslesen der Registry

Hallo liebes Forum,

ich habe ein Problem bei remote auslesen der Registry.


Dim RemoteKey As RegistryKey

Try
RemoteKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.CurrentUser, sComp).OpenSubKey("Software\Microsoft\Windows" & _
"NT\CurrentVersion\Devices", False)
Catch ex As Exception
erg_print.Text = ex.Message
Return
End Try


For Each valueName As String In RemoteKey.GetValueNames()
erg_print.Items.Add(valueName)
Next

RemoteKey.Close()

Mit diesem Code frage ich den Schlüssel "Devices" ab, in dem alle eingerichteten Drucker aufgeführt sind. Ausgeben werden mir jedoch nur der MS XPS Document Writer und der MS Office Document Image Writer, obwohl in dem Schlüssel noch weitere Drucker stehen ( Netzwerkdrucker .

Auch die Abfrage auf den Standartdrucker...

Dim Werte As String

Werte = RegistryKey.OpenRemoteBaseKey(RegistryHive.CurrentUser, sComp, _
RegistryView.Default).OpenSubKey("Software\Microsoft\Windows" & _
"NT\CurrentVersion\Windows\", False, _
Security.AccessControl.RegistryRights.ReadKey).GetValue("Device")

erg_drucker.Text = Werte

... gibt mir nur den MS XPS Document Writer wieder, obwohl in dem Schlüssel ein anderer Drucker aufgeführt ist ( wieder ein Netzwerkdrucker)

Frage ich einen anderen Schlüssel ab, bekomme ich auch das richtige Ergebniss...

Warum werden mir die Netzwerkdrucker nicht angezeigt???

Ich weiß einfach nicht mehr weiter.

Ich hoffe, Ihr könnt mir helfen...

Vielen Dank und liebe Grüße

Content-ID: 208270

Url: https://administrator.de/contentid/208270

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

Coreknabe
Coreknabe 19.06.2013 um 10:15:41 Uhr
Goto Top
Moin,

ich nehme mal an, dass Du bei der Abfrage über ausreichende Rechte verfügst. Ansonsten springt mir das Wort "Netzwerkdrucker" ins Auge, die Drucker sind benutzerabhängig: Fragst Du den richtigen Schlüssel ab? Viellecht rede ich auch Quatsch, aber das fällt mir so spontan ein.

Gruß
colinardo
colinardo 19.06.2013 aktualisiert um 11:56:52 Uhr
Goto Top
Hallo bambi2012,
als alternative empfehle ich eine Abfrage der installierten Drucker über WMI:
Sub Main()

        Dim RemoteSystem As String = "192.168.1.10"  
        Dim username As String = "USERNAME"  
        Dim password As String = "PASSWORD"  

        Dim myConnOptions As New ConnectionOptions
        With myConnOptions
            .Username = username
            .Password = password
            .Impersonation = ImpersonationLevel.Impersonate
            .Authentication = AuthenticationLevel.Packet
        End With
        Dim myScope As New ManagementScope("\\" & RemoteSystem & "\root\cimv2", myConnOptions)  
        myScope.Connect()
        If myScope.IsConnected Then
            Dim mos As New ManagementObjectSearcher(myScope, New ObjectQuery("Select * from Win32_Printer"))  
            Dim mgtObj As ManagementObject
            For Each mgtObj In mos.Get
                Console.WriteLine(mgtObj("name").ToString & " ### LocalPrinter:" & mgtObj("local").ToString)  
            Next
            Console.WriteLine(vbCrLf & "Fertig, Taste drücken zum beenden...")  
            Console.ReadKey()
        Else
            Console.WriteLine("Konnte keine Verbindung zum RemoteSystem herstellen")  
        End If

    End Sub

Das ist sauberer und weniger Fehleranfällig.

Grüße Uwe
bambi2012
bambi2012 19.06.2013 um 10:31:10 Uhr
Goto Top
@Coreknabe:

In HKCU\Software\Microsoft\WindowsNT\CurrentVersion\Devices stehen alle angebundenen Drucker (incl. Netzwerkdrucker)
Lokal klappt die Abfrage ja auch ordentlich, nur werden mir die Netzwerkdrucker nicht angezeigt...

Und in HKCU\Software\Microsoft\WindowsNT\CurrentVersion\Windows unter "Device" steht der Standarddrucker.
Ist der Standarddrucker aber ein Netzwerkdrucker, so wird der "Microsoft XPS Document Writer" angezeigt, obwohl in dem Schlüssel etwas anderes steht...

@colinardo:

Andere Werte frage ich auch über WMI ab, nur habe ich gelesen, dass über WMI keine Netzwerkdrucker remote angezeigt werden.
Wenn ich das so, wie du beschrieben hast, umsetzte, bekomme ich auch nur lokale Drucker ( Microsoft XPS Document Writer u.s.w.) angezeigt...

Trotzdem schonmal Danke für die raschen Antworten
colinardo
colinardo 19.06.2013 aktualisiert um 11:58:38 Uhr
Goto Top
Ist der User unter dem du das Programm ausführst auf dem Zielsystem Mitglied der Administratoren ? Du hast denke ich ein Rechteproblem wie @Coreknabe schon erwähnt hat.

Lokal klappt die Abfrage ja auch ordentlich, nur werden mir die Netzwerkdrucker nicht angezeigt...
Stimmt, hatte ich vergessen. Die sind ja Nutzerabhängig.
bambi2012
bambi2012 19.06.2013 um 12:32:30 Uhr
Goto Top
Die sind Nutzerabhängig? Warum zeigt er mir denn das nicht einfach an, was in dem Schlüssel auch drin steht... Das muss doch irgendwie möglich sein... In dem Key für den Standarddrucker steht ja auch ein komplett anderer Drucker drin, als er mir ausgibt...

Habe meinen Benutzer auch auf dem Client als Admin eingetragen, trotzdem keine Besserung face-sad
bambi2012
bambi2012 19.06.2013 um 12:49:22 Uhr
Goto Top
auch mit dem oberen wmi beispiel bekomme ich die netzwerkdrucker nicht angezeigt
colinardo
colinardo 19.06.2013 aktualisiert um 12:52:55 Uhr
Goto Top
Zitat von @bambi2012:
auch mit dem oberen wmi beispiel bekomme ich die netzwerkdrucker nicht angezeigt
Das geht auch nur wenn du die Logindaten des jeweiligen Users verwendest ... und die hast du wahrscheinlich nicht.
bambi2012
bambi2012 19.06.2013 um 13:52:34 Uhr
Goto Top
stimmt, perfekt...jetzt klappt das auch... nur du hast recht, ich hab leider nicht von allen Usern das Passwort, wenn überhaupt eins vergeben ist...