Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[VBS] Probleem met check printer connectie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Wie kan mij helpen met onderstaande:

Ik wil met een script een aantal printers langslopen die op de client gekoppeld zouden kunnen zijn.
Als een printer gekoppeld is moet deze verwijderd worden en vervolgens dient er een nieuwe printer gekoppeld te worden.

Zie script:

On Error Resume Next

strComputer = "."

Set WshNetwork = WScript.CreateObject("WScript.Network")

PrinterPath = "\\printserver01\HP01"
PrinterPathnew = "\\printsrv01\Wageningen01"

WshNetwork.RemovePrinterConnection PrinterPath, true, true
wshNetwork.AddWindowsPrinterConnection PrinterPathnew

Nu krijg ik een foutmelding dat de printerconnectie niet aanwezig is ( Immers On Error Resume Next staat uit)
Als ik On Error Resume NExt aan zet loopt het script uiteraard door en wordt de nieuwe printer aangemaakt.

Wat ik wil is dat er gecontroleerd wordt of de printer bestaat, zo nee, ga naar de volgende printer check, zo ja, remove en add dan alsnog.

Nu heb ik er onderstaande van gemaakt maar blijkbaar is deze methode niet beschikbaar.
Wie kan me helpen?

On Error Resume Next

strComputer = "."

Set WshNetwork = WScript.CreateObject("WScript.Network")

PrinterPath = "\\printserver01\Printer18"
PrinterPathnew = "\\printsrv01\Wag01"

if wshNetwork.exists (PrinterPath) Then
Wscript.Echo "printer bestaat"
Else
WshNetwork.RemovePrinterConnection PrinterPath, true, true
wshNetwork.AddWindowsPrinterConnection PrinterPathnew

End if

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • defcon84
  • Registratie: September 2009
  • Laatst online: 10:16

defcon84

Multipass?

Mss werkt dit wel:

VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if PrinterExists(PrinterPath) Then
    Wscript.Echo "printer bestaat"
Else
    WshNetwork.RemovePrinterConnection PrinterPath, true, true
    wshNetwork.AddWindowsPrinterConnection PrinterPathnew
End if

function PrinterExists(strPrinterUNC)
    on error resume next
    dim oPrinters
    Set oPrinters = WshNetwork.EnumPrinterConnections
    For i = 0 to oPrinters.Count - 1
        if uCase(oPrinters.Item(i)) = uCase(strPrinterUNC) then 
            PrinterExists = True    
            exit function
        end if  
    Next
    PrinterExists = False
    set oPrinters = Nothing
end function

Verwijderd

Topicstarter
Thanks! Beetje hele late reactie maar kon er nu pas mee verder! It's working!

Nu toch nog een andere vraag, het is mogelijk voordat de printer vervangen wordt om de default printer uit te lezen..Als het niet de default printer is, naar de volgende te gaan, en als het de default printer is deze als zodanig in te stellen.. Dat instellen van de default printer is eenvoudig: wshNetwork.setDefaultPrinter

Omdat ik het script niet zo handig heb gebouwd, ik check immers iedere printer afzonderlijk.. is het noodzakelijk dat voor iedere printer de check wordt gedaan of het een default printer is.
Ik heb gezien dat wshnetwork niet zo'n methode heeft. Heeft iemand een antwoord op dit issue?

On Error Resume Next

strComputer = "."

Set WshNetwork = WScript.CreateObject("WScript.Network")

'PrinterWag
PrinterPath = "\\printserver01\Printer18"
PrinterPathnew = "\\printsrv01\Wag01"

'PrinterWag
if PrinterExists(PrinterBG) Then
------ check of deze als default is ingesteld zo ja,
wshNetwork.setDefaultPrinter PrinterPathnewBG
WshNetwork.RemovePrinterConnection PrinterBG, true, true
wshNetwork.AddWindowsPrinterConnection PrinterPathnewBG
End if

[ Voor 87% gewijzigd door Verwijderd op 11-01-2011 08:15 ]