Bagikan melalui


Tugas WMI: Printer dan Pencetakan

Tugas WMI untuk printer dan pencetakan mengelola dan mendapatkan data tentang printer, seperti menemukan atau mengatur printer default. Untuk contoh lain, lihat TechNet ScriptCenter di https://www.microsoft.com/technet.

Contoh skrip yang ditampilkan dalam topik ini hanya mendapatkan data dari komputer lokal. Untuk informasi selengkapnya tentang cara menggunakan skrip untuk mendapatkan data dari komputer jarak jauh, lihat Menyambungkan ke WMI di Komputer Jarak Jauh.

Prosedur berikut menjelaskan cara menjalankan skrip.

Untuk menjalankan skrip

  1. Salin kode dan simpan dalam file dengan ekstensi .vbs, seperti filename.vbs. Pastikan editor teks Anda tidak menambahkan ekstensi .txt ke file.
  2. Buka jendela prompt perintah dan navigasikan ke direktori tempat Anda menyimpan file.
  3. Ketik filename.vbscscript pada prompt perintah.
  4. Jika Anda tidak dapat mengakses log peristiwa, periksa untuk melihat apakah Anda menjalankan dari prompt perintah Yang ditingkatkan. Beberapa Log Peristiwa, seperti Log Peristiwa Keamanan, dapat dilindungi oleh Kontrol Akses Pengguna (UAC).

Catatan

Secara default, cscript menampilkan output skrip di jendela prompt perintah. Karena skrip WMI dapat menghasilkan output dalam jumlah besar, Anda mungkin ingin mengalihkan output ke file. Ketik filename.vbs > cscript outfile.txt pada prompt perintah untuk mengalihkan output skrip filename.vbs ke outfile.txt.

Tabel berikut ini mencantumkan contoh skrip yang bisa digunakan untuk mendapatkan berbagai jenis data dari komputer lokal.

Bagaimana Caranya... Kelas atau metode WMI
... tambah sambungan pencetak baru ke komputer jarak jauh? Gunakan kelas Win32_Printer dan metode AddPrinterConnection .
VB
strComputer = "atl-ws-01"
Set objWMIService = GetObject( "winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2")
Set objPrinter = objWMIService.Get("Win32_Printer")
errReturn = objPrinter.AddPrinterConnection ("\\PrintServer1\ArtDepartmentPrinter")
... setel pencetak default?

Gunakan kelas Win32_Printer dan metode SetDefaultPrinter .

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
For Each objPrinter in colInstalledPrinters
    objPrinter.SetDefaultPrinter()
Next
PowerShell
$printerName = "\\ServerName\ShareName"
$printer = get-wmiObject -class win32_printer -Namespace $namespace | Where-Object { $_.Name -eq $printerName }
[void]$printer.setDefaultPrinter()
... membatalkan pekerjaan cetak menggunakan WMI?

Gunakan kelas Win32_Printer , dan metode CancelAllJobs .

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrintJobs =  objWMIService.ExecQuery ("Select * from Win32_Printer")
For Each objPrintJob in colPrintJobs 
    objPrintJob.CancelAllJobs
Next
PowerShell
$result = (get-wmiObject -class win32_printer -Namespace "root\cimv2").CancelAllJobs()
... tentukan pencetak default untuk komputer?

Gunakan kelas Win32_Printer , dan periksa apakah properti Default adalah True.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer Where Default = True")
For Each objPrinter in colInstalledPrinters
    Wscript.Echo objPrinter.Name
Next
PowerShell
get-wmiObject -class win32_printer -Namespace "root\cimv2" | where-object { $_.Default -eq 'True' }

Tugas WMI untuk Skrip dan Aplikasi

Contoh Aplikasi WMI C++

TechNet ScriptCenter