Windows系统打开组策略时提示命名空间已经被定义

最近同学的几台电脑,打开策略组时总会弹出提示“命名空间 Microsoft.Policies.Sensors.WindowsLocationProvider 已经被定义为存储中另一文件的目标命名空间”,微软给的解决思路也挺简单粗暴的,用心感受一下。

解决办法

这个问题由报错中给出的这个文件 C:\WINDOWS\PolicyDefinitions\Microsoft-Windows-Geolocation-WLPAdm.admx的 行5列110 引起。百度给出的方法是直接删除后 Windows 会重新生成一个没有冲突的文件,因此删除即可
但绝大部分用户在删除时,会碰到一个问题:需要 TrustedInstaller 权限。直接修改文件的用户所属即可,但是描述起来可能会比较麻烦,这里分享两个获取权限的脚本。写好之后右键另存为reg格式双击写入注册表,要用的时候右键获取即可。

获取 TrustedInstaller 权限

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas]
@="获取TrustedInstaller权限"

[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="获取TrustedInstaller权限"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

获取最高权限

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="获取最高权限"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant

administrators:F"
[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="获取最高权限"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant

administrators:F"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="获取最高权限"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F

/t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant
administrators:F /t"

其他解决办法

其他解决办法还是有的,比如说用DISM,具体做法如下:
  • 鼠标移动至屏幕左下角,右键选择 命令提示符(管理员) 后输入
    > dism /online /Cleanup-Image /RestoreHealth & sfc /SCANNOW & pause
    
  • 如果上述方法无法解决,按顺序使用以下三种工具
    > dism /Online /Cleanup-Image /CheckHealth
    > dism /Online/Cleanup-Image /ScanHealth
    > dism /Online/Cleanup-image /RestoreHealth
    

参考资料

评论