Listar impressoras da linha de comando para o arquivo de texto


30

Existe um comando que pode ser usado na linha de comando para gerar uma lista das impressoras instaladas e sua localização, se mapeadas, em um arquivo de texto? Ou talvez um programa que eu possa executar a partir da linha de comando que faria isso?

Respostas:


28

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.


Trabalhou lindamente!

17

Eu uso:

wmic printer list brief

OU

wmic printer get name

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:

wmic printer list full

Para enviá-lo para um arquivo de texto, adicione-o ao final do comando:

 >>"[directory]\[filename].txt"

Exemplo:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt

1
Essa deve ser a resposta aceita.
James Draper

4

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

C:\Windows\System32\Printing_Admin_Scripts\en-US


1

Nota: No Windows XP, altere o host de script padrão para CScript primeiro

C:\CScript //H:CScript

caso contrário, você receberá uma mensagem pedindo para fazer isso e o arquivo printers.txt ficará em branco.


0

então esta é a minha solução:

;******************
;ALLOCATING CONSOLE
;******************
; cmd calls hidden

global cPid
DetectHiddenWindows, on
Run, %comspec% /k ,,Hide UseErrorLevel,cPid
WinWait, ahk_pid %cPid%,, 1
DllCall("AttachConsole","uint",cPid)
hCon:=DllCall("CreateFile","str","CONOUT$","uint",0xC0000000,"uint",7,"uint",0,"uint",3,"uint",0,"uint",0)


;******* GET PRINTER NAMES **********

AllPrintersNameClearArray := strSplit(StrReplace(StrReplace(StrReplace(StrReplace("|" StrReplace(StrReplace(StrReplace(RunWaitOne("wmic printer get name"),"  ","")," `r",""),"`r",""),"|NAME`n",""),"`n","|"),"||","",All),"|","`n"),"`n")

RunWaitOne(command) {

    objShell := ComObjCreate("WScript.Shell")
    objExec := objShell.Exec(command)
    strStdOut := ""
    while, !objExec.StdOut.AtEndOfStream
    strStdOut := objExec.StdOut.ReadAll()
    return %strStdOut%
}

; **** Clean at the end *****

Finish:
DllCall("CloseHandle", "uint", hCon)
DllCall("FreeConsole")
Process, Close, %cPid%
ExitApp
return

0

Use o PowerShell.

[System.Drawing.Printing.PrinterSettings]::InstalledPrinters


Bem-vindo ao superusuário. Você pode dizer algo mais do que isso? Enquanto eu acho que isso é tecnicamente uma resposta, deixa muito para a imaginação e, como tal, não é uma resposta de alta qualidade.
Eu digo Restabelecer Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.