Site icon Gioxx.org

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.

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:

' 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:
Exit mobile version