Windows Server 2003、Windows XP、または Windows 2000 を実行しているコンピューターにグループ ポリシーを適用すると、Userenv エラーが発生し、イベントがログに記録されます

この記事では、ネットワーク上のコンピューターが、ネットワーク ドメイン コントローラー上の Sysvol フォルダー内のグループ ポリシー オブジェクト (GPO) に接続できない問題の解決策について説明します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 887303

概要

ネットワーク上のコンピューターにグループ ポリシーが適用されている場合、1 つまたは複数のエラーやイベントが発生する可能性があります。 問題の原因を特定するには、ネットワーク上のコンピューターの構成のトラブルシューティングを行う必要があります。 問題の原因をトラブルシューティングするには、次の手順に従います。

  1. サーバーとクライアント コンピューターの DNS 設定とネットワーク プロパティを調べます。
  2. クライアント コンピューターのサーバー メッセージ ブロック署名設定を確認します。
  3. TCP/IP NetBIOS ヘルパー サービス、Net Logon サービス、およびリモート プロシージャ コール (RPC) サービスがすべてのコンピューターで開始されていることを確認します。
  4. すべてのコンピューターで分散ファイル システム (DFS) が有効になっていることを確認します。
  5. Sysvol フォルダーの内容とアクセス許可を調べます。
  6. [バイパス 走査チェック] 権限が必要なグループに付与されていることを確認します。
  7. ドメイン コントローラーがジャーナル ラップ状態になっていないことを確認します。
  8. dfsutil /purgemupcache コマンドを実行します。

現象

Microsoft Windows Server 2003、Microsoft Windows XP、または Microsoft Windows 2000 を実行しているコンピューターで、次の 1 つ以上の現象が発生します。

  • グループ ポリシー設定はコンピューターに適用されません。

  • グループ ポリシーネットワーク上のドメイン コントローラー間でレプリケーションが完了しません。

  • スナップイングループ ポリシー開くできません。たとえば、ドメイン コントローラー セキュリティ ポリシー スナップインやドメイン セキュリティ ポリシー スナップインを開くすることはできません。

  • グループ ポリシー スナップインを開こうとすると、次のいずれかのエラー メッセージが表示されます。

    グループ ポリシー オブジェクトを開けませんでした。 適切な権限を持っていない可能性があります。
    詳細: アカウントは、このステーションからログインする権限がありません。

    この操作を実行するアクセス許可がありません。
    詳細: アクセスは拒否されます。

    グループ ポリシー オブジェクトを開けませんでした。 適切な権限を持っていない可能性があります。
    詳細: 指定されたパスがシステムで見つかりません。

  • 任意のドメイン コントローラー上の共有ファイルにアクセスしようとすると、エラー メッセージが表示されます。 この現象は、サーバーにログオンしていて、ローカル共有にアクセスしようとした場合でも発生します。 具体的には、この現象は、ドメイン コントローラーの Sysvol 共有へのアクセスに影響する可能性があります。

  • ファイル共有にアクセスしようとすると、パスワードの入力を繰り返し求められます。

  • ファイル共有にアクセスしようとすると、次のいずれかのエラー メッセージのようなエラー メッセージが表示されます。

    \\Server_name\Share_Name にアクセスできません。 このネットワーク リソースを使用するアクセス許可がない可能性があります。 アクセス許可があるかどうかをこのサーバーの管理者に問い合わせてください。
    アカウントは、このステーションからのログインを許可されていません。

    \\Server_name\Share_Name にアクセスできません。
    アカウントは、このステーションからのログインを許可されていません。

    ネットワーク パスが見つかりませんでした。

Windows XP または Windows Server 2003 のイベント ビューアーでアプリケーション ログを表示すると、次のようなイベントが表示されます。

イベントの種類: エラー

イベント ソース: Userenv
イベント カテゴリ: なし
イベント ID: 1058

日付: 日付
時間:
Time
ユーザー:
User_name
コンピューター:
Computer_Name
説明: Windows は、GPO CN={31B2F340-016D-11D2-945F-00C04FB984F9}、CN=Policies、CN=System、DC= domainname、DC=com のファイル gpt.ini にアクセスできません。 ファイルは、\ <\domainname.com\sysvol\domainname.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984 F9}\gpt.ini>に存在する必要があります。 (Error_Message)。 グループ ポリシー処理が中止されました。 詳細については、「ヘルプとサポート センター https://support.microsoft.com」を参照してください。

イベント ID 1058 の Error_Message プレースホルダーに表示されるエラー メッセージは、次のいずれかのエラー メッセージである可能性があります。

  • ネットワーク パスが見つかりませんでした。

  • アクセスが拒否されました。

  • コンピューターが使用できないか、アクセスが拒否されているため、構成情報をドメイン コントローラーから読み取れませんでした。

イベントの種類: エラー
イベント ソース: Userenv
イベント カテゴリ: なし
イベント ID: 1030
日付:
Date
時間:
Time
ユーザー:
User_name
コンピューター:
Computer_Name
説明: Windows では、グループ ポリシー オブジェクトの一覧を照会できません。 この理由を説明するメッセージは、以前にポリシー エンジンによってログに記録されました。 詳細については、「ヘルプとサポート センター https://support.microsoft.com」を参照してください。

通常、イベント ID 1058 とイベント ID 1030 が発生した場合、コンピューターの起動時にクライアント コンピューターとメンバー サーバーによってログに記録されます。 ドメイン コントローラーは、これらのイベントを 5 分ごとにログに記録します。

Windows 2000 ベースのコンピューターでイベント ビューアーアプリケーション ログを表示すると、次のようなイベントが表示されます。

イベントの種類: エラー
イベント ソース: Userenv

