在 Windows Vista 中,安全物件會自動繼承建立該物件之程序的整合層級。因此,檔案或登錄機碼在保護模式下建立時,會繼承低整合性。這表示低整合性程序可獲得其建立之物件的寫入權限。不過,低整合性的程序無法在使用者設定檔內,取得中或高整合性之資料夾或檔案的寫入權限。
根據預設,當 Microsoft Internet Explorer 7.0 在保護模式執行時,其延伸模組將無法存取中整合性或高整合性的物件。這是對抗惡意軟體攻擊的最佳保護。延伸模組需要存取更高整合性的物件時,預設的 Internet Explorer 7.0 行為是會透過對話方塊提示使用者是否提高權限。如果使用者確定要提高權限,則會以更高整合性層級建立代理 (Broker) 程序。此代理程序會代表 Internet Explorer 7.0 存取更高整合性的物件。
您可以使用登錄來覆寫此預設行為,不再透過對話方塊提示使用者提高權限。本文將告訴您,管理員如何使用 .adm 或 .admx 檔來新增 [為保護模式啟用自訂提高權限原則 (Enable Customizing The Elevation Policy For Protected Mode) 原則,以便為不同應用程式強制想要的提高權限原則行為。
提高權限原則登錄組織
您可以用下列值來建立代理 GUID,以改變預設提高權限原則:
- AppName:可執行檔名稱的 REG_SZ 值。
- AppPath:使用者選取的可執行檔安裝位置的 REG_SZ 值。
- CLSID:如果您的延伸模組會啟動 COM 伺服器,請加入包含延伸模組之 CLSID 的 REG_SZ 值。
- Policy:用來指示保護模式該如何啟動代理的 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 檔案以納入此原則,請依照下列步驟執行:
- 定義應用程式清單,其中包括您要設定提高權限原則的應用程式。決定每一個程式要使用的提高權限原則。使用 0–3
的值,如本文稍早的表格中所說明。
- 開啟文字編輯器 (例如 [記事本]),然後將下列範本複製到 [記事本] 檔案中。
注意 在此程式碼以及本文其他程式碼範例中,以
<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 以確認結果。 - 以適當的值填入原則範本。如果要執行這項操作,請依照下列步驟執行。
- 產生新的 GUID,然後以新的 GUID 取代程式碼範例中的
<GUID1>。
- 針對您選取的第一個應用程式,寫入可執行檔的名稱,而非
<APPNAME1>,並將可執行檔的路徑寫入
<APPPATH1>。如果您的延伸模組會啟動 COM 伺服器,請於
<CLSID> 新增延伸模組的 CLSID。於
<POLICY1> 寫入應用程式的提高權限原則號碼 0-3。
- 為您選取的所有其他應用程式複寫 <enabledList> 和
</enabledList> 之間的程式碼區塊,然後重複步驟 3a 和 3b 來填入這些區塊。
- 在程式碼的 CLASS MACHINE 項目之下,複製步驟 3 所建立的原則。
- 將檔案另存為 .adm 檔。例如,可以將檔案另存為
ElevationPolicy.adm。
- 如果要確認結果,請依照下列步驟執行:
- 開啟 [群組原則物件編輯器]。
- 找出 [電腦設定],然後展開
[系統管理範本]。
- 用滑鼠右鍵按一下 [系統管理範本],然後按一下
[新增/移除範本]。在對話方塊中,按一下 [新增] 以便加入您在步驟 4 所建立的
ElevationPolicy.adm 檔。
注意 .admx 或 .adml 檔必須置於
<%windir%>\policydefinitons\
目錄下。您將無法稍後用滑鼠右鍵按一下 [群組原則物件編輯器] 來新增這些檔案。 - 找出 [電腦設定]、展開
[系統管理範本]、展開 [Windows 元件],然後按一下
[Internet Explorer]。
- 在右窗格中,搜尋新增的 [為保護模式啟用自訂提高權限原則 (Enable Customizing The
Elevation Policy For Protected Mode) 原則,並啟用此原則。
- 檢查登錄以確認想要的登錄項目已經填入下列子機碼:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy
. - 重複步驟 5c 以進行使用者設定。檢查登錄以確認想要的登錄項目已經填入下列子機碼:
HKEY_CURRENT_USER\Software\policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy
注意 步驟 3d、4 及 5b 僅適用於 .adm 檔。
如需詳細資訊,請造訪下列 Microsoft TechNet 網站: