Просто
через 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
Для получения дополнительной информации, пожалуйста, проверьте этот принтер article & WMI Class
Существует что-то, что не ясно, в вашем вопросе (сомнение возникает из командной строки screenshoot). Вы пытаетесь найти установленные принтеры на сетевом компьютере, который не является вашим? – Steve
Да, вы правы, Стив. Я пытаюсь получить принтеры на сетевом компьютере, а не самостоятельно – Sung
Просто попробовал свой PS-скрипт сейчас в моей сети, и я могу получить все принтеры на сетевом сервере. Может быть, это проблема разрешения? Здесь я администратор и имею полное разрешение на печать на этом сервере. – Steve