Wyświetl listę drukarek z wiersza polecenia do pliku tekstowego

30

Czy istnieje polecenie, którego można użyć z wiersza polecenia, aby wyświetlić listę zainstalowanych drukarek i ich lokalizację, jeśli jest mapowana, do pliku tekstowego? A może program, który mogę uruchomić z wiersza poleceń, który by to zrobił?

Der Hochstapler
źródło

Odpowiedzi:

28

W Windows XP użyj prntmngr:

PRNMNGR -l >> C:\printers.txt

W systemie Windows Vista i nowszym użyj programu PowerShell:

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

Uwaga: Mógł wystąpić błąd, jeśli spróbujesz zapisać plik w C: \ na Vista +, w zależności od twoich praw i tego, jak powstał PowerShell.

W systemie Windows 2000:

Plik PrnMngr.vbs z XP (znajdujący się w folderze / Windows / System32) działa w systemie Windows 2000. Po prostu znajdź i skopiuj go na komputer 2000 z komputera XP i uruchom go za pomocą:

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

Odkryłem, że z jakiegoś powodu nie będzie działał z pulpitu użytkownika, ale kiedy skopiowałem plik .VBS do katalogu głównego C: działał dobrze.

Wesley
źródło
Działało pięknie!
17

Używam:

wmic printer list brief

LUB

wmic printer get name

To pokazuje tylko krótką listę drukarek podłączonych do systemu, na którym uruchomiono polecenie. Pokaże także, do jakiego komputera podłączona jest drukarka, jeśli jest drukarka sieciowa.

Możesz także użyć tego, aby uzyskać bardzo szczegółową listę konfiguracji dla każdej drukarki zainstalowanej w systemie:

wmic printer list full

Aby wyprowadzić go do pliku tekstowego, dołącz go na końcu polecenia:

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

Przykład:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt
Matt Stoddard
źródło
1
To powinna być zaakceptowana odpowiedź.
James Draper,
4

Czasami nie chcesz używać PS w win7 (mam aplikację, która pozwala mi wykonywać prace administracyjne w tle na zdalnych komputerach, ale nie używa PowerShell). Wspomniane skrypty Visual Basic XP można znaleźć w następującym folderze dla Win7:

C:\Windows\System32\Printing_Admin_Scripts\en-US
Andrzej
źródło
1

Uwaga: W systemie Windows XP najpierw należy zmienić domyślnego hosta skryptów na CScript

C:\CScript //H:CScript

w przeciwnym razie otrzymasz komunikat z informacją, że to zrobisz, a plik printers.txt będzie pusty.

cls
źródło
0

to jest moje rozwiązanie:

;******************
;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
źródło
0

Użyj PowerShell.

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

stomia
źródło
Witamy w Super User. Czy możesz powiedzieć coś więcej? Chociaż myślę, że jest to technicznie odpowiedź, pozostawia wiele wyobraźni i jako taka nie jest odpowiedzią wysokiej jakości.
Mówię: Przywróć Monikę