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


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.