Powershellを使用しているコンピューター上のすべてのプリンターを一覧表示する際に問題が発生します。
PrintUIを使用して「コンピューターごと」のプリンターを追加/削除/一覧表示するバッチスクリプトがあります。
PrintUIを使用してプリンターを一覧表示できます。
rundll32 printui.dll,PrintUIEntry /ge /c"%UNC-NAME%"
これはコンピュータごとのプリンタだけをリストしますが...
Get-WMIObject -Class Win32_Printer -ComputerName $ComputerName
wMI内のすべてのプリンターが一覧表示されます。
上記の例では、ユーザーがログインしているときに3台のプリンターを備えたシステムがあります。WMIは2台、PrintUIは1台を表示します。
私はそれらをすべてリストする方法に夢中です! 「コンピュータごと」と「ローカル」の両方のプリンタを監査/追加/削除するスクリプトを作成できるように
共有プリンターの取得
Get-Printer -ComputerName pc| where Shared -eq $true | fl Name
共有されていないプリンターを取得する
Get-Printer -ComputerName pc | where Shared -eq $false | fl Name
マップされたプリンターを取得する
Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME | where{$_.Name -like “*\\*”} | select sharename,name
すべてのプリンターを入手する
Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME