Вывод списка принтеров из командной строки в текстовый файл

есть ли команда, которая может быть использована из командной строки для вывода списка установленных принтеров и их местоположения, если они сопоставлены, в текстовый файл? Или, возможно, программа, которую я могу запустить из командной строки, Что бы сделать это?

22
задан Der Hochstapler
21.03.2023 4:49 Количество просмотров материала 3035
Распечатать страницу

6 ответов

в Windows XP используйте prntmngr:

PRNMNGR -l >> C:\printers.txt

В Windows Vista и не только, используйте PowerShell:

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

Примечание. при попытке записи файла в C:\ в Vista+ может возникнуть ошибка, зависящая от ваших прав и способа создания PowerShell.

Для Windows 2000:

PrnMngr.vbs файл из XP (расположенный в папке/Windows / System32) работает на Windows 2000. Просто найдите и скопируйте его на машину 2000 с машины XP и запустите это:

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

я обнаружил, что он не будет работать с рабочего стола моего пользователя по какой-то причине, но когда я скопировал .VBS к корню C: он работал нормально.

25
отвечен Wesley 2023-03-22 12:37

я использую:

wmic printer list brief

или

wmic printer get name

это просто показывает короткий список принтеров, подключенных к системе, в которой вы запускаете команду. Он также покажет, к какому компьютеру подключен принтер, если есть сетевой принтер.

вы также можете использовать это, чтобы получить очень подробный список конфигурации для каждого принтера установленного в системе:

wmic printer list full

чтобы вывести его в текстовый файл, добавьте его в конец команда:

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

пример:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt
11
отвечен Matt Stoddard 2023-03-22 14:54

иногда вы не хотите использовать PS в win7 (у меня есть приложение, которое позволяет мне выполнять административную работу в фоновом режиме на удаленных компьютерах, но оно не использует powershell). Упомянутые скрипты XP visual basic можно найти в следующей папке для Win7:

C:\Windows\System32\Printing_Admin_Scripts\en-US
4
отвечен Andrew 2023-03-22 17:11

Примечание: Для Windows XP, не забудьте изменить хост сценария по умолчанию на CScript first

C:\CScript //H:CScript

в противном случае вы получите сообщение, говорящее вам сделать это и ваши принтеры.txt-файл будет пустым.

1
отвечен cls 2023-03-22 19:28

начиная с Windows 8 / Server 2012, есть это get-printer командлет PowerShell:

https://technet.microsoft.com/en-us/library/hh918358%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396

1
отвечен hmqcnoesy 2023-03-22 21:45

Так вот мое решение:

;******************
;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
отвечен Rightcelebrator 2023-03-23 00:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх