Yazıcıları komut satırından metin dosyasına listeleme


30

Yüklü olan yazıcıların bir listesini ve haritalanmışsa konumlarını bir metin dosyasına vermek için komut satırından kullanılabilecek bir komut var mı? Ya da belki bunu yapacak olan komut satırından çalıştırabileceğim bir program?

Yanıtlar:


28

Windows XP'de prntmngr kullanın:

PRNMNGR -l >> C:\printers.txt

Windows Vista ve ötesinde, PowerShell'i kullanın:

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

Not: Dosyalarınızı Vista + 'daki C: \' e, kendi haklarınıza ve PowerShell'in nasıl üretildiğine bağlı olarak yazmaya çalışırsanız, bir hata alabilirsiniz.

Windows 2000 için:

XP'deki PrnMngr.vbs dosyası (/ / Windows / System32 klasöründe bulunur), Windows 2000'de çalışır. Sadece bir XP makinesinden 2000 makineyi bulup kopyalayın ve şunu çalıştırın:

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

Bir sebepten dolayı kullanıcının masaüstünden çalıştırılmayacağını gördüm, ancak .VBS'yi C'nin köküne kopyaladığımda: gayet iyi yürüdü.


Güzel çalıştı!

17

Kullanırım:

wmic printer list brief

VEYA

wmic printer get name

Bu sadece komutu çalıştırdığınız sisteme bağlı yazıcının kısa bir listesini gösterir. Ayrıca bir ağ yazıcısı varsa yazıcının hangi bilgisayara bağlı olduğunu da gösterir.

Bunu, bir sistemde yüklü her yazıcı için çok ayrıntılı bir yapılandırma listesi almak için de kullanabilirsiniz:

wmic printer list full

Bir metin dosyasına yazdırmak için, bunu komutun sonuna ekleyin:

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

Örnek:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt

1
Bu kabul edilen cevap olmalı.
James Draper,

4

Bazen PS'yi win7'de kullanmak istemezsiniz (uzaktaki bilgisayarlarda arka planda idari işler yapmama izin veren bir uygulamam var, ancak powershell kullanmıyor). Bahsedilen XP visual basic scriptleri Win7 için aşağıdaki klasörde bulunabilir:

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


1

Not: Windows XP'de, önce varsayılan komut dosyası sunucusunu CScript olarak değiştirdiğinizden emin olun.

C:\CScript //H:CScript

Aksi halde, bunu yapmanız gerektiğini söyleyen bir mesaj alacaksınız ve printers.txt dosyanız boş olacaktır.


0

öyleyse bu benim çözümüm:

;******************
;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 kullanın.

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


Süper Kullanana Hoşgeldiniz. Bundan daha fazla bir şey söyleyebilir misin? Bunun teknik olarak bir cevap olduğunu düşünmeme rağmen, hayal gücüne çok şey bırakıyor ve bu yüzden yüksek kaliteli bir cevap değil.
Ben Reinstate Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.