イベント カテゴリ: なし
イベント ID: 1000
日付:
Date
時間:
Time
ユーザー: NT AUTHORITY\SYSTEM
コンピューター:
Computer_Name
説明: Windows は、\\ domainname.com\sysvol\domainname.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F 9}\Machine\registry.pol with (Error_Code) のレジストリ情報にアクセスできません。

イベント ID 1000 の Error_Code プレースホルダーに表示されるエラー コードは、次のいずれかのエラー コードになります。

  • 5
  • 51
  • 53
  • 1231
  • 1240
  • 1722

原因

これらの問題は、ネットワーク上のコンピューターが特定のグループ ポリシー オブジェクトに接続できない場合に発生します。 具体的には、これらのオブジェクトは、ネットワークのドメイン コントローラー上の Sysvol フォルダーにあります。

解決方法

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 そのため、これらの手順を慎重に実行してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。

この問題を解決するには、ネットワークの構成をトラブルシューティングして問題の原因を絞り込み、構成を修正する必要があります。 この問題の考えられる原因をトラブルシューティングするには、次の手順に従います。

手順 1: サーバーとクライアント コンピューターの DNS 設定とネットワーク プロパティを調べる

ローカル エリア接続プロパティでは、すべてのサーバーとクライアント コンピューターでクライアント for Microsoft Networks を有効にする必要があります。 Microsoft Networks のファイルとプリンターの共有コンポーネントは、すべてのドメイン コントローラーで有効にする必要があります。

さらに、ネットワーク上のすべてのコンピューターでは、コンピューターがメンバーである Active Directory フォレストの SRV レコードとホスト名を解決できる DNS サーバーを使用する必要があります。 通常、一般的な構成エラーは、クライアント コンピューターがインターネット サービス プロバイダー (ISP) に属する DNS サーバーを使用することです。

Userenv エラーを記録したすべてのコンピューターで、DNS 設定とネットワーク プロパティを調べます。 さらに、Userenv エラーをログに記録するかどうかに関係なく、すべてのドメイン コントローラーでこれらの設定をチェックします。

ネットワーク内の Windows XP ベースのコンピューターで DNS 設定とネットワーク プロパティを確認するには、次の手順に従います。

  1. [スタート]、[コントロール パネル] の順に選択します。
  2. コントロール パネルが [カテゴリ ビュー] に設定されている場合は、[クラシック ビューに切り替える] を選択します。
  3. [ネットワーク Connections] をダブルクリックし、[ローカル エリア接続] を右クリックし、[プロパティ] を選択します
  4. [全般] タブで、[Microsoft ネットワーク用クライアント] チェック ボックスをクリックして選択します。
  5. [ インターネット プロトコル (TCP/IP)] を選択し、[ プロパティ] を選択します。
  6. [次の DNS サーバー アドレスを使用する] が選択されている場合は、優先 DNS サーバーと代替 DNS サーバーの IP アドレスが、Active Directory で SRV レコードとホスト名を解決できる DNS サーバーの IP アドレスであることを確認します。 具体的には、コンピューターで ISP に属する DNS サーバーを使用しないでください。 DNS サーバーのアドレスが正しくない場合は、[優先 DNS サーバー] ボックスと [代替 DNS サーバー] ボックスに正しい DNS サーバーの IP アドレスを入力します。
  7. [ 詳細設定] を選択し、[ DNS ] タブを選択します。
  8. [DNS チェックにこの接続のアドレスを登録する] ボックスをクリックして選択し、[OK] を 3 回選択します。
  9. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、「cmd」と入力して、[ OK] を選択します
  10. 「ipconfig /flushdns」と入力し、Enter キーを押します。 「ipconfig /registerdns」と入力し、Enter キーを押します。
  11. コンピューターを再起動して変更を有効にします。

ネットワーク内の Windows 2000 ベースのコンピューターで DNS 設定とネットワーク プロパティを確認するには、次の手順に従います。

  1. [スタート] を選択し、[設定] をポイントし、[コントロール パネル] を選択します。

  2. [ネットワーク] と [ダイヤルアップ] Connectionsをダブルクリックします。

  3. [ ローカル エリア接続] を右クリックし、[ プロパティ] を選択します。

  4. [全般] タブで、[Microsoft ネットワーク用クライアント] チェック ボックスをクリックして選択します。

  5. コンピューターがドメイン コントローラーの場合は、[Microsoft ネットワークのファイルとプリンターの共有] チェック ボックスをクリックして選択します。

    注:

    マルチホーム リモート アクセス サーバーと Microsoft Internet Security and Acceleration (ISA) サーバー ベースのサーバーでは、インターネットに接続されているネットワーク アダプターの [ファイルとプリンターの共有] コンポーネントを無効にすることができます。 ただし、Microsoft Networks 用クライアント コンポーネントは、すべてのサーバーのネットワーク アダプターに対して有効にする必要があります。

  6. [ インターネット プロトコル (TCP/IP)] を選択し、[ プロパティ] をクリックします。

  7. [次の DNS サーバー アドレスを使用する] が選択されている場合は、優先 DNS サーバーと代替 DNS サーバーの IP アドレスが、Active Directory で SRV レコードとホスト名を解決できる DNS サーバーの IP アドレスであることを確認します。 具体的には、コンピューターで ISP に属する DNS サーバーを使用しないでください。 DNS サーバーのアドレスが正しくない場合は、[優先 DNS サーバー] ボックスと [代替 DNS サーバー] ボックスに正しい DNS サーバーの IP アドレスを入力します。

  8. [ 詳細設定] を選択し、[ DNS ] タブを選択します。

  9. [DNS チェックにこの接続のアドレスを登録する] ボックスをクリックして選択し、[OK] を 3 回選択します。

  10. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します

  11. 「ipconfig /flushdns」と入力し、Enter キーを押します。 「ipconfig /registerdns」と入力し、Enter キーを押します。

  12. コンピューターを再起動します。

