No Windows XP, use prntmngr:
PRNMNGR -l >> C:\printers.txt
No Windows Vista e além, use o PowerShell:
get-WmiObject -class Win32_printer | ft name, systemName, shareName >> c:\printers.txt
Nota: Você PODE receber um erro se tentar gravar o arquivo em C: \ no Vista +, dependendo dos seus direitos e de como o PowerShell foi gerado.
Para o Windows 2000:
O arquivo PrnMngr.vbs do XP (localizado na pasta / Windows / System32) funciona no Windows 2000. Apenas localize e copie-o para a máquina 2000 de uma máquina XP e execute-o com:
cscript prnmngr.vbs -l >> c:\printers.txt
Eu descobri que não seria executado na área de trabalho do meu usuário por algum motivo, mas quando copiei o .VBS para a raiz do C: ele funcionou bem.
Eu uso:
OU
Isso mostra apenas uma pequena lista de impressoras conectadas ao sistema em que você executa o comando. Também mostrará a que computador uma impressora está conectada se houver uma impressora de rede.
Você também pode usar isso para obter uma lista muito detalhada de configuração para cada impressora instalada em um sistema:
Para enviá-lo para um arquivo de texto, adicione-o ao final do comando:
Exemplo:
fonte
Às vezes, você não deseja usar o PS no win7 (eu tenho um aplicativo que me permite fazer trabalhos administrativos em segundo plano em PCs remotos, mas não usa o PowerShell). Os scripts do Visual Basic XP mencionados podem ser encontrados na seguinte pasta do Win7:
fonte
A partir do Windows 8 / Server 2012, existe um
get-printer
cmdlet do PowerShell:https://technet.microsoft.com/en-us/library/hh918358%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396
fonte
Nota: No Windows XP, altere o host de script padrão para CScript primeiro
caso contrário, você receberá uma mensagem pedindo para fazer isso e o arquivo printers.txt ficará em branco.
fonte
então esta é a minha solução:
fonte
Use o PowerShell.
[System.Drawing.Printing.PrinterSettings]::InstalledPrinters
fonte