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ł?

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.


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

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


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.


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

0

Użyj PowerShell.

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


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ę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.