none
他のコンピュータにインストールされている共有プリンタ情報を取得 RRS feed

  • 質問

  • Get-WmiObject -Class Win32_Printer -ComputerName ****

    で自分のPCを設定すれば共有プリンタが表示されますが、

    他のPCの場合は、ローカルプリンタのみが表示され、共有のプリンタが表示されません。

    どのようにすれば、他のPCの共有プリンタの情報が取得できるのでしょうか。

    管理者権限で行ってもダメでした。


    2012年12月6日 0:11

すべての返信

  • あまり自信がありませんが…

    Get-WmiObject -Class Win32_Printer -ComputerName **** -Credential Administrator

    のように、他PC上で共有プリンタを追加したユーザー名とパスワードを指定した場合はどうでしょうか?

    2012年12月6日 6:55
    モデレータ
  • 情報ありがとうございます。

    ユーザー名とパスワードを指定しましたが、やはり共有のプリンタを表示させることは出来ませんでした。

    2012年12月6日 7:14
  • それでは、対象のPC上のPowerShellで

    Get-WmiObject -Class Win32_Printer

    を実行した場合は共有プリンタは表示されますでしょうか?

    もし表示されるなら、まず対象PC上でPSリモートを構成(Enable-PSRemoting)しておき、ローカル側PowerShellで

    Invoke-Command -ComputerName **** -ScriptBlock {Get-WmiObject -Class Win32_Printer}

    を実行することで同様の結果を得られるかと思います。


    2012年12月6日 7:31
    モデレータ
  • Invoke-Command -ComputerName **** -ScriptBlock {Get-WmiObject -Class Win32_Printer}
    教えていただいた上記コマンドを試してみましたが、共有プリンタの情報を得ることはできませんでした。
    ローカルプリンタのみ表示されます。

    仮説ですが、原因としてはコンピュータの情報を取得できる権限は持っているものの、共有プリンタの情報はアカウント単位で保持しているため、取得出来ないのでは?と考えております。
    コンピュータ名だけでなく、(ログイン先の)アカウントまで指定することが出来れば共有プリンタの情報を取得できるのでは?と考えております。
    2012年12月6日 8:54
  • 私もおそらくそれが原因だと思っています。しかし最初にご提示した

    Get-WmiObject -Class Win32_Printer -ComputerName **** -Credential Administrator

    というコードはまさにログイン先のアカウントを指定したものであったので、これでも動作しないということで二つ目のご提案をさせていただきました。

    二つ目のInvoke-Commandコマンドレットを利用したものでも同様に-Credentialパラメータを指定することで、任意のアカウントで対象PC上でコマンドを実行可能ですので、念のためにこちらもお試しください。

    コマンドとしては以下のようになります。

    Invoke-Command -ComputerName **** -ScriptBlock {Get-WmiObject -Class Win32_Printer} -Credential Administrator

    2012年12月6日 11:16
    モデレータ
  • 牟田様

    何度も返信いただき、ありがとうございます。

    ご提案通りのコマンドを試してみましたが、やはりローカルのプリンタのみの表示でした。

    これも仮設ではありますが、「-Credential」は接続元の資格情報であって、接続先の対象アカウントとは別では?と考えています。

    たとえば、-ComputerName の部分でExampleComputer\ExampleUserみたいな設定があれば、見に行けそうな気がしますが、

    そのような設定を探しておりますが見当たりません。

    2012年12月6日 11:40
  • -Credentialは接続先アカウントで間違いないと思うのですが、アカウントの指定が間違っているということはありませんでしょうか?

    ドメインユーザーなら-Credential domain\userという形で指定することになります。

    自前の環境(Windows Server 2012)で試しにネットワークプリンタを追加し、そのコンピュータとユーザーアカウントを指定してWindows 7からリモート接続した場合、DCOM経由(Get-WmiObject)でもWinRM経由(Invoke-Command)どちらでも正常に追加したネットワークプリンタが表示されました。

    2012年12月6日 12:06
    モデレータ
  • 牟田口様

    わざわざ自前の環境にもプリンタをインストールしていただく等、ありがとうございます。

    その設定していただいた、ネットワークプリンタは共有プリンタ(プリントサーバー経由)でしょうか。

    当方の環境では、プリンタ名が「\\ホスト名\プリンタ名」のプリンタが表示されません。

    ネットワークプリンタでも直接PCにインストールしている場合であれば、表示されます。

    以上、報告まで。

    2012年12月10日 1:38