WebServiceからのWMI呼び出し
-
02-07-2019 - |
質問
だから、WMI名前空間に含まれるデータセットとインターフェイスするWebサービスを作成しました。ビルドされた開発WebサーバーのASP.netで実行すると正常に機能し、要求に応じてデータを返します。ただし、IIS 6サーバー(win 2003)に公開すると、WebサービスでWMIメソッド呼び出しを実行できなくなります。しかし、それでも私はそれから読むことができます。
代わりにそれは私に与えます:
System.Management.ManagementException: アクセスが拒否されました System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)at System.Management.ManagementObject.InvokeMethod(String methodName、ManagementBaseObject inParameters、InvokeMethodOptions オプション) System.Management.ManagementObject.InvokeMethod(String methodName、Object [] args)
「Everyone」を追加して、これを修正しようとしました(もちろん、これは悪い習慣ですが、それが機能するかどうか確認したかっただけです)。そのWMI名前空間のセキュリティ設定にグループ化し、それらに完全な許可(実行を含む)を付与します。次に、IISをリセットします。ただし、このエラーは引き続き発生します。
アイデアはありますか?
解決
IISを「適切な」ユーザーアカウントとして実行すると動作するはずです。
「全員」グループは「絶対に全員」という意味ではありません-「すべての認証済みユーザー」を意味します。認証できない場合、あなたはまだ全員の一部ではありません。ネットワーク権限を必要とするWMIリソースを使用している場合、それでも失敗します。
それ以外では、WMIにアクセスするには、IISが実行していない既定のアカウントで実行されているユーザー権利が必要になる場合があります。
他のヒント
まあ、技術的には、みんなと「認証済みユーザー」異なっています。
Everoneには「ゲスト」が含まれます。アカウントと「ゲスト」グループ、ヌルおよび匿名接続。全員が 全員です。 "認証済みユーザー"資格情報を提示した人です。わずかに微妙ですが、重要です。
ゲストが無効になっている場合、実際にはすべての目的で同一であると考えられますが、誰もが「null」を含む場合があります。および「匿名」セッション。