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

VBS: als printer bestaat, printer verwijderen en toevoegen

Pagina: 1
Acties:
  • 1.068 views

  • nasdude
  • Registratie: September 2009
  • Laatst online: 27-11 09:31
We hebben op mijn werk een 2003 print server, regelmatig krijgen medewerkers de melding in office dat ze niet kunnen printen (memory errors etc).

Het probleem zit hem in de oude print server, het updaten van de drivers heeft niet geholpen. De oplossing is het herinstalleren van de printserver. Natuurlijk direct onder 2008 R2.

Het probleem is echter dat er software op de 2003 server staat die niet in 2k8 kan draaien, en deze server moet nog een tijdje in de lucht blijven (gelukkig is het een VM, dus system state backup en recovery is gemakkelijker).

Om het onze medewerkers makkelijker te maken wil ik een scriptje draaien dat de oude printer verwijderd en een nieuwe toevoegt (en als nodig als default instelt). het scriptje kan ik deployen met sccm en draaien als de current user logged on.

waar ik naar opzoek ben is iets als:

als bestaat:
\\printserver01\printer1
dan:
1. \\printserver02\printer1 toevoegen
2. als \\printserver01\printer1 de default printer is, \\printserver02\printer1 default maken
3. \\printserver01\printer1 verwijderen

ben ik op de juiste weg? of zijn er handigere manieren om users naar een nieuwe printserver te laten printen (zonder user interactie)

  • nasdude
  • Registratie: September 2009
  • Laatst online: 27-11 09:31
heb iets gevonden: http://gallery.technet.mi...6-4354-bddf-d748367fca72/

VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
'Replace mapped printers from one print server to another 
'Shared printers on new server must have identical printer sharenames as printers on old server 
'Replaced and removed printers is logged in a logfile 
'Written by: Martin Berton (martin.berton@infocare.se) 
 
on error resume next 
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8  
 
'======================================= 
'Here you name the servers and logfile 
'======================================= 
 
oldprintserver = "OLDSERVER" 
newprintserver = "NEWSERVER" 
logfilepath = "remapp_printers.txt" 
 
 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.OpenTextFile(logfilepath, ForAppending, True)  
 
'Default printer is read from the registry 
Set objShell = CreateObject("WScript.Shell") 
sPath = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device" 
ar_PrnInfo = Split(objShell.RegRead(sPath), ",") 
sPrinter = "" 
  
If IsArray(ar_PrnInfo) Then 
   sPrinter = ar_PrnInfo(0) 
End If 
 
'Installed printers is read 
Set WshNetwork = WScript.CreateObject("WScript.Network") 
Set Printers = WshNetwork.EnumPrinterConnections 
 
'Checking if printers is on old print server 
For i = 0 to Printers.Count - 1  
  if UCase(Mid(Printers.Item(i), 2, Len(oldprintserver)+2)) = "\"& oldprintserver &"\" Then 
     oldprinter = Printers.Item(i) 
     newprinter = "\\" & newprintserver & "\" & Mid(Printers.Item(i), Len(oldprintserver)+4) 
 
     ' Check if printer the printer on the new print server allready is installed 
     allreadyinstalled = false 
     For j = 0 to Printers.Count - 1  
       if newprinter = Printers.Item(j) Then 
          allreadyinstalled = true 
       end if 
     Next 
 
     if allreadyinstalled then 
       'If the printer allreday is installed, the printer on the old print server will be removed 
       filetxt.WriteLine(oldprinter & " removed") 
     else 
       'If the printer is not installed, the printer on the new print server is installed 
       'and the printer on the old print server will be removed 
       filetxt.WriteLine(oldprinter & " replaced with " & newprinter) 
       WshNetwork.AddWindowsPrinterConnection newprinter 
     end if 
     WshNetwork.RemovePrinterConnection oldprinter 
 
  end if 
Next 
 
'if the users default printer is a printer on the old print server, the default printer 
'is changed to the new print server 
if UCase(Mid(sPrinter, 2, Len(oldprintserver)+2)) = "\"& oldprintserver &"\" Then 
     PrinterPath = "\\" & newprintserver & "\" & Mid(sPrinter, Len(oldprintserver)+4) 
     filetxt.WriteLine("New default printer = " & PrinterPath) 
     WshNetwork.SetDefaultPrinter PrinterPath 
 
End If 
 
filetxt.Close  

