treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

(1/2)Windows10のローカルポリシーでエラー、調査してみよう

昨日のローカルポリシーエディタでポリシー編集した際に、エラーメッセージが表示されて気になっています。
今日はこのエラーメッセージについてご報告します。

メッセージは何かというと

gpedit.mscを起動するとこんなメッセージが表示されます。
図:起動後のエラーメッセージ図

f:id:treedown:20160330020347p:plain

メッセージ自体は同一の以下のメッセージが二回表示されます。
---------------------------
管理用テンプレート
---------------------------
名前空間 'Microsoft.Policies.Sensors.WindowsLocationProvider' は、既にストア内の別のファイルのターゲット名前空間として定義されています。

ファイル C:\WINDOWS\PolicyDefinitions\Microsoft-Windows-Geolocation-WLPAdm.admx、行 5、列 110
---------------------------
OK   
---------------------------
いずれのメッセージもOKボタンをクリックして完了させます。

初期のWindows10ではこういうメッセージが出なかったようですが、1511だかTH2だかにバージョンが上がった際に発生するようになったようです。
この問題は
https://support.microsoft.com/en-us/kb/3077013
に解説があります。
役に立ちそうなところを、ちょっと日本語にしてみましょう。

"すでに定義されています"エラーについて

「'Microsoft.Policies.Sensors.WindowsLocationProvider' is already defined" error when you edit a policy in Windows」より

Windowsでポリシーを編集するときに"'Microsoft.Policies.Sensors.WindowsLocationProvider'はすでに定義されています"エラーが表示される
----------------------------------------------
原因:
LocationProviderADM.admxファイルがWindows10RTMの中のMicrosoft-Windows-Geolocation-WLPAdm.admxとして新しく名前をつけられたので、この問題は起こります。

シナリオ1
Windowsのより早いリリースから存在するLocationProviderADM.ADMXファイルを含んでいるセントラルストアに、あなたがWindows10から.admxファイルをコピーした後に、同じ設定を含んでいるけれども違う名前を付けられている2つの.admxファイルがあります。 これで、「名前空間はすでに定義されています」とエラーを引き起こします。

シナリオ2
あなたがWindows10RTMからWindows10バージョン1511までアップグレードする時に、まだ古いMicrosoft-Windows-Geolocation-WLPAdm.admxファイルを保持しているのに、新しいLocationProviderAdm.admxファイルがフォルダにコピーされています。  従って、同じ方針名前空間にアドレスする2つのADMXファイルが存在します。
----------------------------------------------
Workaround:
方法1
エラーメッセージを無視するために、OKをクリックしてください。 エラーメッセージは情報であり、予期されているように、グループポリシー設定は動作します。

方法2
LocationProviderADM.admxとLocationProviderADM.admlファイルを削除し、Microsoft-Windows-Geolocation-WLPAdm.admxとMicrosoft-Windows-Geolocation-WLPAdm.admlを正しい名前に変更してください。

シナリオ1
1.LocationProviderADM.admxとLocationProviderADM.admlファイルをセントラルストアから削除してください。
2.LocationProviderADM.admxとしてMicrosoft-Windows-Geolocation-WLPAdm.admxに新しく名前をつけてください。
3.LocationProviderADM.admlとしてMicrosoft-Windows-Geolocation-WLPAdm.admlに新しく名前をつけてください。

シナリオ2
Microsoft-Windows-Geolocation-WLPAdm.admxファイルをローカルストアから削除してください。 ローカルポリシーストアのパスはC:\Windows\PolicyDefinitionsです。
----------------------------------------------
重複があるからどっちか消してイイみたいですね。

消す方法(サポートサイトの続き)

引き続きサポートサイトでは重複ファイルの削除方法について解説されています。方法2(Workaround->Method 2)のシナリオ2(Scenario 2)のNote以降に記載の内容です。
----------------------------------------------
注:
ADMXとADMLファイルがシステムで保護されることに注意してください。これらのファイルに新しく名前をつけるか、削除するために、あなたはNTFS許可をファイルに追加しなければなりません。 これをするために、以下のコマンドを使ってください:

1.コマンドプロンプト(管理者)を開いてください、それから、所有権をローカルな管理者に与えるために、takeown.exeを使ってください:

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.両方のファイルにフル・コントロール許可を管理者に与えてください。

3..oldの拡張子を持つ両方のファイルに新しく名前をつけてください。そうすれば、あなたがGPEDIT.MSCを開く時に、あなたはもうGeolocationポップアップを受け取らないでしょう。
----------------------------------------------
LocationProviderADM.admx&LocationProviderADM.admlファイルが
Microsoft-Windows-Geolocation-WLPAdm.admxおよびMicrosoft-Windows-Geolocation-WLPAdm.admlと重複しているからエラーになっている、ということみたいです。

※私の環境では(というより日本語Windowsなら)
"C:\Windows\PolicyDefinitions\en-US\Microsoft-Windows-Geolocation-WLPAdm.adml"は
"C:\Windows\PolicyDefinitions\ja-JP\Microsoft-Windows-Geolocation-WLPAdm.adml"
にあります。ここだけ読み替える必要があるみたいですね。


長くなりましたので、明日に続きます。