Permintaan WMI Win32_TCPIPPrinterPort kosong

Saat saya menanyakan WMI (dengan metode apa pun sejauh ini) untuk printer:

select * from Win32_Printer

Saya mendapatkan hasil yang normal. Saat saya mencoba menanyakan port:

select * from Win32_TCPIPPrinterPort

kueri "berhasil" tetapi saya tidak mendapatkan hasil. Ada lebih dari 100 port di server ini, tetapi prnport.vbs, wbemtest, PowerShell, atau kode saya sendiri tidak mendapatkan hasil apa pun.

Sistem operasi di 2003R2 dan pengguna memiliki privasi admin.


person user2483403    schedule 21.01.2015    source sumber
comment
Dimana pertanyaannya: apakah ada layanan yang dapat diandalkan? Apa yang memasok informasi pelabuhan lokal? Apa jawaban atas pertanyaan WMI? Semua ini dapat mengarah pada sumber masalahnya! Ide ide?   -  person user2483403    schedule 25.01.2015


Jawaban (2)


Ternyata port lokal (dan akibatnya dialihkan lokal seperti ghostscript dll) TIDAK terdaftar oleh permintaan WMI ini. Mereka disimpan langsung di registri. Ini berarti skrip normal untuk memigrasikan parameter printer ini akan mendapatkan printer tetapi tidak mendapatkan informasi port.

Mereka disimpan di: HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Redirected Port\Ports

Hidup dan belajar.

person user2483403    schedule 28.01.2015

Saya memiliki beberapa server cetak dengan banyak antrian dan mereka berjalan pada MS Windows 2003. Saya memerlukan konfigurasi port juga. Yaitu antrian dan protokol. Saya menyarangkan perintah berikut di loop foreach saya dan saya bisa mendapatkan data yang saya butuhkan:

$PrintQueue = (Get-ItemProperty -Path Registry::"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\$Queue" -Name Queue).Queue

$Protocol = (Get-ItemProperty -Path Registry::"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\$Queue" -Name Protocol).Protocol

Variabel $Queue dalam string jalur di atas adalah variabel antrian cetak di loop foreach saya. Ubahlah menjadi nama Print Queue sesuai kebutuhan atau atur variabel tadi pada kode.

Saya juga mengalami antrian cetak yang tidak memiliki nilai Antrean yang ditetapkan, jadi saya menambahkan pernyataan if untuk menetapkannya, yang saya perlukan untuk memasukkan data ini ke skrip lain yang menginstal antrian cetak di server 2012R2.

if($PrintQueue = $null){
    $PrintQueue = 'Print'
    }#if

Semoga ini membantu.

person Ryan Lopez    schedule 02.02.2015