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

Lista drukarek z wiersza poleceń do pliku tekstowego

Czy istnieje polecenie, które może być użyte z wiersza poleceń, aby wyprowadzić listę zainstalowanych drukarek i ich lokalizacji, jeśli są zmapowane, do pliku tekstowego? A może program, który mogę uruchomić z wiersza poleceń, który by to zrobił?

Odpowiedzi (7)

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

W Windows XP użyj prntmngr:

PRNMNGR -l >> C:\printers.txt

W Windows Vista i nowszych, użyj PowerShell:

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

Uwaga: Możesz otrzymać błąd, jeśli spróbujesz zapisać plik do C:\ na Vista+, w zależności od Twoich praw i sposobu, w jaki PowerShell został wywołany.

Dla Windows 2000:

Plik PrnMngr.vbs z XP (znajdujący się w folderze /Windows/System32) działa w Windows 2000. Wystarczy znaleźć i skopiować go na maszynę 2000 z maszyny XP i uruchomić go z:

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

Znalazłem, że z jakiegoś powodu nie chciał się uruchomić z pulpitu mojego użytkownika, ale kiedy skopiowałem .VBS do katalogu głównego C:, działał dobrze.

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

Używam:

wmic printer list brief

OR

wmic printer get name

To tylko pokazuje krótką listę drukarek podłączonych do systemu, na którym uruchamiasz polecenie. Pokazuje również, do jakiego komputera podłączona jest drukarka, jeśli jest to drukarka sieciowa.

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

wmic printer list full

Aby wypisać ją do pliku tekstowego, dodaj to na końcu polecenia:

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

Przykład:

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

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 powershella). Wspomniane skrypty XP visual basic można znaleźć w następującym folderze dla Win7:

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

Począwszy od Windows 8 / Server 2012, istnieje get-printer cmdlet PowerShell: 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

Uwaga: Dla Windows XP, upewnij się, że zmieniłeś domyślnego hosta skryptu na CScript najpierw

C:\CScript //H:CScript

w przeciwnym razie otrzymasz komunikat informujący Cię o tym, a Twój plik printers.txt będzie pusty.

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

Użyj Powershell.

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

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

więc 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