printers verwijderen d.m.v. script.

Pagina: 1
Acties:

Vraag


  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
Dag Tweakers,

Wij hebben afgelopen tijd een nieuwe print server ingericht en wat zaken gecorrigeerd met automatisch deployen van printers. Vroeger werd er op elk werkstation de printers handmatig vanaf het netwerk geïnstalleerd.

Nu staan er dubbele printers op de werkstation's. die van de nieuwe omgeving welk d.m.v. GPO's gedeployed zijn en de printers welk allemaal handmatig vanaf het netwerk geïnstalleerd zijn.

Nu wil ik via een opstart script deze printers gaan verwijderen. ik heb wat rond zitten neuzen op internet en heb gezien dat dit mogelijk moet zijn. ik heb wat testen gedaan en het lukt met onderstaande scripts:

batch:
RUNDLL32 printui.dll,PrintUIEntry /n "\\server\printer" /dn

en via VBS:
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\server\printer"
WshNetwork.RemovePrinterConnection PrinterPath, true, true


Nu werken deze beide. alleen het volgende; zodra de printer is verwijderd en het script draait nog een keer komt er een pop-up. nu is dit niet zo erg bij 1 printer, maar wel bij 20 printers. de gebruiker moet dus 20 keer klikken.. Nu denk je misschien van run het script 1 keer en klaar, dat lijkt ook logisch. Maar ik wil het script 1 a 2 weken laten draaien zodat ook de mensen welk hun pc 'perongeluk' aan laten staan het volgende week ook nog door gespeeld krijgen.

nu ben ik gaan zoeken naar een command om de pop-up automatich te laten verdwijden maar ik kan niks bruikbaars vinden.. genoeg hoe je een massage box maak maar niet hoe je een massage box verwijder.

Kan iemand mij misschien in de juiste richting sturen? Ik was eerst met batch file's aan het proberen maar al snel werdt duidelijk dat dat niet ging werken en had ik dus gelezen dat het met VBS wel mogelijk moet zijn. vandaar beide scripts.

Alle reacties


  • KillerAce_NL
  • Registratie: Juni 2001
  • Niet online

KillerAce_NL

If it ain't broke...

Het zijn eigenlijk puur registry settings en wat files op je client.
Je zou ook de regkeys weg kunnen gooien mbv gpo.
reg delete HKEY_CURRENT_USER\Printers\Connections\

  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 18:35

TheVMaster

Moderator WOS
hurthonkey365 schreef op donderdag 11 augustus 2016 @ 12:59:
Dag Tweakers,

Wij hebben afgelopen tijd een nieuwe print server ingericht en wat zaken gecorrigeerd met automatisch deployen van printers. Vroeger werd er op elk werkstation de printers handmatig vanaf het netwerk geïnstalleerd.

Nu staan er dubbele printers op de werkstation's. die van de nieuwe omgeving welk d.m.v. GPO's gedeployed zijn en de printers welk allemaal handmatig vanaf het netwerk geïnstalleerd zijn.

Nu wil ik via een opstart script deze printers gaan verwijderen. ik heb wat rond zitten neuzen op internet en heb gezien dat dit mogelijk moet zijn. ik heb wat testen gedaan en het lukt met onderstaande scripts:

batch:
RUNDLL32 printui.dll,PrintUIEntry /n "\\server\printer" /dn

en via VBS:
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\server\printer"
WshNetwork.RemovePrinterConnection PrinterPath, true, true


Nu werken deze beide. alleen het volgende; zodra de printer is verwijderd en het script draait nog een keer komt er een pop-up. nu is dit niet zo erg bij 1 printer, maar wel bij 20 printers. de gebruiker moet dus 20 keer klikken.. Nu denk je misschien van run het script 1 keer en klaar, dat lijkt ook logisch. Maar ik wil het script 1 a 2 weken laten draaien zodat ook de mensen welk hun pc 'perongeluk' aan laten staan het volgende week ook nog door gespeeld krijgen.

nu ben ik gaan zoeken naar een command om de pop-up automatich te laten verdwijden maar ik kan niks bruikbaars vinden.. genoeg hoe je een massage box maak maar niet hoe je een massage box verwijder.

