Usuario del software
2010-04-28 02:47:03 +0000 2010-04-28 02:47:03 +0000

Respuestas [7]

28
2010-04-28 03:18:35 +0000

En Windows XP utilice prntmngr:

PRNMNGR -l >> C:\printers.txt

En Windows Vista y posteriores, utilice 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 haya generado PowerShell.

Para Windows 2000:

El archivo PrnMngr.vbs de XP (ubicado en la carpeta /Windows/System32) funciona en Windows 2000. Sólo hay que buscarlo y copiarlo a la máquina 2000 desde una máquina XP y ejecutarlo con:

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

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

28
18
2017-05-11 18:44:28 +0000

Yo uso:

wmic printer list brief

O

wmic printer get name

Esto sólo muestra una breve lista de impresoras conectadas al sistema en el que ejecutas el comando. También mostrará a qué ordenador está conectada una impresora si hay una impresora de red.

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

wmic printer list full

Para enviarla a un archivo de texto, añada esto al final del comando:

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

Ejemplo:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt
18
4
2014-04-16 14:09:17 +0000

A veces no quieres usar PS en win7 (tengo una aplicación que me permite hacer trabajo administrativo en segundo plano en PCs remotos, pero no usa powershell). Los scripts de visual basic de XP mencionados se encuentran en la siguiente carpeta para Win7:

C:\Windows\System32\Printing_Admin_Scripts\en-US
4
1
2013-03-08 17:19:12 +0000

Nota: En el caso de Windows XP, asegúrese de cambiar primero el host de script por defecto 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.

1
0
2019-04-17 19:50:16 +0000

Usa Powershell.

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

0
0
2018-07-06 15:48:07 +0000

así que 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
0