Get printer lijst van print server

Status
Niet open voor verdere reacties.

onno1984

Gebruiker
Lid geworden
19 jan 2018
Berichten
9
Hallo,

Ik heb een vraagje ik wil in een VB programmatje een lijst krijgen van alle printers die op een of meerdere servers staan.
Nou heb ik me de afgelopen dagen suf gezocht en van alles gevonden maar krijg het niet werkend zoals het moet.

Ik heb van de volgende pagina iets gevonden maar dit laat geen lijst zien zelfs als ik alle gegevens van de server erin zet zoals de naam en waarop hij moet zoeken.

http://www.marcusnyberg.com/2010/11/17/how-to-install-a-network-printer-with-vb-net-and-wmi/

Kan iemanjd me daarbij helpen?

Alvast bedankt
Onno Nieuwenburg
 
Hallo,

Dit is wat ik nu heb het bovenste gedeelte code zorgt dat ik de netwerk printers zie die geinstalleerd zijn en het onderste gedeelte zou moeten zijn om de printers die op de server staan te zien alleen dat werkt nog niet.

Code:
Option Explicit On
Imports System.Management


Public Class Form1
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        PrinterList()
    End Sub

    Private Sub PrinterList()
        ' USING WMI. (Windows Management Instrumentation)
        Dim objMS As System.Management.ManagementScope =
            New System.Management.ManagementScope(ManagementPath.DefaultPath)
        objMS.Connect()

        Dim objQuery As SelectQuery = New SelectQuery("SELECT * FROM Win32_Printer")
        Dim objMOS As ManagementObjectSearcher = New ManagementObjectSearcher(objMS, objQuery)
        Dim objMOC As System.Management.ManagementObjectCollection = objMOS.Get()

        For Each Printers As ManagementObject In objMOC

            If CBool(Printers("Network")) Then                      ' ALL NETWORK PRINTERS.
                ListBox2.Items.Add(Printers("Name"))
            End If
        Next Printers
    End Sub
    Private Sub BtnGetPrinters_Click(ByVal sender As Object, ByVal e As EventArgs)
        ' Use the ObjectQuery to get the list of configured printers
        Dim oquery As System.Management.ObjectQuery = New System.Management.ObjectQuery("SELECT * FROM Win32_Printer")

        Dim mosearcher As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher(oquery)

        Dim moc As System.Management.ManagementObjectCollection = mosearcher.Get()

        For Each mo As ManagementObject In moc
            Dim pdc As System.Management.PropertyDataCollection = mo.Properties
            For Each pd As System.Management.PropertyData In pdc
                If CBool(mo("Network")) Then
                    ListBox1.Items.Add(mo(pd.Name))
                End If
            Next pd
        Next mo

    End Sub
End Class


EDIT: het is de bedoeling om naar een specifieke printserver te verwijzen in dit geval 2 servers.
Dit omdat we vestigingen over de hele wereld hebben en ik alleen de printers wil hebben die hier in onze vestigign staan.





Gr Onno
 
Laatst bewerkt:
Iemand die nog een tip heeft?
We hebben een bedrijf dat wereldwijd zit maar ik wil alleen de printers hebben op een printserver die hier in nederland staat.
De code die hierboven onderandere staat gaat het hele bedrijf af dus ongeveer 1000+ printers is niet handig.
Heb echt overal gezocht maar kan het niet echt vinden.

Alsnog bedankt voor de hulp!
Gr Onno Nieuwenburg
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan