在解决过程中,发现有很多错误都能导致没有权限访问组策路,但与此同时其他相似msc文件也是没有权限访问的,但在我的电脑上只有组策略没有权限访问,其他都能正常地访问。可见组策路无法被访问可能是gpedit.msc文件在当前用户下没有读写权限,或者是组策略访问的文件在当前用户下没有读取权限。从这个方向考虑,首先gpedit.msc本省在当前用户下具有读写权限,那么就出在读取文件权限的问题上,果真如此。在组策略运行起来之间,她要访问C:/windows/system32/GroupPolicy目录下的配置文件,可这个目录下的所有文件在当前用户下都没有权限,运行如下命令可以得到上面那个结论:
C:/WINDOWS/system32/GroupPolicy>cacls ../GroupPolicy
C:/WINDOWS/system32/GroupPolicy Everyone:(OI)(CI)R
那现在就要更改此目录在当前用户的读写权限。运行命令如下:
C:/WINDOWS/system32/GroupPolicy>cacls c:/WINDOWS/system32/GroupPolicy /e /c /t /p administrator:f
处理的目录: c:/WINDOWS/system32/GroupPolicy
处理的目录: c:/WINDOWS/system32/GroupPolicy/Adm
处理的文件: c:/WINDOWS/system32/GroupPolicy/gpt.ini
处理的目录: c:/WINDOWS/system32/GroupPolicy/User
处理的文件: c:/WINDOWS/system32/GroupPolicy/Adm/admfiles.ini
处理的目录: c:/WINDOWS/system32/GroupPolicy/User/Scripts
处理的目录: c:/WINDOWS/system32/GroupPolicy/User/Scripts/Logon
处理的文件: c:/WINDOWS/system32/GroupPolicy/User/Scripts/scripts.ini
这样就可以正常地访问组策略了。
最后要注意cacls命令的使用,如果你给某个用户赋予或更改权限,带/p参数命令如果不行,那就换成带/g参数命令。还有加点说明:cacls更新文件或者目录的权限,最好把文件路径或者目录路径放在cacls后面,参数的前面,这样就不会碰到奇怪的问题,因为把路径放在参数的后面,可能会运行不成功。