MIRAR :Para exportar a impressora de rede de uma máquina Windows 10 para um arquivo de saída e usar esse arquivo de saída, importe-a para outra máquina Windows 10 na mesma rede.
Trabalho de pesquisa:
O seguinte cmd do Powershell mostra oImpressoras mapeadaspara um usuário:
cmdlet1)
Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME | where{$_.Name -like “*\\*”} | select sharename,name
OBSERVAÇÃO: O cmd acima não mostra oNome do motoristaque é um parâmetro crítico para o próximo comando
O comando que pretendo usar para importar a impressora de rede:
cmdlet2)
Sintaxe:
rundll32 printui.dll,PrintUIEntry /Xs /n\SERVER\PRINTERSHARENAMENome do motorista"Lexmark C752 PS3"
como não tinha o drivername, tentei executá-lo mesmo assim, pois o driver já está instalado na segunda caixa do Windows 10.
rundll32 printui.dll,PrintUIEntry /Xs /n"\tdr09\AlphaIT(prtq3) KONICA MINOLTA C550i"
Mas recebo um erro depois de executar o cmd:
================================================= =========================
[Título da janela] Impressoras
[Instrução Principal] Os argumentos são inválidos.
[OK]
================================================= =========================
Problema:
1)O cmdlet 1 não fornece oNome do motoristaportanto, o cmdlet 2 está falhando com o erro acima.
================================================= =====================
Método 2 Com base no feedback de @Massimo
Tentei usar o seguinte comando:
obter impressora | onde{$_.Name -like "\"} | Formato-Tabela -AutoSize insira a descrição da imagem aqui
A saída fica assim:
Nome ComputerName Tipo DriverName PortName Compartilhado Publicação
\trq02\AXEIT(ptq2) KONICA MINOLTA C550i ptq02 Conexão KONICA MINOLTA C650iSeries 10.246.0.173 True F...
Posso canalizá-lo para um arquivo de texto, mas como posso fazer o PowerShell ler esse arquivo e adicionar a impressora.
OBSERVAÇÃO:Se eu executar o seguinte cmd manualmente, a adição de impressora funcionará bem.
adicionar impressora "\trq02\AXEIT(ptq2) KONICA MINOLTA C550i"
Responder1
Por que você está se preocupando com WMI e rundll32?
Você deve usar os comandos nativos do PowerShell Get-Printer
e o Add-Printer
.
Exemplo:
No primeiro computador, use:
Get-Printer | where {$_.Type -eq 'Connection'} | Export-Csv -Path 'C:\Printers.csv'
Copie o arquivo para o segundo computador e use:
$printers = Import-Csv -Path 'C:\Printers.csv'
foreach($printer in $printers)
{
Add-Printer -ConnectionName ($printer.Name)
}