プリンタポートアドレスを取得する際に奇妙な問題が発生しています。 Win32_TCPIPPrinterPortのすべてのエントリを取得すると、IPアドレスを持つはずのHostAddressフィールドは通常空白/ヌルになります。ポート名だけに値があります。少し見知らぬものにするために、特定のポートがどのプリンタでも使用されていない場合は、HostAddressに適切な値が設定されます。Win32_TCPIPPrinterPortから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で同じことを試みたが、同じ動作を見ました。