Enumerar impresoras desde la línea de comandos hasta el archivo de texto

30

¿Existe un comando que se pueda usar desde la línea de comando para generar una lista de las impresoras instaladas y su ubicación, si está asignada, a un archivo de texto? ¿O tal vez un programa que pueda ejecutar desde la línea de comandos que haría esto?

Der Hochstapler
fuente

Respuestas:

28

En Windows XP use prntmngr:

PRNMNGR -l >> C:\printers.txt

En Windows Vista y más allá, use PowerShell:

get-WmiObject -class Win32_printer | ft name, systemName, shareName >> c:\printers.txt

Nota: PUEDE obtener un error si intenta escribir el archivo en C: \ en Vista +, dependiendo de sus derechos y de cómo se generó PowerShell.

Para Windows 2000:

El archivo PrnMngr.vbs de XP (ubicado en la carpeta / Windows / System32) funciona en Windows 2000. Simplemente búsquelo y cópielo en la máquina 2000 desde una máquina XP y ejecútelo con:

cscript prnmngr.vbs -l >> c:\printers.txt

Descubrí que no se ejecutaba desde el escritorio de mi usuario por alguna razón, pero cuando copié el .VBS en la raíz de C: funcionó bien.

Wesley
fuente
Funcionó muy bien!
17

Yo suelo:

wmic printer list brief

O

wmic printer get name

Esto solo muestra una breve lista de impresoras conectadas al sistema en el que ejecuta el comando. También mostrará a qué computadora está conectada una impresora si hay una impresora de red.

También puede usar esto para obtener una lista muy detallada de la configuración de cada impresora instalada en un sistema:

wmic printer list full

Para enviarlo a un archivo de texto, agregue esto al final del comando:

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

Ejemplo:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt
Matt Stoddard
fuente
1
Esta debería ser la respuesta aceptada.
James Draper
4

A veces no quieres usar PS en win7 (tengo una aplicación que me permite hacer trabajo administrativo en segundo plano en PC remotas, pero no usa powershell). Los scripts básicos visuales XP mencionados se pueden encontrar en la siguiente carpeta para Win7:

C:\Windows\System32\Printing_Admin_Scripts\en-US
Andrés
fuente
1

Nota: Para Windows XP, asegúrese de cambiar primero el host de script predeterminado a CScript

C:\CScript //H:CScript

de lo contrario, recibirá un mensaje indicándole que lo haga y su archivo printers.txt estará en blanco.

cls
fuente
0

entonces esta es mi solución:

;******************
;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
Rightcelebrator
fuente
0

Utiliza Powershell.

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

estomoso
fuente
Bienvenido a Super User. ¿Puedes decir algo más que esto? Si bien creo que esto es técnicamente una respuesta, deja mucho a la imaginación y, como tal, no es una respuesta de alta calidad.
Digo reinstalar a Mónica el