Verwijderd

Beetje jammer dat dit soort dingen hier gepost worden terwijl hier gigantisch veel topics over zijn op google. Hierbij het makkelijkste script wat je kan gebruiken.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
'############################### Remove all network printers  #########################
On error resume next

Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
For i = 0 to oPrinters.Count - 1 Step 2
WScript.Echo oPrinters.Item(i+1)
WshNetwork.RemovePrinterConnection oPrinters.Item(i+1)

'############################### Remove all network printers v2.0 #########################
'   RemovePrinter   "\\%SERVERNAAM%\%PRINTERNAAM%" 'Required description

        
'############################### Connect printers (everyone) #########################
    Dim objPrinter
    Set objPrinter = CreateObject("WScript.Network") 
    AddPrinter  "\\printserver01\Printer01"
    AddPrinter  "\\printserver01\Printer0102"
    AddPrinter  "\\printserver01\Printer03"
'##### // continue with script
        
'############################### Connect printers per group (per group) #########################
'   if isMember("%GROUPNAME") then
'       AddPrinter  "\\%SERVERNAME%\%pRINTERNAME%"
'   End If

'############################### Remove all network printers v2.0 #########################
'   RemovePrinter   "\\%SERVERNAAM%\%PRINTERNAAM%" 'Required description
    
'############################### Default Printers #########################
    if isMember("Groupname") then
        SetPrinterDefault  "\\printserver01\Directie"
    End If


Ik weet niet of je systeembeheerder bent maar leer eens google gebruiken als je het wel bent.

  • mhoogendam
  • Registratie: Oktober 2002
  • Laatst online: 22:56
Ik heb vorig jaar voor een klant een VBScript geschreven voor de printserver migratie.
Mocht je het willen kan ik deze wel opzoeken voor je.

  • corset
  • Registratie: November 2009
  • Laatst online: 29-11 12:18
@Sebza, waarom is dit forum dan nodig? Je kan tenslotte ALLES op google vinden.

Wel interesant topic trouwens, ook handig op m'n werk hier met de printers. Ik ga dit wel in de gaten houden.

"Whatever their future, at the dawn of their lives, men seek a noble vision of man’s nature and of life’s potential."


  • Rolfie
  • Registratie: Oktober 2003
  • Laatst online: 18:45
lanerios schreef op woensdag 04 juli 2012 @ 09:36:
@Sebza, waarom is dit forum dan nodig? Je kan tenslotte ALLES op google vinden.

Wel interesant topic trouwens, ook handig op m'n werk hier met de printers. Ik ga dit wel in de gaten houden.
Dit is eigenlijk meer een script request, dan iets voor PNS. Dit soort scripts zijn ook geen rocket science, want TS heeft binnen 2 uur daarna al zijn script gemaakt.

Verwijderd

lanerios schreef op woensdag 04 juli 2012 @ 09:36:
@Sebza, waarom is dit forum dan nodig? Je kan tenslotte ALLES op google vinden.

Wel interesant topic trouwens, ook handig op m'n werk hier met de printers. Ik ga dit wel in de gaten houden.
Ik vindt dit een forum voor serieuze vragen, waar je serieuze antwoorden kan verwachten. Wat al eerder is gezegd je vraagt eigenlijk een gratis script aan omdat je te lui bent om zelf te zoeken. Ik vindt dat persoonlijk erg jammer...

oh en je kan echt niet alles op google vinden, veel, maar er is zat wat wij hier tegenkomen wat je never op google vindt,

[ Voor 10% gewijzigd door Verwijderd op 04-07-2012 15:30 ]


  • KillerAce_NL
  • Registratie: Juni 2001
  • Niet online

KillerAce_NL

If it ain't broke...

Ik zit met 1 vraag:
Wat heeft het probleem van een app die op 2003 moet draaien te maken met een printserver op diezelfde server ?
De printer kan toch makkelijk via een andere server geshared worden ?

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Eh.. waarom verwijder/deploy je de printer niet gewoon met een policy/preference? Je hebt SCCM dus ook group policies.

[ Voor 4% gewijzigd door Mental op 04-07-2012 15:39 ]


Verwijderd

Even een tip! Wel goed doen dan via de print manager niet via de Group Policy Manager! Dit is niet de best practices manier en geeft veel problemen! Maar policies is wel het beste wat je kan doen, scripten is echt enorm outdated aan het raken.

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 23:37

