Compartilhar via


Como alterar o comportamento de impressoras que fazem roaming com perfis móveis

Este artigo descreve como alterar um comportamento de impressoras que fazem roaming com perfis móveis.

Aplicável ao: Windows 10 - todas as edições
Número original do KB: 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 abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:

256986 Descrição do Registro do Microsoft Windows

Resumo

Por design, quando um usuário está usando um perfil móvel, a impressora padrão desse usuário é transferida com o perfil do 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

Se o Editor do Registro for usado incorretamente, você pode causar sérios problemas que podem exigir que você reinstale o sistema operacional. A Microsoft não garante que você possa resolver problemas resultantes do uso incorreto do Editor do Registro. Use o Editor do Registro por sua conta e risco.

Importante

As informações neste 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 fazer roaming com o perfil móvel de um usuário e é por isso que a impressora padrão é armazenada na ramificação 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 do Registro (.reg) que você criou na etapa 1 com um editor de texto para que o único nome do valor do Registro abaixo da chave seja:

    "Dispositivo"=...

    Observação

    O arquivo de 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 caminho -S \File.reg
    onde File.reg é o nome que você usou 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 nesse método requer apenas que você modifique as linhas IF. Por exemplo, a primeira instrução IF no código é traduzida como "se o nome do computador contiver o texto "LAB1-" e, em seguida, 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 SE conforme necessário. A única parte das linhas IF que precisa ser modificada está 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 path é o local onde o arquivo Defaultprinter.vbs está armazenado.

Observação

Também é possível executar o arquivo Defaultprinter.vbs a partir de um script de logon em vez da chave de execução. Ambos os métodos descritos neste artigo redefinem a impressora padrão na 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.