ネットワーク内の Windows Server 2003 ベースのコンピューターで DNS 設定とネットワーク プロパティを確認するには、次の手順に従います。

  1. [スタート] を選択し、[コントロール パネル] をポイントし、[ネットワーク Connections] をダブルクリックします。

  2. ローカル エリア接続を右クリックし、[プロパティ] を選択 します

  3. [全般] タブで、[Microsoft ネットワーク用クライアント] チェック ボックスをクリックして選択します。

  4. コンピューターがドメイン コントローラーの場合は、[Microsoft ネットワークのファイルとプリンターの共有] チェック ボックスをクリックして選択します。

    注:

    マルチホーム リモート アクセス サーバーと ISA サーバー ベースのサーバーでは、インターネットに接続されているネットワーク アダプターの Microsoft ネットワークのファイルとプリンターの共有コンポーネントを無効にすることができます。 ただし、Microsoft Networks 用クライアント コンポーネントは、すべてのサーバーのネットワーク アダプターに対して有効にする必要があります。

  5. [ インターネット プロトコル (TCP/IP)] を選択し、[ プロパティ] を選択します。

  6. [次の DNS サーバー アドレスを使用する] が選択されている場合は、優先 DNS サーバーと代替 DNS サーバーの IP アドレスが、Active Directory で SRV レコードとホスト名を解決できる DNS サーバーの IP アドレスであることを確認します。 具体的には、コンピューターで ISP に属する DNS サーバーを使用しないでください。 DNS サーバーのアドレスが正しくない場合は、[優先 DNS サーバー] ボックスと [代替 DNS サーバー] ボックスに正しい DNS サーバーの IP アドレスを入力します。

  7. [ 詳細設定] を選択し、[ DNS ] タブを選択します。

  8. [DNS チェックにこの接続のアドレスを登録する] ボックスをクリックして選択し、[OK] を 3 回選択します。

  9. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、「cmd」と入力して、[ OK] を選択します

  10. 「ipconfig /flushdns」と入力し、Enter キーを押します。 「ipconfig /registerdns」と入力し、Enter キーを押します。

  11. コンピューターを再起動して変更を有効にします。

ネットワーク内のクライアント コンピューターが IP アドレスを自動的に取得するように構成されている場合は、DHCP サービスを実行しているコンピューターが、Active Directory で SRV レコードとホスト名を解決できる DNS サーバーの IP アドレスを割り当てることを確認します。

コンピューターが DNS に使用している IP アドレスを確認するには、次の手順に従います。

  1. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します
  2. 「ipconfig /all」と入力し、Enter キーを押します。
  3. 画面に一覧表示されている DNS エントリをメモします。

IP アドレスを自動的に取得するように構成されているコンピューターが正しい DNS サーバーを使用していない場合は、DHCP サーバーのドキュメントを参照して、DNS サーバー オプションを構成する方法について説明します。 さらに、各コンピューターがドメインの IP アドレスを解決できることを確認します。 これを行うには、「ping Your_Domain_Name」と入力 します。コマンド プロンプトでYour_Domain_Root し、 Enter キーを押します。 代わりに、「nslookup Your_Domain_Name」と入力しますYour_Domain_Rootし、 Enter キーを押します。

注:

このホスト名は、ネットワーク上のいずれかのドメイン コントローラーの IP アドレスに解決されることが予想されます。 コンピューターがこの名前を解決できない場合、または名前が間違った IP アドレスに解決される場合は、ドメインの前方参照ゾーンに有効な (親フォルダーと同じ) ホスト (A) レコードが含まれていることを確認します。

ドメインの前方参照ゾーンに、Windows 2000 ベースのコンピューター上の有効な (親フォルダーと同じ) ホスト (A) レコードが含まれていることを確認するには、次の手順に従います。

  1. DNS を実行しているドメイン コントローラーで、[ スタート] を選択し、[ プログラム] をポイントし、[ 管理ツール] をポイントして、[DNS] を選択 します

  2. [Your_Server_Name] を展開し、[前方参照ゾーン] を展開し、ドメインの前方参照ゾーンを選択します。

  3. ホスト (A) レコードを探 します (親フォルダーと同じです )。

  4. (親フォルダーと同じ) Host (A) レコードが存在しない場合は、次の手順に従って作成します。

    1. [ アクション ] メニューの [ 新しいホスト] を選択します。
    2. [ IP アドレス ] ボックスに、ドメイン コントローラーのローカル ネットワーク アダプターの IP アドレスを入力します。
    3. [関連付けられたポインター (PTR) レコードチェック作成] ボックスをクリックして選択し、[ホストの追加] を選択します。
    4. 次のメッセージが表示されたら、[ はい] を選択します。

      (親フォルダーと同じ) が有効なホスト名ではありません。 このレコードを追加してもよろしいですか?

  5. (親フォルダーと同じ) ホスト (A) レコードをダブルクリックします。

  6. [IP アドレス] ボックスに正しい IP アドレス が表示されていることを確認します。

  7. [ IP アドレス ] ボックスの IP アドレスが有効でない場合は、[IP アドレス] ボックスに正しい IP アドレス を入力し、[ OK] を選択します

  8. 代わりに、無効な IP アドレスを含む (親フォルダーと同じ) ホスト (A) レコードを削除できます。 (親フォルダーと同じ) ホスト (A) レコードを削除するには、そのレコードを右クリックし、[削除] を選択します。

  9. DNS サーバーが、ルーティングおよびリモート アクセス サーバーでもあるドメイン コントローラーである場合は、「 DNS または WINS も実行するルーティングおよびリモート アクセス サーバーでの名前解決と接続の問題」を参照してください。

  10. DNS レコードを追加、削除、または変更するすべてのコンピューターで、コマンド プロンプトで 「ipconfig /flushdns 」と入力し、 Enter キーを押します。

ドメインの前方参照ゾーンに、Windows Server 2003 ベースのコンピューター上の有効な (親フォルダーと同じ) ホスト (A) レコードが含まれていることを確認するには、次の手順を実行します。

  1. DNS を実行しているドメイン コントローラーで、[ スタート] を選択し、[ 管理ツール] をポイントして、[DNS] を選択 します

  2. [Your_Server_Name] を展開し、[前方参照ゾーン] を展開し、ドメインの前方参照ゾーンを選択します。

  3. (親フォルダーと同じ) ホスト (A) レコードを探します。

  4. (親フォルダーと同じ) ホスト (A) レコードが存在しない場合は、次の手順に従って作成します。

    1. [ アクション ] メニューの [ 新しいホスト (A)] を選択します。
    2. [ IP アドレス ] ボックスに、ドメイン コントローラーのローカル ネットワーク アダプターの IP アドレスを入力します。
    3. [関連付けられたポインター (PTR) レコードチェック作成] ボックスをクリックして選択し、[ホストの追加] を選択します。
    4. 次のメッセージが表示されたら、[ はい] を選択します。

      (親フォルダーと同じ) が有効なホスト名ではありません。 このレコードを追加してもよろしいですか?

  5. (親フォルダーと同じ) ホスト (A) レコードをダブルクリックします。

  6. [IP アドレス] ボックスに正しい IP アドレス が表示されていることを確認します。

  7. [IP アドレス] ボックスに IP アドレスが無効な場合は、[ IP アドレス ] ボックスに正しい IP アドレス を入力し、[OK] を選択します

  8. 代わりに、無効な IP アドレスを含む (親フォルダーと同じ) ホスト (A) レコードを削除できます。 ホスト (A) レコードを削除するには、( 親フォルダーと同じ) を右クリックし、[削除] を選択 します

  9. DNS サーバーが、ルーティングおよびリモート アクセス サーバーでもあるドメイン コントローラーである場合は、「 DNS または WINS も実行するルーティングおよびリモート アクセス サーバーでの名前解決と接続の問題」を参照してください。

  10. DNS レコードを追加、削除、または変更するすべてのコンピューターで、コマンド プロンプトで 「ipconfig /flushdns 」と入力し、 Enter キーを押します。

手順 2: クライアント コンピューターとメンバー サーバーのサーバー メッセージ ブロック署名設定を確認する

サーバー メッセージ ブロック (SMB) 署名設定では、ネットワーク上のコンピューターが通信にデジタル署名するかどうかを定義します。 SMB 署名設定が正しく構成されていない場合、クライアント コンピューターまたはメンバー サーバーがドメイン コントローラーに接続できない可能性があります。

たとえば、ドメイン コントローラーでは SMB 署名が必要な場合がありますが、クライアント コンピューターでは SMB 署名が無効になっている可能性があります。 この問題が発生した場合、グループ ポリシーは正しく適用できません。 そのため、クライアント コンピューターはアプリケーション ログにユーザー環境 (Userenv) エラーを記録します。 場合によっては、ドメイン コントローラー上のサーバー サービスとワークステーション サービスの SMB 署名設定が互いに競合することがあります。

たとえば、ドメイン コントローラーのワークステーション サービスでは SMB 署名を無効にすることができますが、ドメイン コントローラーのサーバー サービスには SMB 署名が必要です。 このシナリオでは、サーバーにログオンしている場合、ドメイン コントローラーのローカル ファイル共有を 1 つ以上開くできません。 さらに、サーバーにログオンしている場合は、スナップイングループ ポリシー開くできません。
ドメイン コントローラーでこの問題をトラブルシューティングする方法の詳細については、「ドメイン コントローラーでファイル共有またはグループ ポリシースナップインを開くことができない」を参照してください。

グループ ポリシーエラーがクライアント コンピューターとメンバー サーバーでのみ発生する場合、またはドメイン コントローラー上のファイル共有を開くことができないか、スナップイングループ ポリシーが適用されないと判断した場合は、引き続き問題のトラブルシューティングを行ってください。

既定では、SMB 署名は有効になっていますが、Windows XP、Windows 2000、または Windows Server 2003 を実行しているクライアント コンピューターとメンバー サーバーでのクライアント通信には必要ありません。 クライアント コンピューターは可能な限り SMB 署名を使用できますが、SMB 署名が無効になっているサーバーと通信するため、既定の構成を使用することをお勧めします。

SMB 署名が有効になっているが不要になるようにクライアント コンピューターとメンバー サーバーを構成するには、一部のレジストリ エントリの値を変更する必要があります。 クライアント コンピューターでレジストリを変更するには、次の手順に従います。

  1. [スタート][実行] の順に選択し、[開く] ボックスに「regedit」と入力し、[OK] を選択します。
  2. 次のレジストリ サブキーを展開します。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
  3. 右側のウィンドウで、 enablesecuritysignature を右クリックし、[ 変更] を選択します。
  4. [ 値データ ] ボックスに「0」と入力し、[ OK] を選択します
  5. [ requiresecuritysignature] を右クリックし、[ 変更] を選択します。
  6. [ 値データ ] ボックスに「0」と入力し、[ OK] を選択します
  7. 次のレジストリ サブキーを展開します。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters
  8. 右側のウィンドウで、 enablesecuritysignature を右クリックし、[ 変更] を選択します。
  9. [ 値データ ] ボックスに「1」と入力し、[ OK] を選択します
  10. [ requiresecuritysignature] を右クリックし、[ 変更] を選択します。
  11. [ 値データ ] ボックスに「0」と入力し、[ OK] を選択します

レジストリ値を変更した後、サーバー サービスとワークステーション サービスを再起動します。 グループ ポリシーが適用され、グループ ポリシー設定で競合する値が再度構成される可能性があるため、コンピューターを再起動しないでください。

レジストリ値を変更し、影響を受けるコンピューター上のサーバー サービスとワークステーション サービスを再起動した後、次の手順に従います。

  1. 影響を受けるコンピューター アカウントに適用される GPO または GPO のグループ ポリシー設定を表示します。
  2. グループ ポリシーが必要なレジストリ設定と競合していないことを確認します。
  3. グループ ポリシー オブジェクト エディターを使用して、次のフォルダー内のポリシー設定を表示します。Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options

Windows Server 2003 を実行しているコンピューターでは、SMB 署名グループ ポリシー設定の名前は次のとおりです。

  • Microsoft ネットワーク サーバー: 通信にデジタル署名する (常に)
  • Microsoft ネットワーク サーバー: 通信にデジタル署名する (クライアントが同意した場合)
  • Microsoft ネットワーク クライアント: 通信にデジタル署名する (常に)
  • Microsoft ネットワーク クライアント: 通信にデジタル署名する (サーバーが同意する場合)

Windows 2000 Server を実行しているコンピューターでは、SMB 署名グループ ポリシー設定の名前は次のとおりです。

  • サーバー通信にデジタル署名する (常に)
  • サーバー通信にデジタル署名する (可能な場合)
  • クライアント通信にデジタル署名する (常に)
  • クライアント通信にデジタル署名する (可能な場合)

通常、SMB 署名グループ ポリシー設定は "定義されていません" として構成されます。 SMB 署名グループ ポリシー設定を定義する場合は、設定がネットワーク接続に与える影響を理解していることを確認してください。
SMB 署名設定の詳細については、「 セキュリティ設定とユーザー権利の割り当てを変更した場合に発生する可能性があるクライアント、サービス、およびプログラムの問題」を参照してください。

Windows 2000 Server を実行しているドメイン コントローラーの GPO 設定を変更する場合は、次の手順に従います。

  1. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します
  2. 「secedit /refreshpolicy machine_policy /enforce」と入力し、Enter キーを押します。
  3. 影響を受けるクライアント コンピューターを再起動します。
  4. クライアント コンピューター上のレジストリの SMB 署名値を再確認して、予期せず変更されていないことを確認します。

Windows Server 2003 を実行しているドメイン コントローラーで GPO の設定を変更する場合は、次の手順に従います。

  1. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します
  2. 「gpupdate /force」と入力し、Enter キーを押します。
  3. 影響を受けるクライアント コンピューターを再起動します。
  4. クライアント コンピューターのレジストリの SMB 署名値を再確認して、予期せず変更されていないことを確認します。

クライアント コンピューターを再起動した後にレジストリの SMB 署名値が予期せず変更された場合は、次のいずれかの方法を使用して、クライアント コンピューターに適用されている適用されたポリシー設定を表示します。

  • Windows XP ベースのコンピューターで、ポリシー MMC スナップインの結果セット (Rsop.msc) を使用します。 ポリシーの結果セットの詳細については、「ポリシーの 結果セット」を参照してください。

  • Windows 2000 では、Gpresult.exe コマンド ライン ツールを使用して、グループ ポリシー結果を確認します。 これを行うには、次の手順に従います。

    1. Windows 2000 Resource Kit から Gpresult.exe をインストールします。

    2. コマンド プロンプトで、「 gpresult /scope computer」と入力し、 Enter キーを押します。

    3. 出力の [適用されたグループ ポリシー オブジェクト] セクションで、コンピューター アカウントに適用されるグループ ポリシー オブジェクトをメモします。

    4. これらのグループ ポリシー オブジェクトのドメイン コントローラーに SMB 署名ポリシー設定があるコンピューター アカウントに適用されるグループ ポリシー オブジェクトを比較します。

手順 3: TCP/IP NetBIOS ヘルパー サービスがすべてのコンピューターで開始されていることを確認する

ネットワーク上のすべてのコンピューターで TCP/IP NetBIOS ヘルパー サービスを実行する必要があります。

WINDOWS XP ベースのコンピューターで TCP/IP NetBIOS ヘルパー サービスが実行されていることを確認するには、次の手順を実行します。

  1. [スタート]、[コントロール パネル] の順に選択します。
  2. コントロール パネルがカテゴリ ビューにある場合は、[クラシック ビューに切り替える] を選択します。
  3. [ 管理ツール] をダブルクリックします。
  4. [ サービス] をダブルクリックします。
  5. [ サービス ] の一覧 で、[TCP/IP NetBIOS ヘルパー] を選択します。 [状態] 列の値が [開始] になっていることを確認します。 [スタートアップの種類] 列の値が [自動] であることを確認します。 [状態] または [スタートアップの種類] の値が正しくない場合は、次の手順に従います。
    1. TCP/IP NetBIOS ヘルパーを右クリックし、[プロパティ] を選択します
    2. [ スタートアップの種類 ] の一覧で、[自動] を選択 します
    3. [ サービスの状態] 領域で、サービスが開始されていない場合は、[ 開始] を選択します。
    4. [OK] を選択します。

WINDOWS Server 2003 ベースのコンピューターで TCP/IP NetBIOS ヘルパー サービスが実行されていることを確認するには、次の手順に従います。

  1. [ スタート] を選択し、[ 管理ツール] をポイントし、[ サービス] を選択します。
  2. [ サービス ] の一覧 で、[TCP/IP NetBIOS ヘルパー] を選択します。 [状態] 列の値が [開始] になっていることを確認します。 [スタートアップの種類] 列の値が [自動] であることを確認します。 [状態] または [スタートアップの種類] の値が正しくない場合は、次の手順に従います。
    1. TCP/IP NetBIOS ヘルパーを右クリックし、[プロパティ] を選択します
    2. [ スタートアップの種類 ] の一覧で、[自動] を選択 します
    3. [ サービスの状態] 領域で、サービスが開始されていない場合は、[ 開始] を選択します。
    4. [OK] を選択します。

WINDOWS 2000 ベースのコンピューターで TCP/IP NetBIOS ヘルパー サービスが実行されていることを確認するには、次の手順に従います。

  1. [ スタート] を選択し、[ プログラム] をポイントし、[ 管理ツール] をポイントして、[ サービス] を選択します。
  2. [ サービス ] の一覧で、[ TCP/IP NetBIOS ヘルパー サービス] を選択します。 [状態] 列の値が [開始] になっていることを確認します。 [スタートアップの種類] 列の値が [自動] であることを確認します。 [状態] または [スタートアップの種類] の値が正しくない場合は、次の手順に従います。
    1. [TCP/IP NetBIOS ヘルパー サービス] を右クリックし、[プロパティ] を選択します。
    2. [ スタートアップの種類 ] の一覧で、[自動] を選択 します
    3. [ サービスの状態] 領域で、サービスが開始されていない場合は、[ 開始] を選択します。
    4. [OK] を選択します。

さらに、グループ ポリシー オブジェクトを使用して、必要なシステム サービスを 1 つ以上無効にしていないことを確認します。 フォルダー内の グループ ポリシー オブジェクト エディターを使用して、これらのポリシー設定をComputer Configuration/Windows Settings/Security Settings/System Services表示します。

Windows Server 2003 および Windows XP では、ポリシー MMC スナップインの結果セット (Rsop.msc) を使用して、コンピューターに適用されているすべての適用されたポリシー設定をチェックできます。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「rsop.msc」と入力し、[ OK] を選択します

Windows 2000 では、Gpresult.exe コマンド ライン ツールを使用して、グループ ポリシー結果を確認します。 これを行うには、次の手順に従います。

  1. Windows 2000 Resource Kit から Gpresult.exe をインストールします。
  2. コマンド プロンプトで、「 gpresult /scope computer」と入力し、 Enter キーを押します。
  3. 出力の [適用されたグループ ポリシー オブジェクト] セクションで、コンピューター アカウントに適用されるグループ ポリシー オブジェクトをメモします。
  4. コンピューター アカウントに適用されるグループ ポリシー オブジェクトと、これらのグループ ポリシー オブジェクトのドメイン コントローラーの SMB 署名ポリシー設定を比較します。

注:

多くのデスクトップで TCP/IP NetBIOS ヘルパー サービスが無効になっている場合は、次のサンプル Microsoft Visual Basic スクリプトを使用して、組織単位 (OU) 内のすべてのコンピューターで TCP/IP NetBIOS ヘルパー サービスを同時に開始できます。

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。 これには、市販性または特定目的との適合性についての黙示の保証も含まれますが、これに限定はされません。 この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。 Microsoft サポート エンジニアは、特定のプロシージャの機能を説明するのに役立ちますが、これらの例を変更して、特定の要件を満たすために追加の機能を提供したり、プロシージャを構築したりすることはありません。

Set objDictionary = CreateObject("Scripting.Dictionary") 
i = 0
Set objOU = GetObject("LDAP://OU=Computers, OU=OUName, OU=OUName, DC=OUName,
DC=OUName,DC=CompanyName,
DC=com")
objOU.Filter = Array("Computer")
For Each objComputer In objOU
        objDictionary.Add i, objComputer.CN
        i = i + 1
Next
For Each objItem In objDictionary
        strComputer = objDictionary.Item(objItem)
        Set objWMIService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer &
"\root\cimv2")

        Set colServices = objWMIService.ExecQuery _
                ("Select * from Win32_Service where Name = 'LmHosts'")
        For Each objService In colServices
                If objService.StartMode = "Disabled" Then
                        objService.Change( , , , , "Automatic")
                End If
        Next
Next

手順 4: すべてのコンピューターで分散ファイル システム (DFS) が有効になっていることを確認する

Sysvol 共有は DFS ボリュームであるため、すべてのドメイン コントローラーで分散ファイル システム サービスを実行する必要があります。 さらに、すべてのコンピューターのレジストリで DFS クライアントを有効にする必要があります。

分散ファイル システム サービスが Windows Server 2003 ベースのドメイン コントローラーで実行されていることを確認するには、次の手順を実行します。

  1. [ スタート] を選択し、[ 管理ツール] をポイントし、[ サービス] を選択します。
  2. [ サービス ] の一覧で、[ 分散ファイル システム サービス] を選択します。 [状態] 列の値が [開始] になっていることを確認します。 [スタートアップの種類] 列の値が [自動] であることを確認します。 [状態] または [スタートアップの種類] の値が正しくない場合は、次の手順に従います。
    1. [分散ファイル システム] を右クリックし、[プロパティ] を選択します。
    2. [ スタートアップの種類 ] の一覧で、[自動] を選択 します
    3. [ サービスの状態] 領域で、サービスが開始されていない場合は、[ 開始] を選択します。
    4. [OK] を選択します。

分散ファイル システム サービスが Windows 2000 サーバー ベースのドメイン コントローラーで実行されていることを確認するには、次の手順に従います。

  1. [ スタート] を選択し、[ プログラム] をポイントし、[ 管理ツール] をポイントして、[ サービス] を選択します。
  2. [ サービス ] の一覧で、[ 分散ファイル システム サービス] を選択します。 [状態] 列の値が [開始] になっていることを確認します。 [スタートアップの種類] 列の値が [自動] であることを確認します。 [状態] または [スタートアップの種類] の値が正しくない場合は、次の手順に従います。
    1. [分散ファイル システム] を右クリックし、[プロパティ] を選択します。
    2. [ スタートアップの種類 ] の一覧で、[自動] を選択 します
    3. [ サービスの状態] 領域で、サービスが開始されていない場合は、[ 開始] を選択します。
    4. [OK] を選択します。

すべてのクライアント コンピューターで分散ファイル システム クライアントが有効になっていることを確認するには、次の手順に従います。

  1. [スタート][実行] の順に選択し、[開く] ボックスに「regedit」と入力し、[OK] を選択します。
  2. 次のサブキーを展開します。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mup
  3. [ Mup] を選択し、右側のウィンドウで DisableDFS という名前の DWORD 値エントリを検索します。
  4. DisableDFS エントリが存在し、値データが 1 の場合は、[DisableDFS] をダブルクリックします。 [ 値データ ] ボックスに「0」と入力し、[ OK] を選択します。 DisableDFS 値データが既に 0 の場合、または DisableDFS エントリが存在しない場合は、変更しないでください。
  5. レジストリ エディターを終了します。
  6. DisableDFS 値データを変更した場合は、コンピューターを再起動します。

手順 5: Sysvol フォルダーの内容とアクセス許可を調べる

既定では、Sysvol フォルダーは フォルダーにあります %systemroot% 。 Sysvol フォルダーには、ドメインのグループ ポリシー オブジェクト、Sysvol 共有と Netlogon 共有、およびファイル レプリケーション サービス (FRS) ステージング フォルダーが含まれています。