DukeBox

loves wheat smoothies

Precies, GPO preference is super handig voor dit soort dingen mits je omgeving volledig XP SP2 of hoger is.

Duct tape can't fix stupid, but it can muffle the sound.


  • Razwer
  • Registratie: December 2000
  • Laatst online: 14-11 20:46
DukeBox schreef op woensdag 04 juli 2012 @ 16:00:
Precies, GPO preference is super handig voor dit soort dingen mits je omgeving volledig XP SP2 of hoger is.
ja erg leuk, maar login process duurt dan, afhankelijk van het aantal printers wat je hebt, asociaal lang.
VBS draait pas na de login, en werkt dus transparant voor de gebruikers.
als het om 1 of 2 printers gaat is GPO prefs wel te doen, anders zou ik, bij het gebruik van printers, dat absoluut niet gebruiken.

Newton's 3rd law of motion. Amateur moraalridder.


  • nasdude
  • Registratie: September 2009
  • Laatst online: 27-11 09:31
zozo, jij kan uit de hoogte doen, goed bezig hoor :')


Jammer dat je geen antwoord geeft op mijn vraag. Het script wat jij post flikkert alle printers weg, ook printers die gebruikers hebben aangemaakt op andere vestigingen of eventuele thuis printers.

Wat ik daarnaast wil is een eventuele user pref. (in dit geval een default printer) aanpassen op basis van een AD-groep (waar ik al helemaal geen zin in heb om dat per medewerker bij te gaan houden, zeker niet met de flex plekken waar wij gebruik van maken)

De vraag was of ik op de juiste weg was met een vbs script, of dat er andere handigere manieren zijn.
Verwijderd schreef op woensdag 04 juli 2012 @ 09:04:
Beetje jammer dat dit soort dingen hier gepost worden terwijl hier gigantisch veel topics over zijn op google. Hierbij het makkelijkste script wat je kan gebruiken.

code:
1
'...


Ik weet niet of je systeembeheerder bent maar leer eens google gebruiken als je het wel bent.

  • nasdude
  • Registratie: September 2009
  • Laatst online: 27-11 09:31
KillerAce_NL schreef op woensdag 04 juli 2012 @ 15:25:
Ik zit met 1 vraag:
Wat heeft het probleem van een app die op 2003 moet draaien te maken met een printserver op diezelfde server ?
De printer kan toch makkelijk via een andere server geshared worden ?
momenteel draait de app (printing app) op de 2003 server, zoals geschreven kan die er niet zomaar vanaf. Ik wil de users echter wel overzetten naar de nieuwe printserver (ivm de problemen die ik nu tegen kom).

een share aanmaken is zo gedaan, alle users overzetten naar die nieuwe print server zonder al te veel human interaction, das een ander verhaal. zodoende ook dit topic

  • nasdude
  • Registratie: September 2009
  • Laatst online: 27-11 09:31
mhoogendam schreef op woensdag 04 juli 2012 @ 09:33:
Ik heb vorig jaar voor een klant een VBScript geschreven voor de printserver migratie.
Mocht je het willen kan ik deze wel opzoeken voor je.
bedankt voor je aanbod :) het scriptje wat ik in mijn 2de post plaatste werkt prima, inmiddels getest bij een 20 tal medewerkers, geen problemen gehad daarmee.

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Razwer schreef op donderdag 05 juli 2012 @ 10:16:
[...]

ja erg leuk, maar login process duurt dan, afhankelijk van het aantal printers wat je hebt, asociaal lang.
VBS draait pas na de login, en werkt dus transparant voor de gebruikers.
als het om 1 of 2 printers gaat is GPO prefs wel te doen, anders zou ik, bij het gebruik van printers, dat absoluut niet gebruiken.
Dan weet ik niet wat voor infrastructuur jij hebt maar hier werkt dat anders prima met gemiddeld 5 printers, misschien wat capabele systeembeheerders naar binnen schuiven?

  • Razwer
  • Registratie: December 2000
  • Laatst online: 14-11 20:46
Mental schreef op donderdag 05 juli 2012 @ 17:47:
[...]


Dan weet ik niet wat voor infrastructuur jij hebt maar hier werkt dat anders prima met gemiddeld 5 printers, misschien wat capabele systeembeheerders naar binnen schuiven?
}:O

Het grote verschil tussen Enterprise en MKB, MKB is kleinschalig denken :)

