2010-04-28 02:47:03 +0000 2010-04-28 02:47:03 +0000
30
30

Drucker von der Kommandozeile in eine Textdatei auflisten

Gibt es einen Befehl, der von der Kommandozeile aus verwendet werden kann, um eine Liste der installierten Drucker und deren Standort, falls zugeordnet, in eine Textdatei auszugeben? Oder vielleicht ein Programm, das ich von der Kommandozeile aus starten kann, das dies tun würde?

Antworten (7)

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

Unter Windows XP verwenden Sie prntmngr:

PRNMNGR -l >> C:\printers.txt

Unter Windows Vista und höher verwenden Sie PowerShell:

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

Hinweis: Sie erhalten möglicherweise einen Fehler, wenn Sie versuchen, die Datei unter Vista+ nach C:\ zu schreiben, abhängig von Ihren Rechten und davon, wie PowerShell gestartet wurde.

Für Windows 2000:

Die Datei “PrnMngr.vbs” von XP (die sich im Ordner “/Windows/System32” befindet) funktioniert auch unter Windows 2000. Suchen Sie sie einfach, kopieren Sie sie von einem XP-Rechner auf den 2000er und führen Sie sie mit aus:

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

Ich habe festgestellt, dass es aus irgendeinem Grund nicht vom Desktop meines Benutzers aus laufen würde, aber als ich die .VBS in das Stammverzeichnis von C: kopiert habe, lief es einwandfrei.

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

Ich verwende:

wmic printer list brief

OR

wmic printer get name

Dies zeigt nur eine kurze Liste von Druckern an, die an das System angeschlossen sind, auf dem Sie den Befehl ausführen. Es wird auch angezeigt, an welchen Computer ein Drucker angeschlossen ist, wenn es sich um einen Netzwerkdrucker handelt.

Sie können dies auch verwenden, um eine sehr detaillierte Liste der Konfiguration für jeden auf einem System installierten Drucker zu erhalten:

wmic printer list full

Um sie in eine Textdatei auszugeben, hängen Sie dies an das Ende des Befehls an:

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

Beispiel:

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

Manchmal möchte man PS in Win7 nicht verwenden (ich habe eine Anwendung, mit der ich administrative Arbeiten im Hintergrund auf Remote-PCs durchführen kann, aber sie verwendet keine Powershell). Die erwähnten XP-Visual-Basic-Skripte finden Sie für Win7 im folgenden Ordner:

C:\Windows\System32\Printing_Admin_Scripts\en-US
2
2
2
2016-08-03 19:56:20 +0000

Ab Windows 8 / Server 2012 gibt es ein get-printer PowerShell-Cmdlet: https://technet.microsoft.com/en-us/library/hh918358%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396

1
1
1
2013-03-08 17:19:12 +0000

Hinweis: Stellen Sie bei Windows XP sicher, dass Sie zuerst den Standard-Skript-Host in CScript ändern

C:\CScript //H:CScript

, sonst erhalten Sie eine Meldung, die Sie dazu auffordert, und Ihre Datei “printers.txt” ist leer.

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

Verwenden Sie Powershell.

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

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

Daher ist dies meine Lösung:

; ******************
;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