Script per eliminazione stampanti locali
In ambiente Terminal Server Windows 2003 Server dovendo installare i driver delle stampanti locali degli utenti remoti a volte accade che si creano malfunzionamenti con il servizio di spooler di stampa.
Il motivo è normalmente un driver non compatibile con i Servizi Terminal, il problema quando sono stati installati numerosi driver è che diventa complesso identificare quale o quali.
Un workaround che trovato è quello di eseguire le seguenti operazioni:
- Arrestare il servizio di spooler
- Avviare il servizio di spooler
- Eliminare le stampanti degli utenti remoti installate all’atto della connessione RDP (e molto spesso quando si verifica il problema ve ne sono alcune relative a connessioni non più presenti)
- Arrestare il servizio di spooler
- Avviare il servizio di spooler
Dal momento che la procedura potrebbe essere ripetuta spesso conviene utilizzare uno script da eseguire quando si presenta il problema e da schedulare una volta al giorno ad esempio i ore notturne.
Un esempio può essere il seguente:
REM L’arresto genera nel log di sistema gli eventi Service Control Manager 7035 e 7036
REM L’avvio genera nel log di sistema gli eventi Service Control Manager 7035 e 7036
net stop spooler
net start spooler
DeletePrinters.vbs
net stop spooler
net start spooler
Dove DeletePrinters.vbs si occupa di eliminare le stampanti locali:
Set wmiService = GetObject(“winmgmts:\\.\root\cimv2”)
Set printers = wmiService.ExecQuery(“Select * From Win32_Printer”)For Each printer in Printers
printer.Delete_
Next
Set wmiService = Nothing
Set printers = Nothing