VBScript: rimozione stampanti e mappatura nuove code

| |

Nelle puntate precedenti: VBScript: rimuovere mappature verso le stampanti di rete (volendo c’era anche Mappare stampanti di rete con VBScript). Ci torno sopra perché lo script è stato riscritto e migliorato rispetto a quel vecchio standard che ci andava giù un pelo più pesante rispetto al dovuto, dove quel dovuto riguarda le code di stampa che non dovrebbero morire nel corso della modifica, faccio riferimento – per esempio – alla coda del PDF Creator o a quella di Microsoft Print to PDF, ma il ragionamento vale anche per le code create da una installazione professionale di Adobe e simili.

VBScript: rimozione stampanti e mappatura nuove code
source: unsplash.com / author: Bank Phrom

La sostanza rimane invariata in ogni caso: passano gli anni, cambiano le code di stampa (perché cambiano fondamentalmente i dispositivi utilizzati) e per quei rari casi in cui ti tocca lavorare con code molteplici anziché un gateway unico c’è bisogno di una mano nel banale mestiere del “togli e metti“. Un VBScript ci salverà tutti, evidentemente.

'==========================================================================
'
' Connessioni stampanti
' GSolone 2019
' Ult. mod. 6/5/19
' Credits:
' https://devblogs.microsoft.com/scripting/how-can-i-remove-all-the-local-printers-from-a-computer/
' https://stackoverflow.com/questions/15424589/open-control-panel-using-vbscript
' https://stackoverflow.com/questions/1686454/run-a-vbscript-from-another-vbscript
'
'==========================================================================
ON ERROR RESUME NEXT
' Rimozione stampanti locali
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Network = FALSE")
For Each objPrinter in colInstalledPrinters
If objPrinter.Name = "Adobe PDF" Or objPrinter.Name = "Fax" Or objPrinter.Name = "Microsoft Print to PDF" Or objPrinter.Name = "Microsoft XPS Document Writer" Or objPrinter.Name = "OneNote" Or objPrinter.Name = "PDFCreator" Or objPrinter.Name = "Send To OneNote 2016" Or objPrinter.Name = "WebEx Document Loader" Then
' Non rimuovo la stampante
Else
' Rimuovo la stampante
objPrinter.Delete_
End If
Next
' Stampanti della sede
wshnet.AddWindowsPrinterConnection "\\SERVERSTAMPANTI\STAMPANTE01"
wshnet.AddWindowsPrinterConnection "\\SERVERSTAMPANTI\STAMPANTE02"
wshnet.AddWindowsPrinterConnection "\\SERVERSTAMPANTI\STAMPANTE03"
MsgBox "Dovrai ora scegliere la tua stampante predefinita" & vbCrLf & vbCrLf & "Fai clic con il tasto destro sul nome della stampante che ti interessa, poi seleziona Imposta come stampante predefinita",vbInformation,"Imposta stampante predefinita"
CreateObject("WScript.Shell").Run "control.exe printers"
view raw Stampanti.vbs hosted with ❤ by GitHub

Rapidamente:

  • se hai bisogno di aggiungere code di stampa alle esclusioni (cioè al gruppo di quelle che verranno ignorate dallo script e lasciate lì in sacrosanta pace) dovrai inserire un riferimento in più in riga 20, per capirci: objPrinter.Name = "Contoso" dove Contoso è il nome della coda da ignorare e non rimuovere. Rispetta i vari “OR” e aggiungi quello che serve a te, altrimenti lo script smetterà di funzionare.
  • Sostituisci \\SERVERSTAMPANTI con l’indirizzo reale del tuo Print Server, medesima sorte per i nomi delle code di stampa (STAMPANTE01, 02 e 03).
  • Ho lasciato un MessageBox in chiusura di script che invita la persona a decidere la sua stampante predefinita in totale autonomia. Se tu volessi imporre invece la scelta, potrai utilizzare questo codice:
' Imposta stampante predefinita
'wshnet.SetDefaultPrinter "\\SERVERSTAMPANTI\NOME_STAMPANTE_PREDEFINITA"

Sostituendo chiaramente SERVERSTAMPANTI con l’indirizzo reale del tuo Print Server e NOME_STAMPANTE_PREDEFINITA con il nome reale della coda di stampa da tenere come predefinita sul sistema.

Lo script è praticamente pronto. Prova a lanciarlo con un doppio clic, salvo errori o sviste particolari dovresti poter godere del risultato in pochi secondi. Non dovrebbe essere necessario lanciarlo come amministratore ma questo dipende dal tuo ambiente e dalle policy restrittive che hai applicato ai tuoi utenti.

In caso di dubbi sai già che fare: l’area commenti è a tua disposizione (e non è necessario registrarsi).


immagine di copertina: unsplash.com / author: Bank Phrom

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments