У меня странная проблема с получением адресов портов принтера.
Когда я получаю все записи в Win32_TCPIPPrinterPort, поле HostAddress (которое должно иметь IP-адрес) обычно пустое / пустое, значение имеет только имя порта. Чтобы сделать его немного странным, если конкретный порт не используется каким-либо принтером, ТОГДА HostAddress будет иметь правильное значение.
Код на C # прост и приводит к чему-то вроде этого;
IP_192.168.1.100,
printerportxyz
richTextBox1.Clear();
ManagementObjectSearcher portSearcher = new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_TCPIPPrinterPort");
foreach (ManagementObject port in portSearcher.Get())
{
richTextBox1.AppendText(
String.Format("Name: {0} HostAddress: {1}",
port["Name"],
port["HostAddress"])
);
}
Я тоже пробовал то же самое в WSH / VBS и видел такое же поведение.