Based on security changes implemented in MS05-051, Read level NTFS file system permission is required to the %windir%\registration folder. Default permissions include Read access for the Everyone group. If this configuration is changed, applications and services may exhibit unexpected behavior. Organizations that have chosen to implement more restrictive NTFS security permissions should consider granting Read level permissions through group membership for users, applications, and services that require access to COM functionality. We recommend that the default settings for the folder be used to avoid potential application compatibility. Extensive application compatibility testing is recommended for administrators who want to implement settings other than the default settings.
For more information about the issues that may be experienced by modifying permissions on system folders, click the following article number to view the article in the Microsoft Knowledge Base: 885409 Security configuration guidance support
Besides NTFS permissions, Bypass Traversal permission is required. By default, this permission is granted to the Everyone group. As stated with NFTS permissions, users, applications, and services should be granted this permission through group membership.
For more information about the Bypass Traversal user right, click the following article number to view the article in the Microsoft Knowledge Base: 823659 Client, service, and program incompatibilities that may occur when you modify security settings and user rights assignments
To resolve this problem, restore the default permissions to the COM+ catalog.
For a computer that is running Windows 2000 or Windows Server 2003 and is not running as a domain controller, follow these steps:
- In the %windir%/registration folder, make sure that the Everyone group has Read permissions.
- In the %windir%/registration folder, make sure that the SYSTEM account has Full Control permissions.
- In the %windir%/registration folder, make sure that the Administrators group has Full Control permissions.
- In the advanced security properties of the .clb files in the %windir%/registration folder, make sure that the Allow inheritable auditing entries from the parent to propagate to this object and all objects. Include these with entries explicitly defined here option is selected.
- Make sure that the Everyone group has one of the following permissions:
- Traverse permissions (“List Folder Contents”) on all parent directories, including %systemdrive%, %windir%, and %windir%\registration
- The Bypass traverse checking user right
To assign the Bypass traverse checking user right to the Everyone group, follow these steps:
- Click Start, click
Run, type gpedit.msc, and then click
OK. - Expand Computer Configuration, expand
Windows Settings, expand Security Settings, expand Local Policies, and then expand User Rights Assignment. - Right-click Bypass traverse checking, and then click Properties.
- Click Add User or Group.
- Type Everyone, and then click
OK.
Note If you receive a message that an object named "Users" cannot be found, click Object Types, click to select the
Groups check box, and then click OK two times.
For a domain controller that is running Windows 2000, follow these steps:
- In the %windir%/registration folder, make sure that the Authenticated Users group has Read & Execute permissions.
- In the %windir%/registration folder, make sure that the Server Operators group has Modify permissions.
- In the %windir%/registration folder, make sure that the SYSTEM account has Full Control permissions.
- In the %windir%/registration folder, make sure that the Administrators group has Full Control permissions.
- In the advanced security properties of the .clb files in the %windir%/registration folder, make sure that the Allow Inheritable permissions from parent to propagate to this object option is selected.
For a domain controller that is running Windows Server 2003, follow these steps:
- In the %windir%/registration folder, make sure that the Everyone group has Read & Execute permissions.
- In the %windir%/registration folder, make sure that the SYSTEM account has Full Control permissions.
- In the %windir%/registration folder, make sure that the Administrators group has Full Control permissions.
- In the advanced security properties of the .clb files in the %windir%/registration folder, make sure that the Allow inheritable auditing entries from the parent to propagate to this object and all objects. Include these with entries explicitly defined here. option is selected.
- Make sure that the Everyone group has one of the following permissions:
- Traverse permissions (“List Folder Contents”) on all parent directories, including %systemdrive%, %windir%, and %windir%\registration
- The Bypass traverse checking user right
To assign the Bypass traverse checking user right to the Everyone group, follow these steps:
- Click Start, click
Run, type gpedit.msc, and then click
OK. - Expand Computer Configuration, expand
Windows Settings, expand Security Settings, expand Local Policies, and then expand User Rights Assignment. - Right-click Bypass traverse checking, and then click Properties.
- Click Add User or Group.
- Type Everyone, and then click
OK.
Note If you receive a message that an object named "Users" cannot be found, click Object Types, click to select the
Groups check box, and then click OK two times.
Note The system may later create additional .clb files in the %windir%/registration folder. To make sure that the new .clb files have the appropriate permissions, grant the Read permissions to the whole directory instead of just granting it directly to the .clb files that currently exist. You can use the Cacls.exe file to automate these permission changes on the affected computer or to easily roll out the changes to multiple computers.
For a computer that is running Windows 2000 or Windows Server 2003 and is not running as a domain controller, use the following commands:
echo y| cacls %windir%\registration /G everyone:R system:F administrators:F
echo y| cacls %windir%\registration\*.clb /G everyone:R system:F administrators:F
For a domain controller that is running Windows 2000, use the following commands:
echo y| cacls %windir%\registration /G "Authenticated Users":R "Server Operators":R system:F administrators:F
For a domain controller that is running Windows 2003, use the following commands:
echo y| cacls %windir%\registration /G everyone:R system:F administrators:F
echo y| cacls %windir%\registration\*.clb /G everyone:R system:F administrators:F
Note Make sure that there is no space between the y character and the pipe (|) character. If there is a space between these characters, the commands will not correctly execute.