Scripts de logon do Windows 7 - definir impressora padrão

Scripts de logon do Windows 7 - definir impressora padrão

Recebi a tarefa de solucionar um script de logon em um site de cliente que, entre outras coisas, define a impressora padrão. O script de logon é vbscript com a impressora sendo configurada usando

Set WshNetwork = CreateObject("WScript.Network")

...

WshNetwork.SetDefaultPrinter(strPrinter)

O técnico que configurou disse que estava funcionando. O cliente disse que não. Meu teste mostra que funciona apenas de forma intermitente. Atualmente tenho algo assim:

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

Isso me permite verificar a impressora padrão antes e depois de tentar alterá-la. O loop parece ter ajudado, mas não resolveu totalmente o problema. Às vezes, a nova impressora está configurada corretamente, às vezes consigo fazer logoff e logon novamente e ela não consegue definir a mesma impressora padrão. Para esclarecer, estounãoum administrador em tempo integral. Esta técnica está desatualizada? Devo usar outra coisa para definir a impressora padrão?

Editar: Além disso, precisamos lembrar a impressora padrão que o usuário pode ter definido ou alterado durante a sessão do usuário e, em seguida, definir essa impressora como padrão

Responder1

Como você possui o Server 2008 e o Windows 7, você pode definir uma impressora padrão por meio das Preferências de Política de Grupo. Estamos usando isso agora para definir impressoras padrão em nossos laboratórios de informática. É necessário criar um GPO para esses contêineres, mas você pode obter bastante granularidade com eles.

No Editor de Política de Grupo, a política está localizada em...

Configuração do usuário -> Preferências -> Configurações do painel de controle -> Impressoras

Adicione impressoras lá. Uma das caixas de seleção é "tornar a impressora padrão". Realmente funciona.

Responder2

Em vez de usar o objeto Rede, estou executando o comando diretamente: rundll32 printui.dll,PrintUIEntry /y /n "" parece estar funcionando bem

informação relacionada