名前空間はすでに定義されているエラーを修正

Windows 10でグループポリシーエディターを開くか、影響を受けるポリシーを編集しようとすると、「名前空間は既に定義されています」というエラーメッセージが表示されることがあります。

例として、Windows 10マシンでグループポリシーエディターを開くと、次のエラーメッセージが2回表示されました。

名前空間 'Microsoft.Policies.Sensors.WindowsLocationProvider'は、ストア内の別のファイルのターゲット名前空間として既に定義されています。

ファイルC: WINDOWS PolicyDefinitions Microsoft-Windows-Geolocation-WLPAdm.admx、5行、110列

この問題は、Windows 10ビルド1511でのポリシーの名前の変更が原因で発生します。ポリシーの元の名前はWindows 10 RTMではMicrosoft-Windows-Geolocation-WLPAdm.admxでしたが、Windows 10ビルド1511ではLocationProviderADM.admxに名前が変更されました。

グループポリシーエディターは名前空間の競合を検出し、エラーメッセージで通知します。

名前空間はすでに定義されています

namespace is already defined error

名前空間はすでに定義されていますエラーは、Windows 10 RTMからWindows 10バージョン1511などの新しいバージョンにアップグレードされたホームコンピューターシステムでスローされる場合があります。

また、競合するポリシーがストアにコピーされた場合にグループポリシー管理用テンプレートファイルの中央ストアが使用されると、ビジネスシステムまたはエンタープライズシステムで問題になる可能性があります。

問題を修正する

エラーメッセージは情報メッセージであり、悪影響を与えることなく無視できます。削除は、中央ストアが使用されているかどうかによって異なります。

ローカルシステム、中央ストアなし

namespace error

この場合の解決策は、コンピューター上の古いポリシーテンプレートファイルを削除することです。エラーメッセージは、C: Windows PolicyDefinitions の下に保存されているパスを強調表示します。

問題なくフォルダーにアクセスできますが、フォルダーに含まれているファイルを削除できないことがわかります。

ADMXファイルとADMLファイルはシステムで保護されています。つまり、デフォルトではファイルの名前変更、移動、削除はできません。

ファイルにNTFSアクセス許可を追加する必要があります。これはコマンドラインで行います。

手順1:管理者特権のコマンドプロンプトを開く

cmd elevated

Windowsキーをタップしてcmd.exeと入力し、キーボードのShiftキーとCTRLキーを押しながらEnterキーを押します。または、コマンドプロンプトの結果を右クリックして、コンテキストメニューから[管理者として実行]を選択します。

これにより、コマンドの実行に必要な昇格されたコマンドプロンプトが開きます。

ステップ2:コマンドを実行して必要な権限を追加する

takeown commands

実行する必要がある2つのコマンドは次のとおりです。

takeown / F 'C: Windows PolicyDefinitions Microsoft-Windows-Geolocation-WLPAdm.admx' / A

takeown / F 'C: Windows PolicyDefinitions en-US Microsoft-Windows-Geolocation-WLPAdm.adml' / A

注:2番目のコマンドの en-US の部分を別のロケールに置き換える必要がある場合があります。 C: Windows PolicyDefinitionsフォルダーとロケールサブフォルダーを確認して、それが当てはまるかどうかを確認してください。

Windowsは、各コマンドの後に成功メッセージを表示して、ファイルが現在「管理者グループによって所有されている」ことを示します。

手順3:管理者にフルアクセスを許可する

full control

管理者はファイルへのフルアクセスが必要であり、これはこのステップで処理されます。

  1. エクスプローラーでC: Windows PolicyDefinitionsフォルダーを開き、Microsoft-Windows-Geolocation-WLPAdm.admxを右クリックします。
  2. コンテキストメニューからプロパティを選択します。
  3. [セキュリティ]タブに切り替えます。
  4. ページが開いたら編集ボタンを選択します。
  5. 「グループ名またはユーザー名」でAdministratorsグループを選択します。
  6. 許可の下の「フルコントロール」ボックスをチェックします。
  7. 表示されるWindowsセキュリティメッセージを受け入れます。
  8. OKをクリックします。

C: Windows PolicyDefinitions en-US Microsoft-Windows-Geolocation-WLPAdm.admlについても同じ手順を繰り返します。再度、必要に応じてen-USロケールをデバイスで使用されているロケールに変更します。

ステップ4:名前を変更または削除する ファイル

namespace error

エクスプローラーを使用してC: Windows PolicyDefinitionsを開き、リストからMicrosoft-Windows-Geolocation-WLPAdm.admxファイルを見つけます。

安全のため、ポリシーテンプレートの名前を変更することができます。これを行うには、ファイルを右クリックして、コンテキストメニューから[名前の変更]を選択します。

ファイル拡張子を.admxから.oldに置き換えて、新しいファイル名がMicrosoft-Windows-Geolocation-WLPAdm.oldになるようにします。

実行時に、拡張子を変更するとファイルが使用できなくなる可能性があることを警告するプロンプトが表示される場合があります。

rename

これは意図的なものなので、[はい]を選択します。その後、Windowsは2番目のプロンプトを表示して、ファイルの名前を変更するには管理者権限が必要であることを示します。

file access denied

[続行]を選択してファイルの変更に対する管理権限を付与し、2番目のファイルに対して操作を繰り返します。

または、名前を変更する代わりに、ファイルを完全に削除します。

中央ストアソリューション

中央ストアが使用されている場合、問題を解決するには以下を実行します。

  1. 中央ストアからファイルLocationProviderADM.admxおよびLocationProviderADM.admlを削除します。
  2. Microsoft-Windows-Geolocation-WLPAdm.admxの名前をLocationProviderADM.admxに変更します。
  3. Microsoft-Windows-Geolocation-WLPAdm.admlをLocationProviderADM.admlに名前変更します。

おわりに

変更後、グループポリシーがエラーなしで開くはずです。このメソッドは他の名前空間の競合でも機能することに注意してください。たとえば、ポリシーを削除せずに名前を変更することを決定した場合、Microsoftはそれらの問題も解決します。