есть ли команда, которая может быть использована из командной строки для вывода списка установленных принтеров и их местоположения, если они сопоставлены, в текстовый файл? Или, возможно, программа, которую я могу запустить из командной строки, Что бы сделать это?
Вывод списка принтеров из командной строки в текстовый файл
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: он работал нормально.
я использую:
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
иногда вы не хотите использовать PS в win7 (у меня есть приложение, которое позволяет мне выполнять административную работу в фоновом режиме на удаленных компьютерах, но оно не использует powershell). Упомянутые скрипты XP visual basic можно найти в следующей папке для Win7:
C:\Windows\System32\Printing_Admin_Scripts\en-US
Примечание: Для Windows XP, не забудьте изменить хост сценария по умолчанию на CScript first
C:\CScript //H:CScript
в противном случае вы получите сообщение, говорящее вам сделать это и ваши принтеры.txt-файл будет пустым.
начиная с Windows 8 / Server 2012, есть это get-printer
командлет PowerShell:
https://technet.microsoft.com/en-us/library/hh918358%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396
Так вот мое решение:
;******************
;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
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]