HOW TO:使用 Caspol.exe 加入程式碼群組

更新:2007 年 11 月

加入群組命令範例

當您使用程式碼存取安全性原則工具 (Caspol.exe) 將程式碼群組加入至程式碼群組階層架構時,您必須同時為新程式碼群組定義成員資格條件和使用權限集合。您也必須定義父程式碼群組 (您正要在其中加入新程式碼群組那一個) 的標記 (Label) 或名稱。您也可以選擇性地在程式碼群組上設定其他旗標。如需這些旗標的詳細資訊,請參閱程式碼存取安全性原則工具 (Caspol.exe)

若要加入程式碼群組至程式碼群組階層架構

  • 在命令提示字元中輸入下列命令:

    caspol [-enterprise|-machine|-user] -addgroup {parentLabel|parentName} mship pset_name [-exclusive {on|off}][-levelfinal {on|off}] [-namename] [-descriptiondescription text]

    -addgroup 選項之前指定原則層級選項。如果您省略原則層級選項,Caspol.exe 會將程式碼群組加入至預設原則層級。對於電腦系統管理員而言,預設層級為電腦原則層級;對其他人而言,則為使用者原則層級。在這個命令中:

    • parentLabel 引數為新程式碼群組的父程式碼群組標記。此外,您也可以使用父代 (Parent) 的程式碼群組名稱 (parentName) 來代替 parentLabel。若要取得此資訊,請按照 HOW TO:使用 Caspol.exe 檢視程式碼群組的說明,列出程式碼群組。

    • pset_name 引數是要和新程式碼群組產生關聯的使用權限集合的名稱。在具名使用權限集合可以和程式碼群組產生關聯之前,它必須在您將要加入新程式碼群組的原則層級上為已知的。例如,如果您想要使 MyPset 使用權限集合與使用者原則中的新程式碼群組產生關聯,您必須已經將 MyPset 使用權限集合加入至使用者原則。使用權限集合不需事先加入的唯一時機是,當您使用 .NET Framework 所提供標準使用權限集合的其中之一時。若要了解如何將使用權限集合加入原則層級,請參閱 HOW TO:使用 Caspol.exe 加入使用權限集合

    • mship 引數為新程式碼群組的成員資格條件。如需 mship 引數值的清單,請參閱程式碼存取安全性原則工具 (Caspol.exe)

注意事項:

您不能使用 -addgroup 選項一次將程式碼群組加入至一個以上的層級。每一個這樣的加入都必須個別進行,因為不同程式碼群組標記和某些使用權限集合的可用性會造成混淆。

加入群組命令範例

下列程序描述如何執行一些最常見的程式碼群組加入工作。

若要加入以來自內部網路的程式碼為目標的程式碼群組

  • 使用 -zone 選項,並指定 Intranet 做為成員資格值。

    下列命令可使 Everything 使用權限集合與來自內部網路的程式碼產生關聯。程式碼群組名稱也指定為 Intranet_CG。您可以使用這個名稱來參考新建立的程式碼群組,而非使用其數值標記。

    caspol –addgroup 1.1. –zone Intranet Everything –name "Intranet_CG"
    

若要加入以來自Internet Explorer 信任網站的程式碼為目標的程式碼群組

  • 使用 -zone 選項,並指定 Trusted 做為成員資格值。

    下列命令使 LocalIntranet 使用權限集合與來自受信任區域的程式碼產生關聯,並插入新程式碼群組當做程式碼群組階層架構的根 (Root) 的子系。

    caspol -addgroup All_Code -zone Trusted LocalIntranet
    

若要加入以特定軟體發行者為目標的程式碼群組

  • 使用 -pub 選項,並指定憑證檔、已簽名檔案,或 X.509 憑證的十六進位表示。

    軟體發行者的檔案必須為這個成員資格條件妥善簽名才能運作。成員資格條件可以在實際的憑證檔或簽名的 .exe 檔案其中之一的基礎上來建構。

    假定有 FourthCoffee (FourthCoffee.cer) 的憑證檔可用。下列命令會為 FourthCoffee 發行的程式碼在電腦原則中加入程式碼群組,並使 Nothing 使用權限集合與新群組產生關聯。程式碼群組被當做根的子程式碼群組來加入。

    caspol –machine –addgroup 1 –pub –cert FourthCoffee.cer Nothing
    

