Apakah ada perintah yang dapat digunakan dari baris perintah untuk menampilkan daftar printer yang diinstal dan lokasinya, jika dipetakan, ke file teks? Atau mungkin program yang dapat saya jalankan dari baris perintah yang akan melakukan ini?
Apakah ada perintah yang dapat digunakan dari baris perintah untuk menampilkan daftar printer yang diinstal dan lokasinya, jika dipetakan, ke file teks? Atau mungkin program yang dapat saya jalankan dari baris perintah yang akan melakukan ini?
Jawaban:
Di Windows XP gunakan prntmngr:
PRNMNGR -l >> C:\printers.txt
Di Windows Vista dan sekitarnya, gunakan PowerShell:
get-WmiObject -class Win32_printer | ft name, systemName, shareName >> c:\printers.txt
Catatan: Anda DAPAT mendapatkan kesalahan jika Anda mencoba menulis file ke C: \ on Vista +, tergantung pada hak Anda, dan bagaimana PowerShell dilahirkan.
Untuk Windows 2000:
File PrnMngr.vbs dari XP (terletak di folder / Windows / System32) berfungsi pada Windows 2000. Temukan dan salin ke mesin 2000 dari mesin XP dan jalankan dengan:
cscript prnmngr.vbs -l >> c:\printers.txt
Saya menemukan itu tidak akan berjalan dari desktop pengguna saya untuk beberapa alasan, tetapi ketika saya menyalin .VBS ke root C: itu berjalan dengan baik.
Saya menggunakan:
wmic printer list brief
ATAU
wmic printer get name
Ini hanya menunjukkan daftar pendek printer yang terpasang pada sistem tempat Anda menjalankan perintah. Ini juga akan menunjukkan komputer apa yang terhubung dengan printer jika ada printer jaringan.
Anda juga dapat menggunakan ini untuk mendapatkan daftar konfigurasi yang sangat terperinci untuk setiap printer yang diinstal pada sistem:
wmic printer list full
Untuk menampilkannya ke file teks, tambahkan ini ke akhir perintah:
>>"[directory]\[filename].txt"
Contoh:
wmic printer list brief >> c:\users\admin\documents\printerlist.txt
Kadang-kadang Anda tidak ingin menggunakan PS di win7 (Saya memiliki aplikasi yang memungkinkan saya melakukan pekerjaan administratif di latar belakang pada PC jarak jauh, tetapi tidak menggunakan PowerShell). Skrip visual basic XP yang disebutkan dapat ditemukan di folder berikut untuk Win7:
C:\Windows\System32\Printing_Admin_Scripts\en-US
Dimulai dengan Windows 8 / Server 2012, ada get-printer
cmdlet PowerShell:
https://technet.microsoft.com/en-us/library/hh918358%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396
jadi ini solusi saya:
;******************
;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
Gunakan Powershell.
[System.Drawing.Printing.PrinterSettings]::InstalledPrinters