명령 줄에서 텍스트 파일로 프린터 나열


30

명령 줄에서 사용할 프린터 목록 및 매핑 된 경우 해당 위치를 텍스트 파일로 출력 할 수있는 명령이 있습니까? 아니면 명령 줄에서 실행할 수있는 프로그램입니까?

답변:


28

Windows XP에서 prntmngr을 사용하십시오.

PRNMNGR -l >> C:\printers.txt

Windows Vista 이상에서는 PowerShell을 사용하십시오.

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

참고 : 권한 및 PowerShell 생성 방법에 따라 Vista +에서 파일을 C : \에 쓰려고하면 오류가 발생할 수 있습니다.

Windows 2000의 경우 :

XP의 PrnMngr.vbs 파일 (/ Windows / System32 폴더에 있음)은 Windows 2000에서 작동합니다. XP 시스템에서 2000 시스템으로 파일을 찾아 복사하여 다음을 실행하십시오.

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

어떤 이유로 사용자의 데스크톱에서 실행되지 않는 것을 알았지 만 .VBS를 C의 루트에 복사하면 정상적으로 실행되었습니다.


아름답게 일했습니다!

17

나는 사용한다:

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

1
이것이 정답입니다.
제임스 드레이퍼

4

때로는 win7에서 PS를 사용하고 싶지 않습니다 (원격 PC의 백그라운드에서 관리 작업을 수행 할 수있는 응용 프로그램이 있지만 powershell을 사용하지는 않습니다). 언급 된 XP Visual Basic 스크립트는 Win7의 다음 폴더에 있습니다.

C:\Windows\System32\Printing_Admin_Scripts\en-US


1

참고 : Windows XP의 경우 먼저 기본 스크립트 호스트를 CScript로 변경하십시오.

C:\CScript //H:CScript

그렇지 않으면 그렇게하라는 메시지가 표시되고 printers.txt 파일이 비어있게됩니다.


0

그래서 이것은 내 해결책입니다.

;******************
;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

Powershell을 사용하십시오.

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


슈퍼 유저에 오신 것을 환영합니다. 이것보다 더 말할 수 있습니까? 이것이 기술적으로 답이라고 생각하지만 상상력에 많은 영향을 미치므로 고품질의 대답은 아닙니다.
Monica Monica Reinstate라고
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.