如何编写自定义的 .adm 和 .admx 管理模板文件以便为 Internet Explorer 7.0 中的保护模式提供提升策略

文章翻译 文章翻译
文章编号: 918239 - 查看本文应用于的产品
测试版信息
本文讨论 Microsoft 产品的测试版。本文中的信息按原样提供,如有更改恕不另行通知。

Microsoft 对此测试版产品不提供正式产品支持。有关如何获取对测试版的支持的信息,请参见测试版产品文件附带的文档,或到您下载此版本的网站位置查看。
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先对其进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
展开全部 | 关闭全部

本文内容

概要

在 Windows Vista 中,安全对象将自动继承创建安全对象的进程的完整性级别。因此,如果在保护模式下创建文件或注册表项,则文件或注册表项的完整性级别为低。这意味着完整性级别低的进程可以获得对该进程所创建的对象的写权限。但是,完整性级别低的进程无法获得对用户配置文件内完整性级别为中或高的文件夹或文件的写权限。

默认情况下,在保护模式下运行 Microsoft Internet Explorer 7.0 时,扩展无法访问完整性级别为中或高的对象。这为防止恶意软件攻击提供了最佳保护。当扩展需要访问完整性级别较高的对象时,Internet Explorer 7.0 的默认行为是通过对话框提示用户进行提升。如果用户确认要进行提升,则会创建一个完整性级别较高的代理进程。此代理进程可以代表 Internet Explorer 7.0 访问完整性级别较高的对象。

您可以使用注册表覆盖此默认行为,以便不通过对话框提示用户进行提升。本文描述管理员如何使用 .adm 或 .admx 文件添加“针对保护模式启用自定义的提升策略”策略,以便针对不同的应用程序强制实施其所需的提升策略行为。

简介

提升策略注册表组织


您可以使用以下值创建代理 GUID 并更改默认的提升策略:
  • AppName:可执行文件名称的 REG_SZ 值。
  • AppPath:用户选择的可执行文件安装位置的 REG_SZ 值。
  • CLSID:如果扩展启动 COM 服务器,请添加包含扩展的 CLSID 的 REG_SZ 值。
  • 策略:一个指明保护模式应该如何启动代理的 DWORD 值。下表描述了支持的值及其含义。
收起该表格展开该表格
结果
3保护模式以无提示方式将代理作为完整性级别为中的一个进程来启动。
2保护模式提示用户提供启动此进程的权限。如果授予权限,则将作为完整性级别为中的进程来启动此进程。
1保护模式以无提示方式将代理作为完整性级别低的一个进程来启动。
0保护模式阻止进程启动。

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。

您将必须按照如下方式添加 GUID:
  • 在以下注册表子项下面添加此 GUID:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Internet Explorer \Low Rights\ElevationPolicy
  • 在以下其中一个注册表子项下面创建一个类似的注册表项:
    HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\InternetExplorer\Low Rights\ElevationPolicy
    HKEY_CURRENT_USER\Software\Policies\Microsoft\InternetExplorer\Low Rights\ElevationPolicy
创建自定义的 .adm 文件

若要创建自定义的 .adm 文件以包括此策略,请按照下列步骤操作:
  1. 定义一个想要为其配置提升策略的应用程序列表。确定要用于每个应用程序的提升策略。使用本文前面描述的表中的值 0–3。
  2. 打开文本编辑器,例如记事本,并将以下模板复制到记事本文件中。

    注意:本文内此代码示例和其他代码示例中 <APPNAME1>、<APPPATH1>、<CLSID1> 和 <POLICY1> 所代表的值分别是应用程序名称、应用程序路径、CLSID 以及必须应用的策略的占位符。
    CLASS USER
    CATEGORY !!WindowsComponents
    	CATEGORY !!InternetExplorer
    		POLICY !!ConfigureElevationPolicy
    			#if version >= 4
    			SUPPORTED !!SUPPORTED_IE7
    			#endif
    			KEYNAME "Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy"
    			ACTIONLISTON
    				KEYNAME "Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\<GUID1>"
    				VALUENAME AppName       VALUE "<APPNAME1>"	                      
    				VALUENAME AppPath       VALUE "<APPPATH1>"                                                                                     
    				VALUENAME CLSID         VALUE "<CLSID1>"
    				VALUENAME Policy        VALUE NUMERIC "<POLICY1>"
    			END ACTIONLISTON
    		END POLICY
    	END CATEGORY
    END CATEGORY
    
    CLASS MACHINE
    CATEGORY !!WindowsComponents
    	CATEGORY !!InternetExplorer
    		<POLICY ... END POLICY will be exactly same as that under class user>
       	END CATEGORY
    END CATEGORY
    
    
    [strings]
    SUPPORTED_IE7="At least Internet Explorer 7.0"
    WindowsComponents="Windows Components"
    InternetExplorer="Internet Explorer"
    ConfigureElevationPolicy="Enable customizing the elevation policy for Protected Mode"

    创建 .admx 和 .adml 文件

    若要创建 .admx 和 .adml 文件,请使用以下模板,而不是创建自定义的 .adm 模板文件。若要用 . adm 文件的真实值填写此模板,也可以执行步骤 3。请对其他应用程序重复使用 <enabledList> 和 </enabledList> 之间的代码块。

    创建 ElevationPolicy.admx 文件
    <?xml version="1.0" encoding="utf-8"?>
    <policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="0.9" schemaVersion="0.9" xmlns="http://www.microsoft.com/GroupPolicy/PolicyDefinitions">
      <policyNamespaces>
        <target prefix="ElevationPolicy" namespace="Microsoft.Policies.ElevationPolicy" />
        <using prefix="inetres" namespace="Microsoft.Policies.InternetExplorer" />
      </policyNamespaces>
      <resources minRequiredRevision="0.9" />
      <policies>
          <policy name="ConfigureElevationPolicy_1" class="User" displayName="$(string.ConfigureElevationPolicy)" key="Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy">
          	  <parentCategory ref="inetres:InternetExplorer" />
              <enabledList>
                 <item key="Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\<GUID1>" valueName="AppName">
                   <value>
                     <string><APPNAME1></string>
                   </value>
                 </item>
                 <item key="Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\<GUID1>" valueName="AppPath">
                   <value>
                      <string><APPPATH1></string>
                   </value>	
                 </item>	
                 <item key="Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\<GUID1>" valueName="CLSID">
                   <value>
                     <string><CLSID1></string>
                   </value>
                 </item>
                 <item key="Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\<GUID1>" valueName="Policy">
                   <value>
                     <decimal value="<POLICY1>" />
                   </value>
                 </item>
               </enabledList>
          </policy>
          <policy name="ConfigureElevationPolicy_2" class="Machine" displayName="$(string.ConfigureElevationPolicy)" key="Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy">
              <parentCategory ref="inetres:InternetExplorer" />
              <enabledList> <same as user policy above> </enabledList> 
          </policy> 
      </policies>
    </policyDefinitions>

    创建 ElevationPolicy.adml 文件

    <?xml version="1.0" encoding="utf-8"?>
    <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="0.9" schemaVersion="0.9" xmlns="http://www.microsoft.com/GroupPolicy/PolicyDefinitions">
      <displayName>enter display name here</displayName>
      <description>enter description here</description>
      <resources>
        <stringTable>
          <string id="ConfigureElevationPolicy">Enable customizing the elevation policy for Protected Mode</string>
        </stringTable>
      </resources>
    </policyDefinitionResources>

    注意:您应该将 .admx 文件放在 <%windir%>\policydefinitions 中,将 .adml 文件放在 <%windir%>\policydefinitions\<%lang-dir%> 中。运行 gpedit.msc 以验证结果。
  3. 用合适的值填写策略模板。为此,请按照下列步骤操作。
    1. 生成一个新的 GUID 并用此新的 GUID 替换代码示例中的 <GUID1>
    2. 对于所选择的第一个应用程序,请编写可执行程序的名称以取代 <APPNAME1>,并在 <APPPATH1> 中编写可执行文件的路径。如果您的扩展启动了 COM 服务器,请在 <CLSID> 中添加扩展的 CLSID。在 <POLICY1> 中为应用程序编写提升策略编号 0-3。
    3. 为所选择的所有其他应用程序复制 <enabledList> 和 </enabledList> 之间的代码块,然后重复步骤 3a 和步骤 3b 以填充这些块。
    4. 在代码中的 CLASS MACHINE 项下面复制在步骤 3 中创建的策略。
  4. 将文件另存为 .adm 文件。例如,将其另存为 ElevationPolicy.adm
  5. 若要验证结果,请按照下列步骤操作:
    1. 打开组策略对象编辑器。
    2. 找到“计算机配置”,然后展开“管理模板”。
    3. 右键单击“管理模板”,然后单击“添加/删除模板”。在对话框中,单击“添加”以添加在步骤 4 中创建的 ElevationPolicy.adm 文件。
      注意:.admx 文件或 .adml 文件必须放在 <%windir%>\policydefinitons\ 中。以后无法通过在组策略对象编辑器中右键单击来添加这些文件。
    4. 找到“计算机配置”,展开“管理模板”,再展开“Windows 组件”,然后单击“Internet Explorer”。
    5. 在右面板中,搜索新策略“针对保护模式启用自定义的提升策略”并启用此策略。
    6. 检查注册表以验证在以下子项中是否填写了所需的注册表项:
      HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy
      .
    7. 针对“用户配置”重复步骤 5c。检查注册表以验证在以下子项中是否填写了所需的注册表项:
      HKEY_CURRENT_USER\Software\policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy
注意:步骤 3d、4 和 5b 只适用于 .adm 文件。

参考

有关更多信息,请访问下面的 Microsoft TechNet 网站:
http://www.microsoft.com/technet/windowsvista/library/02633470-396c-4e34-971a-0c5b090dc4fd.mspx
http://www.microsoft.com/technet/windowsvista/library/90c3c5f5-b756-49b1-bfd6-a5da93305bbc.mspx
http://www.microsoft.com/technet/windowsvista/library/1494d791-72e1-484b-a67a-22f66fbf9d17.mspx

属性

文章编号: 918239 - 最后修改: 2007年11月21日 - 修订: 1.1
这篇文章中的信息适用于:
  • Windows Internet Explorer 7
关键字:?
kbhowto kbinfo KB918239
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com