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

2

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

Set WshNetwork = CreateObject("WScript.Network")

...

WshNetwork.SetDefaultPrinter(strPrinter)

O técnico que o configurou disse que estava funcionando. O cliente disse que não era. Meu testng mostra que funciona apenas intermitentemente. Atualmente eu 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 permite que eu verifique 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, posso fazer log on e off novamente e não posso definir a mesma impressora padrão. Para esclarecer, eu sou não um administrador em tempo integral. Esta técnica está desatualizada? Devo estar usando outra coisa para definir a impressora padrão?

Edit: 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

    
por rotard 11.08.2010 / 17:18

2 respostas

0

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

    
por 11.08.2010 / 20:26
3

Como você tem o Server 2008 e o Windows 7, você pode configurar uma impressora padrão por meio das Preferências da Política de Grupo. Estamos usando isso agora para definir impressoras padrão em nossos laboratórios de informática. Isso exige a criação de um GPO para esses contêineres, mas você pode ficar bastante granular com eles.

No Editor de Políticas 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 impressora padrão". Isso realmente funciona.

    
por 11.08.2010 / 17:36