Kan iemand mij misschien in de juiste richting sturen? Ik was eerst met batch file's aan het proberen maar al snel werdt duidelijk dat dat niet ging werken en had ik dus gelezen dat het met VBS wel mogelijk moet zijn. vandaar beide scripts.
Eh...een massagebox ken ik niet, denk dat je een message box bedoelt. Maar kun je niet gaan zoeken dat het script sowieso maar 1x draait op een werkplek. Daar zijn legio methodes voor, laat het script een register key wegschrijven...of in de temp folder een bestandje aanmaken. Als dat bestandje/register key bestaat dan het script niet runnen etc... :+

  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
KillerAce_NL schreef op donderdag 11 augustus 2016 @ 13:14:
Het zijn eigenlijk puur registry settings en wat files op je client.
Je zou ook de regkeys weg kunnen gooien mbv gpo.
reg delete HKEY_CURRENT_USER\Printers\Connections\
heb deze command nu eens in een batch gezet.

als ik hem dan uitvoer vraagt hij ook nog om yes or no. ik denk dat ik dat nog wel kan automatiseren maar naar het verwijderen van de register verwijzing is de printer wel verwijderd in het register maar niet tussen de geïnstalleerde printers.

  • KillerAce_NL
  • Registratie: Juni 2001
  • Niet online

KillerAce_NL

If it ain't broke...

Gebruik dan ook geen batch maar GPO:...
Specifiek± group policy preferences, daarin kun je regkeys aangeven om te verwijderen..

  • mutsje
  • Registratie: September 2000
  • Laatst online: 15:46

mutsje

Certified Prutser

Je kan een printer ook gewoon via een GPO verwijderen als je deze via een GPO gedistribueerd hebt :) en als je met vbscript gaat werken moet je er een if exists in zetten. Indien nee doe niks indien ja verwijder printer. ff voor je op google gedoken doe je ding ermee.

#########################################################################################
Option Explicit


Dim objNetwork

Dim strUNCPrinterPRINTER1

Dim strUNCPrinterPRINTER2

Dim colPrinters

Dim intCounter

Dim strAllPrinters


Set objNetwork = CreateObject("WScript.Network")


strUNCPrinterSERVER1 = "\\SERVERNAME\PRINTER1"

strUNCPrinterSERVER2 = "\\SERVERNAME\PRINTER2"


'Create list of all printers

Set colPrinters = objNetwork.EnumPrinterConnections

For intCounter = 0 To colPrinters.Count - 1 Step 2

strAllPrinters = strAllPrinters & objPrinters.Item(LOOP_COUNTER + 1) & VbCrLf

Next


'Check if printer is in the list of printers

If InStr(strAllPrinters, strUNCPrinter1) > 0 Then

objNetwork.RemovePrinterConnection strUNCPrinterPRINTER1

End If


'Check if printer is in the list of printers

If InStr(strAllPrinters, strUNCPrinter2) > 0 Then

objNetwork.RemovePrinterConnection strUNCPrinterPRINTER2

End If
#########################################################################################

[ Voor 71% gewijzigd door mutsje op 11-08-2016 14:38 ]


  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
mutsje schreef op donderdag 11 augustus 2016 @ 14:32:
Je kan een printer ook gewoon via een GPO verwijderen als je deze via een GPO gedistribueerd hebt :) en als je met vbscript gaat werken moet je er een if exists in zetten. Indien nee doe niks indien ja verwijder printer.
dat is het probleem.. de printers zijn juist niet gedistribueerd. met de nieuwe omgeving wel.

ik zit nu wat te vogelen met exists. wil nog niet werken zoals ik het wil, weinig ervaring met scripting. ik doe het nu op de manier zoals theVMmaster zei. met een bestandje wegschrijven.

  • mutsje
  • Registratie: September 2000
  • Laatst online: 15:46

mutsje

Certified Prutser

hurthonkey365 schreef op donderdag 11 augustus 2016 @ 14:39:
[...]


dat is het probleem.. de printers zijn juist niet gedistribueerd. met de nieuwe omgeving wel.

ik zit nu wat te vogelen met exists. wil nog niet werken zoals ik het wil, weinig ervaring met scripting. ik doe het nu op de manier zoals theVMmaster zei. met een bestandje wegschrijven.
Bekijk dat script eens zet er twee testprinters in en draai het op je testmachine. Het is een kant en klaar script wat bij Experts Exchange vandaan komt.

  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
mutsje schreef op donderdag 11 augustus 2016 @ 14:41:
[...]

Bekijk dat script eens zet er twee testprinters in en draai het op je testmachine. Het is een kant en klaar script wat bij Experts Exchange vandaan komt.
ben het aan het proberen, maar het lijkt dat het script vol met fouten staat?

