Impostare la stampante di default tramite script di logon

imageUna delle domande che spesso ricorre sui forum è come eseguire determinate operazioni di configurazione delle impostazioni utente al logon. L’impostazione della sua stampante di default è senza dubbio una delle richieste che va per la maggior.

Vediamo dunque di seguito quali sono i metodi per eseguire questa impostazione.

Metodo 1: tramite script batch utilizzando il comando rundll32 printui.dll,PrintUIEntry

Se è necessario impostare la stampante di default tramite uno script batch (.bat o .cmd) è possibile ricorrere al comando RUNDLL32 PRINTUI.DLL,PrintUIEntry che consente di eseguire varie operazioni sulle stampanti tra cui l’impostazione della stampante predefinita.

Digitando infatti rundll32 printui.dll,PrintUIEntry /? per ottenere l’help del comando di può notare che è disponibile il paramentro /y per l’impostazione della stampante predefinita e il parametro /n per la selezione del nome della stampante.

image

image

Quindi per impostare la stampante predefinita sarà sufficiente usare il comando RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n “Printer Name”

  • Esempio d’impostazione di una stampante locale: RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n “HP Photosmart 2700”
  • Esempio d’impostazione di una stampante di rete: RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n”\\SRVPRT01\HP Photosmart 2700″

Per ulteriori informazioni si vedano:

Metodo 2: tramite script batch modificando la chiave di registro HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device

Un secondo metodo per impostare la stampante di default tramite uno script batch (.bat o .cmd) è quello di ricorrere al comando Reg add per impostare il valore della chiave di registro HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device.

image

per impostare la stampante predefinita sarà sufficiente usare il comando reg add “HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows” /v Device /d “PrinterName,winspool,Port:” /f

  • Esempio d’impostazione di una stampante locale:  reg add “HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows” /v Device /d “HpDeskjet,winspool,LPT1:” /f
  • Esempio d’impostazione di una stampante di rete: reg add “HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows” /v Device /d “HP Photosmart 2700 series,winspool,Ne02:” /f

Per individuare il valore corretto da assegnare alla chiave HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device il metodo più pratico è quello di leggerne il valore tramite Regedit oppure usando un file batch di questo tipo che imposta nella variabile %device% il valore della chiave di registry:

for /f “Tokens=2*” %%a in (‘REG query “HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows” /V Device^|find “REG_SZ”‘) do (
set device=%%b
)

Per ulteriori informazioni si veda Changing a User’s Default Printer in the Registry.

Metodo 3: tramite VbScript

Un terzo metodo se si utilizzano script di logon basati su VBScript è quello di utilizzare il metodo SetDefaultPrinter dell’oggetto WScript.Network:

Set WshNetwork = CreateObject(“WScript.Network”)
WshNetwork.SetDefaultPrinter “PrinterName”

Per ulteriori informazioni si veda How to Add a Default Printer Using a Visual Basic Script.

Conclusioni

Gli script permettono di approcciare il problema dell’impostazione della stampante predefinita sfruttando vari metodi e oltre a quelli che ho proposto  potremmo ancora aggiungerne un quarto basato su PowerShell a rigurado si vedano:

Si tenga comunque presente che in scenari di dominio in cui i DC sono basati su Windows Server 2008 o successivi per eseguire questo tipo di configurazioni si hanno a disposizione le Group Policy Preferences che non rendono più necessario l’utilizzo di script per una vasta serie di configurazioni automatizzate. A riguardo si vedano:

Per l’utilizzo delle Group policy Preferences proprio in questo scenario di applicazione si veda GP Preferences: Add a new printer, set as default.