vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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
Freigegebene Drucker auf einem Printserver ermitteln? 
Autor: fun2prog
Datum: 02.09.16 16:37

Hallo zusammen,

ich habe aktuell echt ein kniffliges Problem:
Ich möchte gerne von einem Printserver (Windows Server) alle freigegebenen Drucker ermitteln.
Leider soll dies auch ohne besondere Berechtigungen funktionieren, weshalb hier WMI nicht verwendet werden kann (Domänen-Benutzer sind nicht in der RPC-Gruppe des Servers). Der Windows Explorer kann die Freigaben bei den Usern ohne Probleme auflisten, wie kann ich diese Auflistung in meiner VB.NET Anwendung nutzen?
Gibt es hier noch andere elegante Lösungen?

Schon mal vielen Dank im Voraus!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Freigegebene Drucker auf einem Printserver ermitteln? 
Autor: OlliBG
Datum: 09.09.16 10:04

Ich habe das über unseren MSSQL-Server gemacht. Dort einen LinkedServer in die AD erstellt und über SQL die Drucker abgefragt

SELECT servername, printername, uncname, location, drivername
FROM OPENQUERY(LinkedServer, 'SELECT printername, servername, uncname, drivername, location FROM ''LDAP://DOMAINNAME/DC=DOMAINNAME,DC=local'' where objectClass = ''printqueue''')
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Freigegebene Drucker auf einem Printserver ermitteln? 
Autor: fun2prog
Datum: 09.09.16 18:49

Danke für die Auskunft!

Ich habe nun eine VB.NET Variante gefunden (und zum Teil basteln müssen), und ich möchte diese euch nicht vorenthalten:

    Imports System.Printing
 
    Public Function GetPrinterQueries(ByVal PrintServer As String) As List(Of _
      PrinterQueueInfo)
        Try
            'Initialisierung des PrintServer-Objekts
            Dim myPrintServer As New PrintServer("\\" & PrintServer, _
              PrintSystemDesiredAccess.EnumerateServer)
 
            Dim result As New List(Of PrinterQueueInfo)
 
            'Druckerwarteschlangen auflisten
            Dim myPrintQueues As PrintQueueCollection = _
              myPrintServer.GetPrintQueues()
            For Each pq As PrintQueue In myPrintQueues
                If Not pq.ShareName = "" Then
                    Dim hh As New PrinterQueueInfo
                    hh.Server = pq.HostingPrintServer.Name
                    hh.ShareName = pq.ShareName
                    result.Add(hh)
                End If
            Next pq
 
            Return result
        Catch ex As Exception
            Return New List(Of PrinterQueueInfo)
        End Try
    End Function
 
'Hier noch die Hilfsklasse, welche ich zur Speicherung der benötigten Daten 
' erstellt habe:
 
Public Class PrinterQueueInfo
    Public ShareName As String
    Public Server As String
End Class
Ich hoffe, das kann jemand für die Zukunft gut gebrauchen.
Ich möchte mich für die Hilfe bedanken, der Thread kann geschlossen werden.
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