none
[Win7]WMIでリモートコンピューターのデフォルトプリンタは取得できない? RRS feed

  • 質問

  • お世話になります。

    Windows 7 Professionalのクライアント60台の「通常使うプリンター」を調査したく、Excel VBAからWMIを叩いています。

    Dim objWMIService As Object, colPrn As Object, objPrinter As Object
    
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colPrn = objWMIService.ExecQuery("Select * from Win32_Printer")
            
    For Each objPrinter In colPrn
                Selection.Value = objPrinter.Name
                If UCase(objPrinter.Default) = "TRUE" Then Selection.Interior.Color = RGB(255, 192, 192)
                Selection.Next.Select
    Next
    

    ローカルマシン(上記のスクリプトを実行しているマシン)のみ「通常使うプリンター」が正しく取得できているのですが、リモートマシンは、プリンタ名 objPrinter.Nameは正しく取得できるにも関わらず、objPrinter.Default は全て"False"を返してきます。

    objPrinter.Default プロパティの替わりに、(objPrinter.Attribute and 4)=4 も試してみたのですが、同様にローカルマシンは成功、リモートマシンは得られません。
    WMIやデフォルトプリンタについて、私は何か根本的に勘違いしているのでしょうか。
    ポインタだけでも結構ですので、ご教示いただけませんでしょうか。


    2013年7月27日 1:17