Sysvol フォルダーまたは Sysvol 共有に対するアクセス許可の制限が厳しすぎると、グループ ポリシーを正しく適用できないため、ユーザー環境 (Userenv) エラーが発生します。 さらに、Sysvol 共有または グループ ポリシー オブジェクトが見つからない場合は、Userenv エラーが発生する可能性があります。
Sysvol 共有が使用可能であることを確認するには、各ドメイン コントローラーのコマンド プロンプトで net share コマンドを実行します。 これを行うには、次の手順に従います。

  1. [ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します
  2. 「net share」と入力し、Enter キーを押します。
  3. フォルダーの一覧で SYSVOLNETLOGON を見つけます。

Sysvol または Netlogon 共有が 1 つ以上のドメイン コントローラーに存在しない場合は、問題の原因のトラブルシューティングを行う必要があります。
Windows 2000 Server で見つからない Sysvol 共有と Netlogon 共有のトラブルシューティング方法の詳細については、「Windows ドメイン コントローラーで SYSVOL 共有と NETLOGON 共有が見つからない場合のトラブルシューティング」を参照してください。

Windows Server 2003 で Sysvol 共有を再構築する方法の詳細については、「 SYSVOL ツリーとそのコンテンツをドメインで再構築する方法」を参照してください。

Sysvol 共有が使用可能であることを確認したら、Sysvol フォルダー、Sysvol 共有、Sysvol フォルダーを含むボリュームのルート フォルダーが正しいアクセス許可で構成されていることを確認します。

さらに、Windows 2000 Server では、Sysvol フォルダーを含むボリュームのルート フォルダーに対するフル コントロール アクセス許可を Everyone グループに付与する必要があります。 Windows Server 2003 では、[すべてのユーザー] グループに "このフォルダーのみ" に対する読み取り & 実行の特別なアクセス許可が付与され、domain\Users グループに次の標準アクセス許可が付与されている必要があります。

  • 読み取り & 実行
  • フォルダーの内容を一覧表示する
  • 読み取り

さらに、Windows Server 2003 では、domain\Users グループに次の特別なアクセス許可が必要です。

  • "このフォルダー、サブフォルダー、ファイル" に対する実行アクセス許可 & 読み取ります。
  • フォルダーの作成/データの追加アクセス許可を "このフォルダーとサブフォルダー" に設定します。
  • [ファイルの作成] / [データの書き込み] アクセス許可を "サブフォルダーのみ" に設定します。

Sysvol のアクセス許可を確認したら、Sysvol フォルダーに必要なグループ ポリシー オブジェクトが含まれていることを確認します。 必要なグループ ポリシー オブジェクトを探すには、Windows 2000 または Windows Server 2003 Resource Kit の Gpotool.exe プログラムを使用します。

オプションなしで Gpotool.exe プログラムを実行すると、ドメイン内のすべてのドメイン コントローラー上のすべてのグループ ポリシー オブジェクトがスキャンされます。 スイッチを /checkacl 含める場合、ツールは Sysvol アクセス制御リスト (ACL) もスキャンします。 Gpotool.exe プログラムを実行するときの詳細な出力については、スイッチを使用します /verbose

代わりに、SYSVOL フォルダー内の個々の GPO を手動で確認できます。 たとえば、Userenv 1058 イベントの説明に GPO の名前が一覧表示されている場合は、SYSVOL フォルダー内の個々の GPO を手動で確認できます。 これを行って、USER フォルダー、MACHINE フォルダー、および Gpt.ini ファイルが含まれていることを確認できます。 SYSVOL フォルダー内の個々の GPO を手動で確認するには、次の手順に従います。

  1. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します
  2. Time/interactive/next と入力します:cmd.exe し、Enter キーを押します。ここで、Time は現在の時刻より 1 分または 2 分遅れ、24 時間形式で書き込まれます。 たとえば、午後 1 時 00 分後の 3 分は、24 時間形式の 13:03 になります。
  3. 前のコマンドで指定した時点で、新しいコマンド プロンプト ウィンドウが開きます。 「net use j:\\domainname.com\sysvol\domainname.com\Policies\{GUID}」と入力し、 Enter キーを押します。ここで、 GUID は Userenv イベントの説明にある GPO の GUID です。 たとえば、Userenv 1058 イベントの説明に "ファイルは、場所 <\\Domain_Name.com\sysvol\Domain_Name.com\Policies\{31B2F340-016D-11D2-945F-00C に存在する必要があります。 04FB984 F9}\gpt.ini>」コマンドで使用する GUID は 31B2F340-016D-11D2-945F-00C04FB984F9 です。
  4. 「dir j:\*.*」と入力し、 Enter キーを押します。
  5. USER フォルダー、MACHINE フォルダー、および Gpt.ini ファイルが、I ドライブのフォルダー一覧に一覧表示されていることを確認します。 これらのフォルダーとファイルのいずれかが見つからない場合、ネットワーク上のコンピューターは、アプリケーション ログに Userenv エラーを記録する可能性があります。

Sysvol フォルダーに 1 つ以上のグループ ポリシー オブジェクトがない場合は、Windows Server 2003 Default グループ ポリシー Restore Utility (Dcgpofix.exe) または Windows 2000 Default グループ ポリシー Restore Tool (Recreatedefpol.exe) を実行して、既定のグループ ポリシー オブジェクトを再作成します。

Dcgpofix.exe プログラムは Windows Server 2003 に含まれています。 Dcgpofix.exe プログラムの詳細については、コマンド プロンプトでコマンドを dcgpofix /? 実行します。

ウイルス対策ソフトウェアを使用して Sysvol ドライブをスキャンする場合は、必ず推奨除外を設定してください。 ウイルス対策ソフトウェアを使用してスキャンすると、Gpt.ini ファイルなどの必要なファイルへのアクセスがブロックされる可能性があります。 これらの除外は、すべてのリアルタイム、スケジュールされた、手動のウイルス対策スキャンに対して構成する必要があります。

手順 6: バイパス 走査チェック権限が必要なグループに付与されていることを確認する

バイパス 走査チェック権限は、ドメイン コントローラー上の次のグループに付与する必要があります。

  • 管理者
  • Authenticated Users
  • すべてのユーザー
  • Windows 2000 以前の互換性のあるアクセス

Windows Server 2003 ベースのドメイン コントローラーで [走査チェックのバイパス] 権限が付与されていることを確認するには、次の手順を実行します。

  1. [ スタート] を選択し、[ 管理ツール] をポイントし、[ ドメイン コントローラー セキュリティ ポリシー] を選択します。
  2. [ ローカル ポリシー] を展開し、[ ユーザー権利の割り当て] を選択します。
  3. [ 走査チェックをバイパスする] をダブルクリックします。
  4. [これらのポリシー設定を定義チェック] ボックスをクリックして選択します。
  5. このポリシー設定には、[管理者]、[認証済みユーザー]、[すべてのユーザー]、[Windows 2000 以前の互換性のあるアクセス] グループが一覧表示されていることを確認します。 これらのグループのいずれかが見つからない場合は、次の手順に従います。
    1. [ ユーザーまたはグループの追加] を選択します
    2. [ ユーザーとグループ名 ] ボックスに、見つからないグループの名前を入力し、[OK] を選択 します
  6. [ OK] を選択 してポリシー設定を閉じます。
  7. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します
  8. 「gpupdate /force」と入力し、Enter キーを押します。

Windows 2000 サーバー ベースのドメイン コントローラーで [走査チェックのバイパス] 権限が付与されていることを確認するには、次の手順を実行します。

  1. [ スタート] を選択し、[ プログラム] をポイントし、[ 管理ツール] をポイントして、[ ドメイン コントローラー セキュリティ ポリシー] を選択します。
  2. [ セキュリティ設定] を展開し、[ ローカル ポリシー] を展開し、[ ユーザー権利の割り当て] を選択します。
  3. [ 走査チェックをバイパスする] をダブルクリックします。
  4. [これらのポリシー設定を定義チェック] ボックスをクリックして選択します。
  5. このポリシー設定には、[管理者]、[認証済みユーザー]、[すべてのユーザー]、[Windows 2000 以前の互換性のあるアクセス] グループが一覧表示されていることを確認します。 これらのグループのいずれかが見つからない場合は、次の手順に従います。
    1. [追加] を選択します。
    2. [ ユーザーとグループ名 ] ボックスに、見つからないグループの名前を入力し、[OK] を選択 します
  6. [ OK] を選択 してポリシー設定を閉じます。
  7. コマンド プロンプトを起動します。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「cmd」と入力し、[ OK] を選択します
  8. 「secedit /refreshpolicy machine_policy /enforce」と入力し、select キーを押します。

手順 7: ドメイン コントローラーがジャーナル ラップ状態になっていないことを確認する

ドメイン コントローラーがジャーナル ラップ状態であるかどうかを確認するには、イベント ビューアーでファイル レプリケーション サービス ログを表示し、NTFRS イベント ID 13568 を検索します。 イベント ID 13568 は、次のイベント ID に似ています。
NTFRS イベント ID 13568 がドメイン コントローラーに記録されている場合、ジャーナル ラップ エラーのトラブルシューティング方法の詳細については、「 Sysvol および DFS レプリカ セットのjournal_wrap エラーのトラブルシューティング方法」を参照してください。

手順 8: Dfsutil /PurgeMupCache コマンドを実行する

スイッチを使用して Dfsutil.exe プログラムを実行して、 /PurgeMupCache ローカル DFS/MUP キャッシュされた情報をフラッシュします。 Dfsutil.exe プログラムは、Windows 2000 Server サポート ツールと Windows Server 2003 サポート ツールに含まれています。