Ik kan je zo wat situaties schetsen waarbij het niet handig is om het op die manier uit te voeren. Wanneer de printers eenmaal installed zijn is er niks aan het handje, maar bij de initiele uitrol heb je een draak te pakken.
Voorbeelden waar het niet handig is:
- Multi site situaties ((trage) wan links) met reizende gebruikers en gebruik makend van terminal servers.
- Oude/trage overloaded machines en/of terminal servers.
- Flexplek situaties.
- Field engineers

Die sneer over capabele systeembeheerder naar binnen schuiven is een zwaktebod van onbekwame ICT-ers die vinden dat ze zichzelf moeten bewijzen. Ik ben blij voor je dat je even je frustraties kwijt kon en je jezelf even helemaal de man kan voelen :w .

Newton's 3rd law of motion. Amateur moraalridder.


  • DukeBox
  • Registratie: April 2000
  • Laatst online: 23:37

DukeBox

loves wheat smoothies

Nu weet ik niet precies wat je bedoelt, maar de gpo preferences heb ik ingezet in multi site (17 lokaties over heel Europa), flexplek, field (vertegenwoordigers).. juist daar bewees gpp zich in gemak en performance.
Vooral het voordeel dat je zaken óók op system niveau i.p.v. user niveau kan regelen (net als met normale GPO's) heeft een groot voordeel waar je bij login scripts altijd rekening moet houden met rechten e.d.
Daarnaast worden GPP's gecached waardoor je (indien mogelijk) niet perse aan het netwerk hoeft te hangen om toch bepaalde aanpassingen in te stellen.

[ Voor 15% gewijzigd door DukeBox op 05-07-2012 21:05 ]

Duct tape can't fix stupid, but it can muffle the sound.


  • Razwer
  • Registratie: December 2000
  • Laatst online: 14-11 20:46
DukeBox schreef op donderdag 05 juli 2012 @ 21:03:
Nu weet ik niet precies wat je bedoelt, maar de gpo preferences heb ik ingezet in multi site (17 lokaties over heel Europa), flexplek, field (vertegenwoordigers).. juist daar bewees gpp zich in gemak en performance.
Vooral het voordeel dat je zaken óók op system niveau i.p.v. user niveau kan regelen (net als met normale GPO's) heeft een groot voordeel waar je bij login scripts altijd rekening moet houden met rechten e.d.
Daarnaast worden GPP's gecached waardoor je (indien mogelijk) niet perse aan het netwerk hoeft te hangen om toch bepaalde aanpassingen in te stellen.
ook wanneer je in 1 klap let's say 6 printers uitrolt op een printserver in amsterdam aan 30 gebruikers in roemenie (omdat die roemenen ook moeten kunnnen printen als ze in Amsterdam zijn? Dat werkt alleen als je Item level targetting heel goed uitkiend. Als die printers eenmaal installed zijn bij die users is er idd niks aan het handje, maar massale uitrol van veel printers (bijvoorbeeld vervanging printserver) en users die op veel verschillende machines inloggen geeft ergernis onder de gebruikers. Helemaal als veel van die servers brak zijn.

GPO prefs zijn uiterst handig en nemen ontzettend veel scripting weg, ik ben er ook een groot voorstander van, maar bij bepaalde zaken/situaties kan het heel vervelend werken. Vooral als je weinig controle/zicht hebt op de locatie van de user of de hardware waar de user mee moet werken. tuurlijk is dit OOK af te vangen met item level targetting, maar dan maak je het wel flink complex.

Newton's 3rd law of motion. Amateur moraalridder.


  • Koffie
  • Registratie: Augustus 2000
  • Laatst online: 17:11

Koffie

Koffiebierbrouwer

Braaimeneer

lanerios schreef op woensdag 04 juli 2012 @ 09:36:
@Sebza, waarom is dit forum dan nodig? Je kan tenslotte ALLES op google vinden.

Wel interesant topic trouwens, ook handig op m'n werk hier met de printers. Ik ga dit wel in de gaten houden.
Je kan idd alles vinden, ook hoe je een scipt bouwt.

Zoals al eerder door anderen aangehaald is PNS niet het forum voor script requests (nergens overigens op GoT).
Wij verwachten in PNS toch iets meer eigen inzet en kennis.

Tijd voor een nieuwe sig..

Pagina: 1

Dit topic is gesloten.