Como alterar o comportamento das impressoras que vagam com perfis roaming

Este artigo descreve como alterar um comportamento de impressoras que percorrem perfis de roaming.

Aplicável ao: Windows 10 - todas as edições
Número de KB original: 304767

Importante

Este artigo contém informações sobre como modificar o Registro. Antes de modificar o Registro, certifique-se de fazer o backup e de que saiba restaurá-lo caso ocorra algum problema. Para obter informações sobre como fazer backup, restaurar e editar o registro, clique no número do artigo a seguir para exibir o artigo na Base de Dados de Conhecimento da Microsoft:

256986 Descrição do Registro do Microsoft Windows

Resumo

Por design, quando um usuário está usando um perfil de roaming, a impressora padrão desse usuário percorre o perfil de usuário. No entanto, em alguns ambientes, esse pode não ser o comportamento desejado. Este artigo fornece métodos que você pode usar para alterar esse comportamento.

Mais informações

Aviso

O uso incorreto do Editor do Registro pode causar sérios problemas que talvez exijam a reinstalação do sistema operacional. A Microsoft não garante que os problemas resultantes do uso incorreto do Editor do Registro possam ser solucionados. Use o Editor do Registro por sua própria conta e risco.

Importante

As informações deste artigo foram projetadas para uso por administradores corporativos. Antes de usar qualquer um dos métodos descritos neste artigo em seu ambiente, você deve testar completamente o método em um ambiente de teste.

As impressoras são projetadas para percorrer com o perfil de roaming de um usuário e é por isso que a impressora padrão é armazenada sob o branch HKEY_CURRENT_USER do registro. Para alterar esse comportamento, use um dos métodos a seguir.

Método 1

Exporte a configuração padrão da impressora para uma impressora já instalada e mescle a configuração no perfil do usuário quando o usuário fizer logon no computador:

  1. Use o Editor do Registro (Regedit.exe) para exportar a seguinte chave do registro:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

  2. Modifique o arquivo de registro (.reg) que você fez na etapa 1 com um editor de texto para que o único nome de valor do registro abaixo da chave seja:

    "Device"=...

    Observação

    O arquivo do registro deve conter uma linha em branco na parte inferior do arquivo.

  3. Use o Editor do Registro (Regedit.exe) para adicionar um novo valor de cadeia de caracteres ResetPrinter na seguinte chave do registro:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  4. O valor do valor ResetPrinter deve ser algo semelhante ao seguinte valor:

    REGEDIT.EXE -S caminho\File.reg
    em que File.reg é o nome usado para armazenar a impressora padrão.

Método 2

Se os computadores em uma área específica contiverem nomes de computador semelhantes, você poderá usar um arquivo de script .vbs que corresponda a um conjunto específico de caracteres no nome do computador e instale uma impressora correspondente. O código de exemplo incluído neste método requer apenas que você modifique as linhas IF. Por exemplo, a primeira instrução IF no código se traduz como "se o nome do computador contiver o texto "LAB1-", defina a impressora padrão como "\\LAB1\LaserJet". Para concluir este método:

  1. Copie o seguinte código VBS de exemplo em um arquivo vbs, por exemplo, Defaultprinter.vbs:

    Option Explicit
    DIM RegEntry, ComputerName
    
    RegEntry="HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName" ComputerName = ReadRegValue(RegEntry)
    
    if InStr(1,ucase(ComputerName),"LAB1-",vbTextCompare) > 0 then call SetPrinter("\\LAB1\LaserJet")
    if InStr(1,ucase(ComputerName),"LAB2-",vbTextCompare) > 0 then call SetPrinter("\\LAB2\LaserJet")
    if InStr(1,ucase(ComputerName),"OFFICE-",vbTextCompare) > 0 then call SetPrinter("\\OFFICE\LaserJet")
    'so on and so forth.
    wscript.quit
    
    '*** This subroutine installs and sets the default printer
    Sub SetPrinter(ByVal PrinterPath)
        DIM WshNetwork
        Set WshNetwork = CreateObject("WScript.Network")
        WshNetwork.AddWindowsPrinterConnection(PrinterPath)
        WshNetwork.SetDefaultPrinter Printerpath
    end sub
    
    '**** This function returns the data in the registry value
    Function ReadRegValue(ByVal RegValue)
        DIM WSHShell
        Set WSHShell = WScript.CreateObject("WScript.Shell")
        ReadRegValue=""
        On Error Resume Next
        ReadRegValue= WSHShell.RegRead(RegValue)
    End Function
    
  2. Modifique as linhas IF conforme necessário. A única parte das linhas IF que precisam ser modificadas é entre aspas duplas. Talvez seja necessário adicionar linhas IF adicionais.

  3. Use o Editor do Registro para criar um valor de cadeia de caracteres ResetPrinter na seguinte chave do registro:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  4. O valor de ResetPrinter deve ser algo semelhante ao seguinte valor:

    WSCRIPT.EXE caminho\DefaultPrinter.vbs
    onde o caminho é o local em que o arquivo Defaultprinter.vbs é armazenado.

Observação

Também é possível executar o arquivo Defaultprinter.vbs de um script de logon em vez da chave de execução. Ambos os métodos descritos neste artigo redefinem a impressora padrão para a qual o perfil de um usuário está definido para imprimir. Além disso, se o script de exemplo incluído neste artigo não for executado corretamente, talvez seja necessário atualizar ou instalar o Host de Script do Windows.

A Microsoft oferece exemplos de programação somente para ilustração, sem garantias expressas ou implícitas. Isso inclui, mas não está limitado a, as garantias implícitas de qualidade comercial ou conformidade para uma determinada finalidade. Este artigo supõe que você conhece a linguagem de programação que está sendo demonstrada e as ferramentas usadas nos processos de criação e depuração. Os engenheiros de suporte da Microsoft podem ajudá-lo, fornecendo a explicação da funcionalidade de determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidade adicional nem criarão procedimentos específicos para atender às suas necessidades específicas.