若要加入以來自特定網站程式碼為目標的程式碼群組

  • 使用 -site 選項,並指定網站的 URL。

    注意事項:

    由於會有 DNS 名稱冒用的可能,使用網站當做成員資格條件,並無法有效確定程式碼的識別 (Identity)。請盡可能使用強式名稱 (Strong Name) 成員資格條件、發行者成員資格條件或雜湊成員資格條件。

    下列命令會使 Intranet 使用權限集合與來自 www.microsoft.com 的程式碼產生關聯。

    caspol –addgroup 1 –site www.microsoft.com Intranet
    

若要加入以來自特定 URL 程式碼為目標的程式碼群組

  • 使用 -url 選項,並指定網站的 URL。

    URL 必須包括通訊協定,如 http://、http:// 或 ftp://。此外,可以使用萬用字元 (*) 指定來自特定 URL 的多個組件。

    注意事項:

    因為 URL 可以使用多個名稱來識別,所以將 URL 當做成員資格條件使用並不是確定程式碼識別的安全方法。請盡可能使用強式名稱 (Strong Name) 成員資格條件、發行者成員資格條件或雜湊成員資格條件。

    caspol –user –addgroup 1 –url https://www.contoso.com/bin/* FullTrust
    caspol –user –addgroup 1 –url https://www.contoso.com/bin/MyAssembly.dll FullTrust
    

若要加入覆寫原則層級上其他使用權限的程式碼群組

  • 設定新程式碼群組的 -exclusive 旗標。

    下列命令會在 Intranet_cg 程式碼群組之下加入程式碼群組。如果區域是受信任的,並且覆寫其他程式碼群組可能授與的任何其他使用權限的話,新程式碼群組將授與 Everything 使用權限集合。

    caspol –addgroup "Intranet_cg" –zone Trusted Everything –exclusive on
    

若要加入具有自訂成員資格條件的程式碼群組

  • 使用 -custom 選項,並指定含有自訂成員資格條件的 XML 序列化 (Serialization) 的 XML 檔。

    Caspol.exe 在原則中支援自訂成員資格條件的使用,這原則使得原則系統的可擴充性大大提高。

    下列命令會將新程式碼群組加入至使用者原則的根。這個新程式碼群組包含存在於 NewMembershipCondition.xml 檔案的自訂成員資格條件,並對符合這個成員資格條件的組件授與完全信任。

    caspol –user –addgroup All_Code –custom NewMembershipCondition.xml FullTrust
    

若要加入具有名稱和說明的程式碼群組

  1. 使用 -name 選項,並指定程式碼群組的名稱。含有空格的名稱需要以雙引號 (" ") 括住。

  2. 使用 -description 選項,並指定程式碼群組的說明。

您可以稍後使用名稱來參考程式碼群組。名稱為指令碼原則變更提供較數值標記為佳的支援。

預設原則將與預設名稱一起發行。如果沒有被系統管理員明確變更,預設名稱會讓系統管理員在使用 Caspol.exe 來跨原則和電腦存取特定程式碼群組時,變得更為輕鬆。

下列命令會在電腦原則中的 All_Code 群組之下加入程式碼群組。新程式碼群組將檢查 FourthCoffee 強式名稱 (Signed.exe 中所看到的),並將 FullTrust 授與所有如此簽名的程式碼。程式碼群組被命名為 FouthCoffeeStrongName,並有適當說明指定給它。

caspol –machine –addgroup All_Code –strong –file signed.exe FullTrust –name FouthCoffeeStrongName –description "Code group granting trust to code signed by FourthCoffee"
注意事項:

如果相同名稱存在於一個以上的程式碼群組,Caspol.exe 將解析至可以使用指定名稱找到的第一個程式碼群組。它會在搜尋同層級 (Sibling) 群組之前搜尋程式碼群組的所有子程式碼群組。

請參閱

概念

安全性原則模型

參考

程式碼存取安全性原則工具 (Caspol.exe)

其他資源

使用程式碼存取安全性原則工具 (Caspol.exe) 設定安全性原則

使用 Caspol.exe 設定程式碼群組