Variable die niet verwijzen. elke keer komen er andere foutmeldingen naar boven.

[ Voor 10% gewijzigd door hurthonkey365 op 11-08-2016 14:49 ]


  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
Ik heb nu het onderstaande; nu nog uitzoeken hoe ik het met meerdere printers tegelijk kan doen. als ik nu meerdere printers invoeg en er zit er perongeluk 1 tussen welk perongeluk niet bestaat geeft hij gelijk een melding.


option explicit

dim fso
dim oFSO
dim WshNetwork
dim PrinterPath

set fso = CreateObject("Scripting.FileSystemObject")

if fso.FolderExists("C:\Temp\verwijderd\") then
wscript.quit

else

Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\server\printer"
WshNetwork.RemovePrinterConnection PrinterPath, true, true

Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CreateFolder "C:\Temp\verwijderd\"
end if

  • pjlgt
  • Registratie: Juli 1999
  • Niet online
In de runonce in de registry zetten? Draait het script 1 x en daarna niet weer want word hij verwijderd uit de registry

  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
Ik ben nu aan het testen of het werkt door eerst alle printers opnieuw toe te laten voegen en vervolgens allemaal verwijderen.

Acties:
  • 0 Henk 'm!

  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
KillerAce_NL schreef op donderdag 11 augustus 2016 @ 13:57:
Gebruik dan ook geen batch maar GPO:...
Specifiek± group policy preferences, daarin kun je regkeys aangeven om te verwijderen..
ik heb het eens lokaal op mijn eigen systeem geprobeerd, de regester key verwijderd. maar dit verwijderd bij mij de printer niet?

na een herstart is de register key weg maar de printer is er nog wel.

HKEY_CURRENT_USER\Printers\Connections\,,printer.
Ik verwijder dan ,,printer

[ Voor 8% gewijzigd door hurthonkey365 op 12-08-2016 09:17 ]


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 12:17
Kun je niet gewoon via GPP alle printers verwijderen (en dit dan op Apply Once zetten??)

Acties:
  • 0 Henk 'm!

  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
Killah_Priest schreef op vrijdag 12 augustus 2016 @ 10:47:
Kun je niet gewoon via GPP alle printers verwijderen (en dit dan op Apply Once zetten??)
Heb het eens geprobeerd. Het werkt goed en mooi. je krijg ook geen meldingen bij niet aanwezige printer.

Enkel verwijderd hij 5 tal printers niet.

Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 12:17
Zijn de printers op userniveau of op machineniveau gemapped? Dat maakt ook nog een verschil..

Acties:
  • 0 Henk 'm!

  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
Killah_Priest schreef op vrijdag 12 augustus 2016 @ 12:15:
Zijn de printers op userniveau of op machineniveau gemapped? Dat maakt ook nog een verschil..
hoe bedoel je gemapped? Ik heb de GPO nu draaien op user niveau. Het lijkt mij dat de printers ook op user niveau geplaatst zijn?

op een andere test pc blijft nu een andere printer hangen.

[ Voor 8% gewijzigd door hurthonkey365 op 12-08-2016 12:19 ]


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 12:17
hurthonkey365 schreef op vrijdag 12 augustus 2016 @ 12:16:
[...]


hoe bedoel je gemapped? Ik heb de GPO nu draaien op user niveau. Het lijkt mij dat de printers ook op user niveau geplaatst zijn?

op een andere test pc blijft nu een andere printer hangen.
Ik bedoel de printers die je wilt verwijderen.
Als deze op "machine niveau" gemapped zijn dan kun je deze niet vanuit een user verwijderen :(

(zeg maar ook het verschil tussen een printer mappen voor een enkele user op een machine of voor alle users op de betreffende machine)

Acties:
  • 0 Henk 'm!

  • hurthonkey365
  • Registratie: Januari 2015
  • Laatst online: 05-08-2024
Killah_Priest schreef op vrijdag 12 augustus 2016 @ 13:59:
[...]


Ik bedoel de printers die je wilt verwijderen.
Als deze op "machine niveau" gemapped zijn dan kun je deze niet vanuit een user verwijderen :(

(zeg maar ook het verschil tussen een printer mappen voor een enkele user op een machine of voor alle users op de betreffende machine)
aha duidelijk. nee dat is echt op user niveau gebeurd. Maar zoals ik al aangaf handmatig op elk systeem een verbinding maken met de server en de printers toevoegen.
Pagina: 1