2016-12-16 20 views
0

PowerShellのプリントサーバーの一覧(または必要に応じてラップネイティブcmdコマンド)にすべてのプリンタキューをリストしたいとします。管理者権限のないサーバー上のリスト共有プリンタ

ここで問題になるのは、サーバーに管理者権限がないため、WMIを使用してクエリを実行できないということです。

私はTest-Path \\serverName\queueNameを使用しようとしました(私には良い選択と思われました。例えば、start \\serverName\queueNameがキューを開けているからです)。

どうすればこの問題を解決できますか?

編集:私はWindows 7を実行していますが、どのOSがサーバー上で動作しているのかわかりません(2008年、2012年)。

答えて

1

彼らがActive Directoryに公開されている場合は、印刷キューのオブジェクトを検索できます。

Get-ADObject -LDAPFilter "(objectCategory=printQueue)" 

編集:

ADが公開されることなく、あなたがポイントのSMB共有からそれらを列挙することができ印刷キューの使用net view \\servername

+0

残念ながら、それらはそうではありません。私はしたい... – sodawillow

+0

くそー、その編集を逃した。私は方法を見つけたと思う:)。 – sodawillow

0

OSによっては、これは実際にはGet-Printerを使用するのと同じくらい簡単です。

$NetworkQs = $ServerList | ForEach{Get-Printer -ComputerName $_ } 

これはWin8、おそらく8.1以前では利用できなかったと思います。

+0

私は質問にこれを追加しますWindows 7を使用しています。 – sodawillow

0

これは私が最終的に使用したものです。 @BenHへの功績は、netコマンドとは思えませんでした。

$servers = "printer01", "printer02" 

$servers | 
    ForEach-Object { 
     $server = $_ 
     net view \\$server | 
      Where-Object { $_ -match "Print" } | 
      ForEach-Object { 
       $parts = $_ -split "\s{2,}" 
       $item = New-Object PSObject 
       $item | Add-Member -MemberType NoteProperty -Name Server -Value $server 
       $item | Add-Member -MemberType NoteProperty -Name Queue -Value "\\$server\$($parts[0])" 
       $item | Add-Member -MemberType NoteProperty -Name Description -Value $parts[2] 
       $item 
      } 
    } 

出力:

Server  Queue     Description    
------  -----     -----------    
...   ...     ... 
...   ...     ... 
関連する問題