web-dev-qa-db-ja.com

Windows Server 2008R2でのリモートWMI接続の問題

Windows Server 2008 R2(x64)のクリーンインストールを実行しました。リモートDCOM通信を使用してサーバーと通信し、いくつかのWMIオブジェクトを照会するアプリケーションがあります。管理者ログインを使用してWMI通信を実行している間は、すべて問題ありません。

管理者グループに新しいユーザーを追加すると(新しいユーザー作成GUIで管理者になるユーザーを選択することにより)、機能しないようです。ユーザーにDCOMリモートアクセス許可( http://jintegra.intrinsyc.com/support/com/doc/remoteaccess.html を使用)とWMIアクセス許可(-を使用)を提供しました http://www.poweradmin.com/help/enableWMI.aspx )。また、Server 2008 R2でrenegadeレジストリキーを見つけて、新しく作成したユーザーを所有者にし、すべての権限を付与しました( http://www.opennms.org/wiki/WmiConfiguration#Windows_2008_R2 を使用)。

それでも接続しようとすると、ずっと通じません。 Windowsのセキュリティログを調べたところ、資格情報の検証、特別なログオン、およびログオンイベントが成功したことがわかったので、これを知っています。

しかし、私はそれ以上先に進むことができません。エラーが発生し、ホストに接続できなかったため、ログオフされました(セキュリティログから見つかりました)。

どのサービスが私にアクセスを許可していないのかさえ知りません。誰かが以前にこの問題に対処したことがありますか?簡単な答えがあればそれでいいでしょう。そうでない場合は、セキュリティログやその他のログを適切に読み取って、アクセスを拒否しているサービスを特定する方法を教えてください。

また、ドメイン/パブリック/プライベートの3つのファイアウォールはすべてオフになっています。

どうもありがとう!!

2
Elitecoder

照会しようとしているオブジェクトのACLを設定する必要がある場合もあります。 http://msdn.Microsoft.com/en-us/library/aa374872%28v=vs.85%29.aspx を参照してください。

MSサービス、イベントログなどにアクセスするために、これを以前に行う必要がありました。

編集:

簡単に言うと、非特権アカウントを介してアクセスする前に、管理者アカウントを使用して、アクセスしようとしているWMIオブジェクトのACLを設定する必要がある場合があります。

これは私が私たちの環境でそれを設定する方法です:

DCOMの構成

  • 管理するサーバーで、[スタート]、[ファイル名を指定して実行]の順にクリックし、「DCOMCNFG」と入力して、[OK]をクリックします。
  • [コンポーネントサービス]ダイアログボックスで、[コンポーネントサービス]、[コンピューター]の順に展開し、[マイコンピューター]を右クリックして[プロパティ]をクリックします。
  • [マイコンピュータのプロパティ]ダイアログボックスで、[COMセキュリティ]タブをクリックします。
  • [起動とアクティブ化のアクセス許可]で、[制限の編集]をクリックします。
  • [起動許可]ダイアログボックスで、[分散COMユーザー]を選択します。 [ユーザーのアクセス許可]の[許可]列で、[リモート起動]を選択し、[リモートアクティブ化]を選択して、[OK]をクリックします。
  • [アクセス許可]で、[制限の編集]をクリックします。
  • [アクセス許可]ダイアログボックスで、[分散COMユーザー]を選択します。 [ユーザーのアクセス許可]の[許可]列で、[リモートアクセス]を選択し、[OK]をクリックします。
  • 管理対象のサーバー上のコンピューター管理、ローカルユーザー、およびグループの分散COMユーザーグループにユーザーアカウントを追加します。
  • 管理するサーバーのコンピュータの管理、ローカルユーザーとローカルグループのパフォーマンスログユーザーグループにユーザーアカウントを追加します。

WMIを構成します

  • 管理対象のサーバーで、[スタート]、[ファイル名を指定して実行]の順にクリックし、wmimgmt.mscと入力して、[OK]をクリックします。
  • コンソールツリーで、[WMIコントロール]を右クリックし、[プロパティ]をクリックします。
  • [セキュリティ]タブをクリックします。
  • ルート名前空間を選択し、[セキュリティ]をクリックします。
  • [セキュリティ]ダイアログボックスで、[追加]をクリックします。
  • [ユーザー、コンピューター、またはグループの選択]ダイアログボックスで、ユーザーアカウントを入力します。 [名前の確認]ボタンをクリックしてエントリを確認し、[OK]をクリックします。
  • [セキュリティ]ダイアログボックスの[権限]で、ユーザーアカウントの[アカウントを有効にする]と[リモートで有効にする]を選択します。
  • アクセス許可がすべてのサブネームスペースに伝達されることを確認します。

上記の多くは、グループポリシーを使用して実行(自動化)できます。

ここで、サービスのACLを設定するには、次のようにします。

sc sdshow SCMANAGER

...サービスマネージャのACLを取得します。これにより、ほとんどのWindowsサービスへのアクセスが処理されます。次に、上からユーザーアカウントのACLを追加します。ACLは次のようになります。

sc sdset SCMANAGER D:(A ;; CC ;;; AU)(A ;; CCLCRPRC ;;; IU)(A ;; CCLCRPRC ;;; SU)(A ;; CCLCRPWPRC ;;; SY)(A ;; KA ;;; BA)(A ;; CCLCRPRC ;;;S-1-5-21-000000000-0000000000-0000000000-0000)S :( AU; FA; KA ;;; WD)(AU; OIIOFA; GA ;;; WD)

...太字の部分は、リクエストを行っているユーザーアカウントのUIDです。

イベントログの動作は少し異なりますが、「wevtutil」を使用してACLを設定できます。他のオブジェクトにも、それらを設定するさまざまな方法がある場合があります。

段階的にトラブルシューティングを行います。まず、クエリをユーザーアカウントでローカルに機能させ、次にリモートで機能させます。

6
user87664