In questo post cercherò di illustrare i passi per eliminare i componenti dei driver non necessari e che possono causare problemi o blocchi al servizio di spooler.

Molti problemi dello spooler di stampa sono causati da driver non aggiornati o con compenti accessori che non pregiudicano la stampa di un normale documento ma che possono causare lato sistema operativo crash o blocchi improvvisi.

Le modifiche interessano il registro di sistema e quindi, per una maggiore sicurezza, consiglio di fare una copia di backup.

Di seguito l’elenco di passi che seguiremo per pulire le chiavi relative al Print Server:

  • Impostare “Local Print Provider” come default
  • Convertire Port Monitor di terze parti in Standard TCP/IP
  • Rimuovere Print Monitor di terze parti
  • Rimuovere Print Processor di terze parti

Le modifiche di seguito apportate avranno effetto solo dopo il riavvio del servizio Print Spooler.

Di seguito un’immagine che illustra i componenti dello spooler di sistema:

PrinterServerStructure_thumb

Impostare “Local Print Provider” come default

  1. Avvia Regedit e seleziona la seguente chiave:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
  2. Esporta in formato .reg (File > Export) tutta la struttura sotto la chiave “Print” in modo di avere un backup.
  3. Spostati nella chiave “Local Port”:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Local Port
  4. Conferma che il valore della chiave “Driver” = “Localspl.dll”.
    In caso avesse un valore diverso, modifica il valore impostando “Localspl.dll”

Convertire Port Monitor di terze parti in Standard TCP/IP

I Port e Language monitor sono salvati nella seguente chiave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors

I monitor di default sono (alcuni possono non essere presenti):

  • BJ Language Monitor
  • Local Port
  • LPR Port
  • PJL Language Monitor
  • Standard TCP/IP Port USB Monitor
  • Windows NT Fax Monitor

Procedura per convertire un Port Monitor di terze parti in TCP/IP Port

  1. Apri la cartella “Printers and Faxes
  2. Seleziona “Properties” con il tasto destro sulla stampante che utilizza il Port Monitor di terze parti
  3. In “Properties” seleziona la scheda “Ports
  4. Nella scheda “Ports”, clicca sul pulsante “Add Port
  5. Nella schermata “Printer Ports”, seleziona “Standard TCP/IP” e clicca sul pulsante “New Port” per avviare il wizard “Add Standard TCP/IP Printer Port”.
  6. Inserisci il nome o indirizzo IP della stampante che sarà utilizzata come porta.
  7. Terminato il wizard di creazione della porta, nella scheda “Ports”, dovrebbe essere selezionata la nuova porta creata di tipo “Standard TCP/IP Port”
  8. La porta appena creata sarà visualizzata anche nelle proprietà del Print Server: “Printers and Faxes > File > Server Properties” nella scheda “Ports”, dove sono presenti tutte le altre port utilizzate.
  9. Si può procedere ora alla cancellazione della porta di terze parti non più utilizzata.

Ripetere la procedura sopra indicata per tutte le stampanti che utilizzano Port Monitor di terze parti.

Dopo aver impostato tutte le stampanti con il “Standard TCP/IP Port”, è possibile cancellare tutti Port Monitor di terze pari elencati nella seguente chiave di registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors

Rimuovere Print Monitor di terze parti

Per tutti gli altri Monitor di terze parti che sono presenti nella chiave di registro “Monitors” e non hanno nessuna printer port collegata nella sottochiave “Ports” del Monitor, possiamo procedere come indicato di seguito:

  • Identifica la configurazione della stampante che utilizza un Monitor di terze parti
  • Cancella il riferimento al Monitor per la stampante
  • Cancella la chiave di registry associata al Monitor di terze parti.

Nota: Il “Client Printer Port” è il “Citrix Metaframe Monitor” che è utilizzato per la creazione automatica delle stampanti nelle sessioni Terminal Server. Non rimuovete questo Monitor se non è confermato che sia la causa del problema:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Monitors\Client Printer Port

Driver REG_SZ cpmmon.dll

Di seguito riporto un articolo che spiega come rimuovere un Monitor di terze parti:

KB 155516
How to Remove the Lexmark MarkVision Monitor
http://support.microsoft.com/kb/155516

Perché le modifiche abbiano effetto, è necessario riavviare il servizio Print Spooler

Rimuovere Print Processor di terze parti

Questi passi spiegano come verificare che tutti i Print Processor delle stampanti siano impostante su Winprint.

  • Identificare le stampanti che sono configurate per utilizzare Print Processor di terze parti
  • Modificare i Print Processor di terze parti su Winprint
  • Cancellare le chiavi di registro per i Print Processor di terze parti

I nomi dei Print Processor installati sono salvati nella seguente chiave di registro:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Environments\Windows NT x86\Print Processors

Il Print Processor di default è Winprint che ha come driver il file “localspl.dll”

Eseguiamo i seguenti passi per individuare Print Processor di terze parti:

  1. In regedit selezioniamo la chiave:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print
  2. Edit > Find e inseriamo “Print Processor”, F3 per continuare la ricerca
  3. Modificare il valore della chiave “Print Processor” a “Winprint”
  4. Ripetere la ricerca per tutti i Print Processor di terze parti installati
  5. Riavviare il servizio Print Spooler perché le modifiche abbiano effetto

Maggiori informazioni e approfondimenti:


Daniele Maso
Senior Support Engineer
Microsoft Enterprise Platforms Support