Scripts de inicio de sesión de Windows 7: configurar la impresora predeterminada

Scripts de inicio de sesión de Windows 7: configurar la impresora predeterminada

Se me asignó la tarea de solucionar problemas de un script de inicio de sesión en el sitio de un cliente que, entre otras cosas, configura la impresora predeterminada. El script de inicio de sesión es vbscript y la impresora se configura usando

Set WshNetwork = CreateObject("WScript.Network")

...

WshNetwork.SetDefaultPrinter(strPrinter)

El técnico que lo configuró dijo que estaba funcionando. El cliente dijo que no. Mis pruebas muestran que funciona sólo de forma intermitente. Actualmente tengo algo como esto:

WScript.Echo GetDefaultPrinter
For i = 0 to 50
    if strPrinter <> GetDefaultPrinter then
        WshNetwork.SetDefaultPrinter(strPrinter)
    end if
Next    
'WshNetwork.SetDefaultPrinter("Fax")

Msgbox("Called WshNetwork.SetDefaultPrinter(" & strPrinter & ")")
WScript.Echo GetDefaultPrinter


Function GetDefaultPrinter
sComputer = "."
Set oWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2")
Set colItems = oWMIService.ExecQuery("Select * from Win32_Printer",,48)
For Each oItem in colItems
If (oItem.Attributes And 2^(3-1)) = 4 Then
sDefault = oItem.Name
Exit For
End If
Next
GetDefaultPrinter = sDefault
End Function

Esto me permite verificar la impresora predeterminada antes y después de intentar cambiarla. El bucle parece haber ayudado, pero no ha resuelto el problema por completo. A veces, la nueva impresora está configurada correctamente, a veces puedo cerrar sesión y volver a iniciarla y no puede configurar la misma impresora predeterminada. Para aclarar, soynoun administrador de tiempo completo. ¿Esta técnica está desactualizada? ¿Debería usar algo más para configurar la impresora predeterminada?

Editar: Además, debemos recordar la impresora predeterminada que el usuario puede haber configurado o cambiado durante su sesión de usuario y luego configurar esa impresora como predeterminada.

Respuesta1

Como tiene Server 2008 y Windows 7, tiene la posibilidad de configurar una impresora predeterminada a través de las Preferencias de política de grupo. Lo estamos usando ahora mismo para configurar impresoras predeterminadas en nuestros laboratorios de computación. Es necesario crear un GPO para estos contenedores, pero puede ser bastante granular con ellos.

En el Editor de políticas de grupo, la política se encuentra en...

Configuración de usuario -> Preferencias -> Configuración del panel de control -> Impresoras

Agregue impresoras allí. Una de las casillas de verificación es "configurar impresora predeterminada". Realmente funciona.

Respuesta2

En lugar de usar el objeto Red, estoy ejecutando el comando directamente: rundll32 printui.dll,PrintUIEntry /y /n "" parece estar funcionando bien

información relacionada