コマンドラインからテキストファイルへのプリンターの一覧表示


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

注:ファイルをVista +のC:\に書き込もうとすると、権限とPowerShellの生成方法に応じてエラーが発生する場合があります。

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


スーパーユーザーへようこそ。これ以上何か言えますか?これは技術的には答えだと思いますが、想像力に大きく左右されるため、質の高い答えではありません。
私は、モニカを
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.