私の顧客の1人は、WindowsサービスをC#で作成しています。それは多くのものをチェックしますが、1つのことは、プリンタポート(IPアドレス)がすでに存在するかどうかを確認することです。はいの場合は、特定のプリンタをip-portに接続します。いいえの場合は、ポートを作成して接続してください。WMIを使用したWindowsサービス
私はWMIを使用して既存のプリンタポートを確認し、それらを作成します。また、WMIを使用してプリンタをプリンタポートに接続します。
Windows 7では、これは魅力的です。しかし、私の(仮想)XPマシンでは、サービスはWMIの権利を全く持たないようです。ポートチェックが失敗し、作成が失敗します。 ManagementExceptionからの単純な「アクセス拒否」が与えられます。
私はちょっとしたテストプログラム(C#のコンソールアプリケーション)を作っても、それは魅力のように機能します。
私は、別のアカウント(ローカルシステム、管理者、管理者権限を持つ私の個人ログイン)でサービスを実行しようとしましたが、何も動作していないように見え、Windows XPのWindowsサービスでWMIを使用できないと感じています。
この問題を解決する手掛かりはありますか?またはここで何が間違っていますか?
答えを探す場所がわからないので、私はあなたに正しい答えを見つけることを望んで、ここにアカウントを作成しました。
はい、私はWIN32_Printerを使用します。しかし、それは同じXPコンピュータ上のコンソールアプリケーションから動作します。 – Aspage
修正:WMIのWin32_Printer 'folder/class'を参照するWMIを使用します。私は、Win32_Printerを直接使って物事を終わらせるわけではありません。 – Aspage
Win32_PrinterはWMIクラスです。 Win32_Printerを使用していない場合は、どのWMIクラスが使用していますか? –