C# で WMI を使用して、コンピューター上のプリンターを列挙および変更しています。
Windows 7 を実行していますが、「従来の」方法でインストールされているプリンターを変更しようとすると、すべて正常に動作します。「古典的に」とは、プリンターが基本的な TCP/IP ポートを使用していることを意味します。http://msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v=vs.85)に記載されている WMI 関数を使用して、名前を変更したり、既定のプリンターとして設定したりできます。 aspx。
ただし、デフォルトでは、Windows は私のプリンターを WSD (デバイス上の Web サービス) プリンターとしてインストールしています。これが発生すると、プリンターは WSD ポートを使用しますが、WMI を使用して触れることはできないようです。
下のスクリーンショットでは、私のプリンターが「WSD ポート」を使用していることがわかります。そのポートの下には、私のプリンターが WSD なしでインストールされたときに使用する標準の TCP/IP ポートがあります。
プリンターに付属のソフトウェアは、標準の TCP/IP ポートを使用してプリンターをインストールします。ただし、プリンターを手動でインストールすると、Windows は WSD ポートを選択します。
WMI には、WSD 対応デバイスの定義がないようです。これが本当かどうか知っている人はいますか?