4

下の写真のように、すべてのプリンターを取得しようとすると、2 つのプリンターしか取得できませんでした。

PowerShell WMI または C# を使用してすべてのプリンターを返す方法はありますか (powershell で変換できるようにするため)。

試してみましたがSystem.Drawing.Printing.PrinterSettings.InstalledPrinters( を参照how to get the list of all printers in computer - C# Winform)、2 つのエントリしか表示されません。

ここに画像の説明を入力

4

1 に答える 1

3

単に、

System.Drawing.Printing経由

foreach (String printer in PrinterSettings.InstalledPrinters)
{
    Console.WriteLine(printer.ToString()+Environment.NewLine);
} 

WMI経由

public static void AvailablePrinters()
{
 oManagementScope = new ManagementScope(ManagementPath.DefaultPath);
 oManagementScope.Connect();

 SelectQuery oSelectQuery = new SelectQuery();
 oSelectQuery.QueryString = @"SELECT Name FROM Win32_Printer";

 ManagementObjectSearcher oObjectSearcher = 
    new ManagementObjectSearcher(oManagementScope, @oSelectQuery);
 ManagementObjectCollection oObjectCollection = oObjectSearcher.Get();

 foreach (ManagementObject oItem in oObjectCollection)
 {

 Console.WriteLine("Name : " + oItem["Name"].ToString()+ Environment.NewLine);
 }
}

PowerShell経由

Get-WMIObject -class Win32_Printer -computer $printserver | Select Name,DriverName,PortName

詳細については、この記事と WMI プリンタークラスを確認してください。

于 2012-06-04T21:04:00.923 に答える