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

質問
-
Get-WmiObject -Class Win32_Printer -ComputerName ****
で自分のPCを設定すれば共有プリンタが表示されますが、
他のPCの場合は、ローカルプリンタのみが表示され、共有のプリンタが表示されません。
どのようにすれば、他のPCの共有プリンタの情報が取得できるのでしょうか。
管理者権限で行ってもダメでした。
- 編集済み UltraKatan 2012年12月6日 3:31
すべての返信
-
-
Invoke-Command -ComputerName **** -ScriptBlock {Get-WmiObject -Class Win32_Printer}
教えていただいた上記コマンドを試してみましたが、共有プリンタの情報を得ることはできませんでした。
ローカルプリンタのみ表示されます。
仮説ですが、原因としてはコンピュータの情報を取得できる権限は持っているものの、共有プリンタの情報はアカウント単位で保持しているため、取得出来ないのでは?と考えております。
コンピュータ名だけでなく、(ログイン先の)アカウントまで指定することが出来れば共有プリンタの情報を取得できるのでは?と考えております。 -
私もおそらくそれが原因だと思っています。しかし最初にご提示した
Get-WmiObject -Class Win32_Printer -ComputerName **** -Credential Administrator
というコードはまさにログイン先のアカウントを指定したものであったので、これでも動作しないということで二つ目のご提案をさせていただきました。
二つ目のInvoke-Commandコマンドレットを利用したものでも同様に-Credentialパラメータを指定することで、任意のアカウントで対象PC上でコマンドを実行可能ですので、念のためにこちらもお試しください。
コマンドとしては以下のようになります。
Invoke-Command -ComputerName **** -ScriptBlock {Get-WmiObject -Class Win32_Printer} -Credential Administrator
-
-Credentialは接続先アカウントで間違いないと思うのですが、アカウントの指定が間違っているということはありませんでしょうか?
ドメインユーザーなら-Credential domain\userという形で指定することになります。
自前の環境(Windows Server 2012)で試しにネットワークプリンタを追加し、そのコンピュータとユーザーアカウントを指定してWindows 7からリモート接続した場合、DCOM経由(Get-WmiObject)でもWinRM経由(Invoke-Command)どちらでも正常に追加したネットワークプリンタが表示されました。