Caspol.exe (コード アクセス セキュリティ ポリシー ツール)Caspol.exe (Code Access Security Policy Tool)

ユーザーと管理者は、コード アクセス セキュリティ (CAS) ポリシー ツール (Caspol.exe) を使用して、コンピューター ポリシー レベル、ユーザー ポリシー レベル、およびエンタープライズ ポリシー レベルのセキュリティ ポリシーを変更できます。The Code Access Security (CAS) Policy tool (Caspol.exe) enables users and administrators to modify security policy for the machine policy level, the user policy level, and the enterprise policy level.

重要

.NET Framework 4 以降では、<legacyCasPolicy> 要素true に設定されていない限り、Caspol.exe は CAS ポリシーに影響を与えません。Starting with the .NET Framework 4, Caspol.exe does not affect CAS policy unless the <legacyCasPolicy> element is set to true. CasPol.exe によって表示または変更された設定は、CAS ポリシーの使用が選択されているアプリケーションにのみ影響します。Any settings shown or modified by CasPol.exe will only affect applications that opt into using CAS policy. 詳細については、「セキュリティの変更点」を参照してください。For more information, see Security Changes.

注意

64 ビット コンピューターには、64 ビット バージョンと 32 ビット バージョンの両方のセキュリティ ポリシーが含まれます。64-bit computers include both 64-bit and 32-bit versions of security policy. 32 ビット アプリケーションと 64 ビット アプリケーションの両方にポリシーの変更を適用するには、Caspol.exe の 32 ビット バージョンと 64 ビット バージョンの両方を実行します。To ensure that your policy changes apply to both 32-bit and 64-bit applications, run both the 32-bit and 64-bit versions of Caspol.exe.

コード アクセス セキュリティ ポリシー ツールは、.NET Framework および Visual Studio と共に自動的にインストールされます。The Code Access Security Policy tool is automatically installed with the .NET Framework and with Visual Studio. Caspol.exe は、32 ビット システムでは %windir%\Microsoft.NET\Framework\version に、64 ビット システムでは %windir%\Microsoft.NET\Framework64\version にあります。You can find Caspol.exe in %windir%\Microsoft.NET\Framework\version on 32-bit systems or %windir%\Microsoft.NET\Framework64\version on 64-bit systems. (たとえば、場所は、64 ビット システムの .NET Framework 4 では %windir%\Microsoft.NET\Framework64\v4.030319\caspol.exe)。コンピューターで複数のバージョンの .NET Framework を side-by-side で実行している場合は、複数のバージョンのツールがインストールされると考えられます。(For example, the location is %windir%\Microsoft.NET\Framework64\v4.030319\caspol.exe for the .NET Framework 4 on a 64-bit system.) Multiple versions of the tool might be installed if your computer is running multiple versions of the .NET Framework side by side. インストール ディレクトリからツールを実行できます。You can run the tool from the installation directory. ただし、インストール フォルダーに移動する必要のないコマンド プロンプトを使用することをお勧めします。However, we recommend that you use the Command Prompts, which does not require you to navigate to the installation folder.

コマンド プロンプトに次のように入力します。At the command prompt, type the following:

構文Syntax

caspol [options]  

パラメーターParameters

オプションOption 説明Description
-addfulltrust assembly_file-addfulltrust assembly_file

oror

-af assembly_file-af assembly_file
カスタム セキュリティ オブジェクト (カスタム アクセス許可またはカスタム メンバーシップ条件) を実装するアセンブリを、特定のポリシー レベルの完全信頼アセンブリの一覧に追加します。Adds an assembly that implements a custom security object (such as a custom permission or a custom membership condition) to the full trust assembly list for a specific policy level. 引数 assembly_file は、追加するアセンブリを指定します。The assembly_file argument specifies the assembly to add. このファイルは、厳密な名前で署名する必要があります。This file must be signed with a strong name. アセンブリに厳密な名前で署名するには、厳密名ツール (Sn.exe) を使用します。You can sign an assembly with a strong name using the Strong Name Tool (Sn.exe).

カスタム アクセス許可を含むアクセス許可セットをポリシーに追加するたびに、そのカスタム アクセス許可を実装するアセンブリを、該当するポリシー レベルの完全信頼一覧に追加する必要があります。Whenever a permission set containing a custom permission is added to policy, the assembly implementing the custom permission must be added to the full trust list for that policy level. セキュリティ ポリシー (コンピューター ポリシーなど) の中で使用されるカスタム セキュリティ オブジェクト (カスタム コード グループやメンバーシップ条件など) を実装するすべてのアセンブリを、完全信頼アセンブリの一覧に常に追加する必要があります。Assemblies that implement custom security objects (such as custom code groups or membership conditions) used in a security policy (such as the machine policy) should always be added to the full trust assembly list. 注意: カスタム セキュリティ オブジェクトを実装するアセンブリが他のアセンブリを参照している場合は、参照先アセンブリを最初に完全信頼アセンブリの一覧に追加する必要があります。Caution: If the assembly implementing the custom security object references other assemblies, you must first add the referenced assemblies to the full trust assembly list. Visual Basic、C++、および JScript を使用して作成されたカスタム セキュリティ オブジェクトは、それぞれ Microsoft.VisualBasic.dll、Microsoft.VisualC.dll、Microsoft.JScript.dll をこの順で参照します。Custom security objects created using Visual Basic, C++, and JScript reference either Microsoft.VisualBasic.dll, Microsoft.VisualC.dll, or Microsoft.JScript.dll, respectively. これらのアセンブリは、既定では、完全な信頼を持つアセンブリのリストには含まれていません。These assemblies are not in the full trust assembly list by default. カスタム セキュリティ オブジェクトを追加する前に、適切なアセンブリを完全な信頼のリストに追加する必要があります。You must add the appropriate assembly to the full trust list before you add a custom security object. これができない場合は、セキュリティ システムが壊れ、すべてのアセンブリの読み込みに失敗します。Failure to do so will break the security system, causing all assemblies to fail to load. この状況では、Caspol.exe -all -reset オプションを使用してもセキュリティを修復できません。In this situation, the Caspol.exe -all -reset option will not repair security. セキュリティを修復するには、セキュリティ ファイルを手動で編集し、カスタム セキュリティ オブジェクトを削除する必要があります。To repair security, you must manually edit the security files to remove the custom security object.
-addgroup {parent_label | parent_name} mship pset_name [flags]-addgroup {parent_label | parent_name} mship pset_name [flags]

oror

-ag {parent_label | parent_name} mship pset_name [flags]-ag {parent_label | parent_name} mship pset_name [flags]
新しいコード グループをコード グループ階層に追加します。Adds a new code group to the code group hierarchy. parent_label または parent_name を指定できます。You can specify either the parent_label or parent_name. parent_label 引数は、追加されているコード グループの親である、コード グループのラベル (1 やThe parent_label argument specifies the label (such as 1. 1.1 など) を指定します。or 1.1.) of the code group that is the parent of the code group being added. 引数 parent_name は、追加するコード グループの親となるコード グループの名前を指定します。The parent_name argument specifies the name of the code group that is the parent of the code group being added. parent_labelparent_name は交換して使用できるため、Caspol.exe がこの 2 つを区別できる必要があります。Because parent_label and parent_name can be used interchangeably, Caspol.exe must be able to distinguish between them. したがって、parent_name の先頭を数字にすることはできません。Therefore, parent_name cannot begin with a number. また、parent_name に含めることができるのは、A-Z、0-9、およびアンダースコア文字だけです。Additionally, parent_name can only contain A-Z, 0-9 and the underscore character.

引数 mship は、新しいコード グループのメンバーシップ条件を指定します。The mship argument specifies the membership condition for the new code group. 詳細については、このセクションの mship 引数の表を参照してください。For more information, see the table of mship arguments later in this section.

引数 pset_name は、新しいコード グループと関連付けられるアクセス許可セットの名前です。The pset_name argument is the name of the permission set that will be associated with the new code group. 新しいグループに 1 つ以上の flags を設定することもできます。You can also set one or more flags for the new group. 詳細については、このセクションの flags 引数の表を参照してください。For more information, see the table of flags arguments later in this section.
-addpset {psfile | psfile pset_name}-addpset {psfile | psfile pset_name}

oror

-ap {namedpsfile | psfile pset_name}-ap {namedpsfile | psfile pset_name}
新しい名前付きアクセス許可セットをポリシーに追加します。Adds a new named permission set to policy. アクセス許可セットは XML で編集し、.xml ファイルとして格納する必要があります。The permission set must be authored in XML and stored in an .xml file. XML ファイルにアクセス許可セットの名前が含まれる場合は、そのファイル (psfile) だけが指定されます。If the XML file contains the name of the permission set, only that file (psfile) is specified. XML ファイルにアクセス許可セットの名前が含まれない場合は、XML ファイルの名前 (psfile) とアクセス許可セットの名前 (pset_name) の両方を指定する必要があります。If the XML file does not contain the permission set name, you must specify both the XML file name (psfile) and the permission set name (pset_name).

アクセス許可セットで使用するすべてのアクセス許可を、グローバル アセンブリ キャッシュ内にあるアセンブリに定義する必要があります。Note that all permissions used in a permission set must be defined in assemblies contained in the global assembly cache.
-a [ll]-a[ll] このオプションの後に続くすべてのオプションを、コンピューター、ユーザー、エンタープライズの各ポリシーに適用します。Indicates that all options following this one apply to the machine, user, and enterprise policies. -all オプションは、常に現在ログオンしているユーザーのポリシーを参照します。The -all option always refers to the policy of the currently logged-on user. 現在のユーザー以外のユーザーのポリシーの参照方法については -customall オプションを参照してください。See the -customall option to refer to the user policy of a user other than the current user.
-chggroup {label |name} {mship | pset_name |-chggroup {label |name} {mship | pset_name |

flags }flags }

oror

-cg {label |name} {mship | pset_name |-cg {label |name} {mship | pset_name |

flags }flags }
コード グループのメンバーシップ条件、アクセス許可セット、exclusivelevelfinalnamedescription の各フラグの設定を変更します。Changes a code group's membership condition, permission set, or the settings of the exclusive, levelfinal, name, or description flags. label または name を指定できます。You can specify either the label or name. label 引数は、コード グループのラベル (1 やThe label argument specifies the label (such as 1. 1.1 など) を指定します。or 1.1.) of the code group. name 引数は、変更するコード グループの名前を指定します。The name argument specifies the name of the code group to change. labelname は交換して使用できるため、Caspol.exe がこの 2 つを区別できる必要があります。Because label and name can be used interchangeably, Caspol.exe must be able to distinguish between them. したがって、name の先頭を数字にすることはできません。Therefore, name cannot begin with a number. また、name に含めることができるのは、A-Z、0-9、およびアンダースコア文字だけです。Additionally, name can only contain A-Z, 0-9 and the underscore character.

引数 pset_name は、コード グループと関連付けるアクセス許可セットの名前を指定します。The pset_name argument specifies the name of the permission set to associate with the code group. 引数 mship および flags については、このセクションで後述する表を参照してください。See the tables later in this section for information on the mship and flags arguments.
-chgpset psfile pset_name-chgpset psfile pset_name

oror

-cp psfile pset_name-cp psfile pset_name
名前付きアクセス許可セットを変更します。Changes a named permission set. 引数 psfile は、アクセス許可セットの新しい定義を指定します。この定義はシリアル化された XML 形式のアクセス許可セット ファイルです。The psfile argument supplies the new definition for the permission set; it is a serialized permission set file in XML format. 引数 pset_name は、変更するアクセス許可セットの名前を指定します。The pset_name argument specifies the name of the permission set you want to change.
-customall path-customall path

oror

-ca path-ca path
このオプションの後に続くすべてのオプションを、コンピューター、エンタープライズ、指定したカスタム ユーザーの各ポリシーに適用します。Indicates that all options following this one apply to the machine, enterprise, and the specified custom user policies. カスタム ユーザーのセキュリティ構成ファイルの位置を引数 path で指定する必要があります。You must specify the location of the custom user's security configuration file with the path argument.
-cu [stomuser] path-cu[stomuser] path 現在実行中の Caspol.exe を実行したユーザーに属さないカスタム ユーザー ポリシーを管理できます。Allows the administration of a custom user policy that does not belong to the user on whose behalf Caspol.exe is currently running. カスタム ユーザーのセキュリティ構成ファイルの位置を引数 path で指定する必要があります。You must specify the location of the custom user's security configuration file with the path argument.
-enterprise-enterprise

oror

-en-en
このオプションの後に続くすべてのオプションを、エンタープライズ レベル ポリシーに適用します。Indicates that all options following this one apply to the enterprise level policy. エンタープライズ管理者ではないユーザーは、エンタープライズ ポリシーを変更するための十分な権限を持ちませんが、参照はできます。Users who are not enterprise administrators do not have sufficient rights to modify the enterprise policy, although they can view it. エンタープライズ以外の場合、既定では、このポリシーがコンピューター ポリシーやユーザー ポリシーに干渉することはありません。In nonenterprise scenarios, this policy, by default, does not interfere with machine and user policy.
-e [xecution] {on | off}-e[xecution] {on | off} コードの実行が開始される前に実行許可を確認する機構のオンとオフを切り替えます。Turns on or off the mechanism that checks for the permission to run before code starts to execute. 注: このスイッチは、.NET Framework 4 以降のバージョンでは削除されています。Note: This switch is removed in the .NET Framework 4 and later versions. 詳細については、「セキュリティの変更点」を参照してください。For more information, see Security Changes.
-f [orce]-f[orce] ツールの自己破棄テストを行わず、ユーザーに指定されたとおりにポリシーを変更します。Suppresses the tool's self-destruct test and changes the policy as specified by the user. 通常、Caspol.exe は、ポリシーを変更した結果 Caspol.exe 自体の適切な動作が妨げられることにならないかどうかをチェックします。妨げられる場合は、Caspol.exe は変更されたポリシーを保存せず、エラー メッセージを表示します。Normally, Caspol.exe checks whether any policy changes would prevent Caspol.exe itself from running properly; if so, Caspol.exe does not save the policy change and prints an error message. Caspol.exe の動作を妨げることになっても強制的に Caspol.exe にポリシーを変更する場合は、 –force オプションを使用します。To force Caspol.exe to change policy even if this prevents Caspol.exe itself from running, use the –force option.
-h [elp]-h[elp] Caspol.exe のコマンド構文とオプションを表示します。Displays command syntax and options for Caspol.exe.
-l [ist]-l[ist] 指定されたコンピューター、ユーザー、エンタープライズ、またはすべてのポリシー レベルにかかわる、コード グループの階層とアクセス許可セットの一覧を表示します。Lists the code group hierarchy and the permission sets for the specified machine, user, enterprise, or all policy levels. Caspol.exe は、最初にコード グループのラベルを、次に (null でない場合) 名前を表示します。Caspol.exe displays the code group's label first, followed by the name, if it is not null.
-listdescription-listdescription

oror

-ld-ld
指定されたポリシー レベルのすべてのコード グループの説明を一覧表示します。Lists all code group descriptions for the specified policy level.
-listfulltrust-listfulltrust

oror

-lf-lf
指定されたポリシー レベルの完全信頼アセンブリ一覧の内容を一覧表示します。Lists the contents of the full trust assembly list for the specified policy level.
-listgroups-listgroups

oror

-lg-lg
指定されたポリシー レベルまたはすべてのポリシー レベルのコード グループを表示します。Displays the code groups of the specified policy level or all policy levels. Caspol.exe は、最初にコード グループのラベルを、次に (null でない場合) 名前を表示します。Caspol.exe displays the code group's label first, followed by the name, if it is not null.
-listpset または -lp-listpset or -lp 指定されたポリシー レベルまたはすべてのポリシー レベルのアクセス許可セットを表示します。Displays the permission sets for the specified policy level or all policy levels.
-m [achine]-m[achine] このオプションの後に続くすべてのオプションをコンピューター レベル ポリシーに適用します。Indicates that all options following this one apply to the machine level policy. 管理者ではないユーザーは、コンピューター ポリシーを変更するための十分な権限を持ちませんが、参照はできます。Users who are not administrators do not have sufficient rights to modify the machine policy, although they can view it. 管理者の場合は、 -machine が既定値です。For administrators, -machine is the default.
-polchgprompt {on | off}-polchgprompt {on | off}

oror

-pp {on | off}-pp {on | off}
ポリシーを変更するオプションを使用して、Caspol.exe が実行されるたびに表示されるプロンプトを有効または無効にします。Enables or disables the prompt that is displayed whenever Caspol.exe is run using an option that would cause policy changes.
-quiet-quiet

oror

-q-q
ポリシーを変更するオプションに対して通常表示されるプロンプトを一時的に無効にします。Temporarily disables the prompt that is normally displayed for an option that causes policy changes. グローバル変更プロンプトの設定は変更されません。The global change prompt setting does not change. このオプションは、すべての Caspol.exe コマンドに対してプロンプトを無効にすることを避けるため、単一のコマンドに対してだけ使用してください。Use the option only on a single command basis to avoid disabling the prompt for all Caspol.exe commands.
-r [ecover]-r[ecover] バックアップ ファイルからポリシーを復元します。Recovers policy from a backup file. ポリシーが変更されるたびに、古いポリシーが Caspol.exe によってバックアップ ファイルの中に格納されます。Whenever a policy change is made, Caspol.exe stores the old policy in a backup file.
-remfulltrust assembly_file-remfulltrust assembly_file

oror

-rf assembly_file-rf assembly_file
ポリシー レベルの完全信頼一覧からアセンブリを削除します。Removes an assembly from the full trust list of a policy level. この操作を実行する必要があるのは、カスタム アクセス許可を含むアクセス許可セットがポリシーによって使用されなくなった場合です。This operation should be performed if a permission set that contains a custom permission is no longer used by policy. ただし、カスタム アクセス許可を実装するアセンブリを完全信頼一覧から削除するのは、そのアセンブリが、まだ使用されている他のカスタム アクセス許可を実装していない場合に限ります。However, you should remove an assembly that implements a custom permission from the full trust list only if the assembly does not implement any other custom permissions that are still being used. 一覧からアセンブリを削除するときは、そのアセンブリが依存している他のすべてのアセンブリも削除する必要があります。When you remove an assembly from the list, you should also remove any other assemblies that it depends on.
-remgroup {label |name}-remgroup {label |name}

oror

-rg {label | name}-rg {label | name}
ラベルまたは名前で指定したコード グループを削除します。Removes the code group specified by either its label or name. 指定したコード グループが子コード グループを持つ場合は、Caspol.exe によってすべての子コード グループも削除されます。If the specified code group has child code groups, Caspol.exe also removes all the child code groups.
-rempset pset_name-rempset pset_name

oror

-rp pset_name-rp pset_name
指定したアクセス許可セットをポリシーから削除します。Removes the specified permission set from policy. 引数 pset_name は、削除するアクセス許可セットを指定します。The pset_name argument indicates which permission set to remove. Caspol.exe がアクセス許可セットを削除するのは、そのアクセス許可セットがどのコード グループにも関連付けられていない場合だけです。Caspol.exe removes the permission set only if it is not associated with any code group. 既定の (組み込み) アクセス許可セットは削除できません。The default (built-in) permission sets cannot be removed.
-reset-reset

oror

-rs-rs
ポリシーを既定のステータスに戻し、ディスクに永続化します。Returns policy to its default state and persists it to disk. このオプションは、変更後のポリシーが修復できそうになく、インストール時点の既定値からやり直す場合に便利です。This is useful whenever a changed policy seems to be beyond repair and you want to start over with the installation defaults. 特定のセキュリティ構成ファイルに対する変更の開始点として既定のポリシーを使用する場合にも、リセット オプションは便利です。Resetting can also be convenient when you want to use the default policy as a starting point for modifications to specific security configuration files. 詳細については、「手動によるセキュリティ構成ファイルの編集」を参照してください。For more information, see Manually Editing the Security Configuration Files.
-resetlockdown-resetlockdown

oror

-rsld-rsld
ポリシーを既定の状態のより制限されたバージョンに戻してディスクに永続化します。前のコンピューター ポリシーのバックアップを作成し、security.config.bac というファイルに永続化します。Returns policy to a more restrictive version of the default state and persists it to disk; creates a backup of the previous machine policy and persists it to a file called security.config.bac. ロック ダウンされているポリシーは、Local IntranetTrusted Sites、および Internet の各ゾーンに属し、対応するコード グループに子コード グループがないコードにアクセスを許可しないことを除いて、既定のポリシーと同じです。The locked down policy is similar to the default policy, except that the policy grants no permission to code from the Local Intranet, Trusted Sites, and Internet zones and the corresponding code groups have no child code groups.
-resolvegroup assembly_file-resolvegroup assembly_file

oror

-rsg assembly_file-rsg assembly_file
特定のアセンブリ (assembly_file) が属するコード グループを表示します。Shows the code groups that a specific assembly (assembly_file) belongs to. 既定では、このオプションは、アセンブリが属するコンピューター、ユーザー、エンタープライズの各ポリシー レベルを表示します。By default, this option displays the machine, user, and enterprise policy levels to which the assembly belongs. 1 つのポリシー レベルだけを参照するには、このオプションと共に -machine-user、または -enterprise のいずれかのオプションを使用します。To view only one policy level, use this option with either the -machine, -user, or -enterprise option.
-resolveperm assembly_file-resolveperm assembly_file

oror

-rsp assembly_file-rsp assembly_file
アセンブリの実行が許可されていた場合は、指定した (または既定の) レベルのセキュリティ ポリシーによってそのアセンブリに与えられるすべてのアクセス許可を表示します。Displays all permissions that the specified (or default) level of security policy would grant the assembly if the assembly were allowed to run. 引数 assembly_file はアセンブリを指定します。The assembly_file argument specifies the assembly. -all オプションを指定すると、Caspol.exe は、ユーザー ポリシー、コンピューター ポリシー、およびエンタープライズ ポリシーに基づいて、アセンブリに与えられるアクセス許可を計算します。それ以外の場合は、既定の動作規則が適用されます。If you specify the -all option, Caspol.exe calculates the permissions for the assembly based on user, machine, and enterprise policy; otherwise, default behavior rules apply.
-s [ecurity] {on | off}-s[ecurity] {on | off} コード アクセス セキュリティのオンとオフを切り替えます。Turns code access security on or off. -s off オプションを指定しても、ロール ベース セキュリティは無効になりません。Specifying the -s off option does not disable role-based security. 注: このスイッチは、.NET Framework 4 以降のバージョンでは削除されています。Note: This switch is removed in the .NET Framework 4 and later versions. 詳細については、「セキュリティの変更点」を参照してください。For more information, see Security Changes. 注意: コード アクセス セキュリティを無効にすると、すべてのコード アクセス要求が成功します。Caution: When code access security is disabled, all code access demands succeed. コード アクセス セキュリティを無効にすると、システムは、ウイルスやワームなどの悪意のあるコードの攻撃を受けやすくなります。Disabling code access security makes the system vulnerable to attacks by malicious code such as viruses and worms. セキュリティをオフにすると、パフォーマンスは多少向上しますが、他のセキュリティ対策を講じて、システム セキュリティ全体が損なわれていないことを確認した場合にだけ、オフにしてください。Turning off security gains some extra performance but should only be done when other security measures have been taken to help make sure overall system security is not breached. その他のセキュリティ対策の例としては、公衆ネットワークからの切断、コンピューターの物理的な保護などがあります。Examples of other security precautions include disconnecting from public networks, physically securing computers, and so on.
-u [ser]-u[ser] このオプションの後に続くすべてのオプションを、Caspol.exe を実行したユーザーにかかわるユーザー レベル ポリシーに適用します。Indicates that all options following this one apply to the user level policy for the user on whose behalf Caspol.exe is running. 管理者以外のユーザーの場合は、 -user が既定値です。For nonadministrative users, -user is the default.
-?-? Caspol.exe のコマンド構文とオプションを表示します。Displays command syntax and options for Caspol.exe.

コード グループのメンバーシップ条件を指定する引数 mship は、 -addgroup オプションおよび -chggroup オプションと併用できます。The mship argument, which specifies the membership condition for a code group, can be used with the -addgroup and -chggroup options. 各引数 mship は .NET Framework クラスとして実装されます。Each mship argument is implemented as a .NET Framework class. mship を指定するには、次のいずれかを使用します。To specify mship, use one of the following.

引数Argument 説明Description
-allcode-allcode すべてのコードを指定します。Specifies all code. このメンバーシップ条件の詳細については、「System.Security.Policy.AllMembershipCondition」を参照してください。For more information about this membership condition, see System.Security.Policy.AllMembershipCondition.
-appdir-appdir アプリケーション ディレクトリを指定します。Specifies the application directory. メンバーシップ条件として –appdir を指定する場合は、コードの URL 証拠が、そのコードのアプリケーション ディレクトリ証拠と比較されます。If you specify –appdir as the membership condition, the URL evidence of code is compared with the application directory evidence of that code. 両方の証拠の値が同じである場合は、このメンバーシップ条件が成立します。If both evidence values are the same, this membership condition is satisfied. このメンバーシップ条件の詳細については、「System.Security.Policy.ApplicationDirectoryMembershipCondition」を参照してください。For more information about this membership condition, see System.Security.Policy.ApplicationDirectoryMembershipCondition.
-custom xmlfile-custom xmlfile カスタム メンバーシップ条件を追加します。Adds a custom membership condition. 必須引数の xmlfile は、XML シリアル化したカスタム メンバーシップ条件を含む .xml ファイルを指定します。The mandatory xmlfile argument specifies the .xml file that contains XML serialization of the custom membership condition.
-hash hashAlg { -hex hashValue | -file assembly_file}-hash hashAlg {-hex hashValue | -file assembly_file } 指定されたアセンブリ ハッシュを持つコードを指定します。Specifies code that has the given assembly hash. コード グループのメンバーシップ条件としてハッシュを使用するには、ハッシュ値またはアセンブリ ファイルを指定する必要があります。To use a hash as a code group membership condition, you must specify either the hash value or the assembly file. このメンバーシップ条件の詳細については、「System.Security.Policy.HashMembershipCondition」を参照してください。For more information about this membership condition, see System.Security.Policy.HashMembershipCondition.
-pub { -cert cert_file_name |-pub { -cert cert_file_name |

-file signed_file_name | -hex hex_string}-file signed_file_name | -hex hex_string }
指定されたソフトウェア発行者を持つコードを、証明書ファイル、ファイル上の署名、または X509 証明書の 16 進表示で指定します。Specifies code that has the given software publisher, as denoted by a certificate file, a signature on a file, or the hexadecimal representation of an X509 certificate. このメンバーシップ条件の詳細については、「System.Security.Policy.PublisherMembershipCondition」を参照してください。For more information about this membership condition, see System.Security.Policy.PublisherMembershipCondition.
-site website-site website 指定されたサイトがソースであるコードを指定します。Specifies code that has the given site of origin. 次に例を示します。For example:

-site** www.proseware.com

このメンバーシップ条件の詳細については、「System.Security.Policy.SiteMembershipCondition」を参照してください。For more information about this membership condition, see System.Security.Policy.SiteMembershipCondition.
-strong -file file_name {name | -noname} {version | -noversion}-strong -file file_name {name | -noname} {version | -noversion} 特定の厳密な名前を持つコードを、ファイル名、文字列としてのアセンブリ名、および major.minor.build.revision 形式のアセンブリ バージョンで指定します。Specifies code that has a specific strong name, as designated by the file name, the assembly name as a string, and the assembly version in the format major.minor.build.revision. 次に例を示します。For example:

-strong -file myAssembly.exe myAssembly 1.2.3.4-strong -file myAssembly.exe myAssembly 1.2.3.4

このメンバーシップ条件の詳細については、「System.Security.Policy.StrongNameMembershipCondition」を参照してください。For more information about this membership condition, see System.Security.Policy.StrongNameMembershipCondition.
-url URL-url URL 指定された URL をソースとするコードを指定します。Specifies code that originates from the given URL. URL には、http://ftp:// などのプロトコルを含める必要があります。The URL must include a protocol, such as http:// or ftp://. さらに、ワイルドカード文字 (*) を使用して、特定の URL から複数のアセンブリを指定できます。Additionally, a wildcard character (*) can be used to specify multiple assemblies from a particular URL. 注: 複数の名前を使用して 1 つの URL を識別できるため、URL をメンバーシップ条件として使用する方法は、コードの識別情報を安全に確認できる方法ではありません。Note: Because a URL can be identified using multiple names, using a URL as a membership condition is not a safe way to ascertain the identity of code. できるだけ厳密な名前メンバーシップ条件、発行元メンバーシップ条件、またはハッシュ メンバーシップ条件を使用してください。Where possible, use a strong name membership condition, a publisher membership condition, or the hash membership condition.

このメンバーシップ条件の詳細については、「System.Security.Policy.UrlMembershipCondition」を参照してください。For more information about this membership condition, see System.Security.Policy.UrlMembershipCondition.
-zone zonename-zone zonename 指定されたゾーンがソースであるコードを指定します。Specifies code with the given zone of origin. 引数 zonename として、MyComputerIntranetTrustedInternet、または Untrusted のいずれかの値を指定できます。The zonename argument can be one of the following values: MyComputer, Intranet, Trusted, Internet, or Untrusted. このメンバーシップ条件の詳細については、「ZoneMembershipCondition クラス」を参照してください。For more information about this membership condition, see the ZoneMembershipCondition Class.

–addgroup オプションまたは –chggroup オプションと併用できる引数 flags は、次のいずれかの方法で指定します。The flags argument, which can be used with the –addgroup and –chggroup options, is specified using one of the following.

引数Argument 説明Description
-description "description"-description "description" –addgroup オプションと共に使用した場合、追加するコード グループの説明を指定します。If used with the –addgroup option, specifies the description for a code group to add. –chggroup オプションと共に使用した場合、編集するコード グループの説明を指定します。If used with the –chggroup option, specifies the description for a code group to edit. 引数 description を二重引用符で囲む必要があります。The description argument must be enclosed in double quotes.
-exclusive {on|off}-exclusive {on|off} on に設定すると、コード グループのメンバーシップ条件に適合するコードがある場合、追加または修正しているコード グループと関連付けられたアクセス許可セットだけが考慮されます。When set to on, indicates that only the permission set associated with the code group you are adding or modifying is considered when some code fits the membership condition of the code group. このオプションを off に設定すると、ポリシー レベルの中で適合するすべてのコード グループのアクセス許可セットが Caspol.exe で考慮されます。When this option is set to off, Caspol.exe considers the permission sets of all matching code groups in the policy level.
-levelfinal {on|off}-levelfinal {on|off} on に設定すると、追加または変更するコード グループが出現するレベルよりも下にあるポリシー レベルは考慮されなくなります。When set to on, indicates that no policy level below the level in which the added or modified code group occurs is considered. 通常、このオプションはコンピューター ポリシー レベルで使用されます。This option is typically used at the machine policy level. たとえば、このフラグをコンピューター レベルでコード グループに設定し、なんらかのコードがこのコード グループのメンバーシップ条件に適合した場合、Caspol.exe はそのコードのユーザー レベル ポリシーの計算または適用を行いません。For example, if you set this flag for a code group at the machine level and some code matches this code group's membership condition, Caspol.exe does not calculate or apply the user level policy for this code.
-name "name"-name "name" –addgroup オプションと共に使用した場合、追加するコード グループのスクリプト名を指定します。If used with the –addgroup option, specifies the scripting name for a code group to add. -chggroup オプションと共に使用した場合、編集するコード グループのスクリプト名を指定します。If used with the -chggroup option, specifies the scripting name for a code group to edit. 引数 name を二重引用符で囲む必要があります。The name argument must be enclosed in double quotes. 引数 name には A-Z、0-9、およびアンダースコア文字だけを含めることができます。また、先頭には数字を使用できません。The name argument cannot begin with a number, and can only contain A-Z, 0-9, and the underscore character. コード グループは、数値のラベルではなくこの name によって参照できます。Code groups can be referred to by this name instead of by their numeric label. name は、スクリプト目的で使用する場合にも便利です。The name is also highly useful for scripting purposes.

解説Remarks

セキュリティ ポリシーは 3 種類のポリシー レベル、つまりコンピューター ポリシー、ユーザー ポリシー、エンタープライズ ポリシーによって表現されます。Security policy is expressed using three policy levels: machine policy, user policy, and enterprise policy. アセンブリが受信するアクセス許可のセットは、これらの 3 種類のポリシー レベルで許可されるアクセス許可セットの積集合によって決定されます。The set of permissions that an assembly receives is determined by the intersection of the permission sets allowed by these three policy levels. それぞれのポリシー レベルは、コード グループの階層で表現されます。Each policy level is represented by a hierarchical structure of code groups. すべてのコード グループは、どのコードをそのグループのメンバーとするのかを決定するためのメンバーシップ条件を持ちます。Every code group has a membership condition that determines which code is a member of that group. 名前付きアクセス許可セットも、各コード グループと関連付けられます。A named permission set is also associated with each code group. このアクセス許可セットは、メンバーシップ条件を満たすコードに対してランタイムから与えられるアクセス許可を指定します。This permission set specifies the permissions the runtime allows code that satisfies the membership condition to have. コード グループの階層、および関連する名前付きアクセス許可セットによって、各レベルのセキュリティ ポリシーの定義と保守が行われます。A code group hierarchy, along with its associated named permission sets, defines and maintains each level of security policy. –user-customuser–machine-enterprise の各オプションを使用して、セキュリティ ポリシーのレベルを設定できます。You can use the –user, -customuser, –machine and -enterprise options to set the level of security policy.

セキュリティ ポリシーの詳細、およびランタイムがコードに与えるアクセス許可を決定する方法については、「セキュリティ ポリシーの管理」を参照してください。For more information about security policy and how the runtime determines which permissions to grant to code, see Security Policy Management.

コード グループとアクセス許可セットの参照Referencing Code Groups and Permission Sets

-list オプションを使用すると、階層に属するコード グループを簡単に参照できるように、インデントされたコード グループの一覧とその数値ラベル (1、1.1、1.1.1 など) が表示されます。To facilitate references to code groups in a hierarchy, the -list option displays an indented list of code groups along with their numerical labels (1, 1.1, 1.1.1, and so on). コード グループを対象とするその他のコマンド ライン操作でも、特定のコード グループを参照するために数値ラベルが使用されます。The other command-line operations that target code groups also use the numerical labels to refer to specific code groups.

名前付きアクセス許可セットを参照する場合は、名前を使用します。Named permission sets are referenced by their names. –list オプションでは、最初にコード グループの一覧、次にそのポリシーの中で利用できる名前付きアクセス許可セットの一覧が表示されます。The –list option displays the list of code groups followed by a list of named permission sets available in that policy.

Caspol.exe の動作Caspol.exe Behavior

-s [ecurity] {on | off} を除くすべてのオプションが、Caspol.exe と共にインストールされたバージョンの .NET Framework を使用します。All options except -s[ecurity] {on | off} use the version of the .NET Framework that Caspol.exe was installed with. あるバージョンのランタイムと共にインストールされた Caspol.exe を実行する場合、変更内容はそのバージョンだけに適用されます If you run the Caspol.exe that was installed with version X of the runtime, the changes apply only to that version. その他のランタイムが共存する場合、それらのランタイムは影響を受けません。Other side-by-side installations of the runtime, if any, are not affected. 特定のランタイム バージョンのディレクトリに切り替えずに Caspol.exe をコマンド ラインで実行する場合、Caspol.exe はパスに含まれる最初のランタイム バージョン (通常は最後にインストールされたランタイム バージョン) のディレクトリから実行されます。If you run Caspol.exe from the command line without being in a directory for a specific runtime version, the tool is executed from the first runtime version directory in the path (usually the most recent runtime version installed).

-s [ecurity] {on | off} オプションは、コンピューター全体に対する操作です。The -s[ecurity] {on | off} option is a computer-wide operation. コード アクセス セキュリティをオフにすると、すべてのマネージド コードおよびコンピューター上のすべてのユーザーに対するセキュリティ チェックが中止されます。Turning off code access security terminates security checks for all managed code and for all users on the computer. side-by-side 実行バージョンの .NET Framework がインストールされている場合は、このコマンドによってコンピューターにインストールされているすべてのバージョンのセキュリティがオフになります。If side-by-side versions of the .NET Framework are installed, this command turns off security for every version installed on the computer. -list オプションを使用するとセキュリティがオフになっていることが示されますが、他のユーザーに対してセキュリティがオフになっていることが明確に示されることはありません。Although the -list option shows that security is turned off, nothing else clearly indicates for other users that security has been turned off.

管理者の権限を持たないユーザーが Caspol.exe を実行する場合、 –machine オプションが指定されていない限り、すべてのオプションはユーザー レベル ポリシーを参照します。When a user without administrative rights runs Caspol.exe, all options refer to the user level policy unless the –machine option is specified. 管理者が Caspol.exe を実行する場合、 –user オプションが指定されていない限り、すべてのオプションはコンピューター ポリシーを参照します。When an administrator runs Caspol.exe, all options refer to the machine policy unless the –user option is specified.

Caspol.exe が正しく機能するには、Everything アクセス許可セットと等価の許可を与えられている必要があります。Caspol.exe must be granted the equivalent of the Everything permission set to function. Caspol.exe には防御機構があるため、Caspol.exe が動作するために必要なアクセス許可を得られなくなるような方法でポリシーを変更することはできません。The tool has a protective mechanism that prevents policy from being modified in ways that would prevent Caspol.exe from being granted the permissions it needs to run. 変更を実行しようとすると、Caspol.exe は、要求されたポリシーの変更で Caspol.exe の実行が中断されること、およびポリシーの変更が拒否されることをユーザーに通知します。If you try to make such changes, Caspol.exe notifies you that the requested policy change will break the tool, and the policy change is rejected. 特定のコマンドについてこの防御機構をオフにするには、 –force オプションを使用します。You can turn this protective mechanism off for a given command by using the –force option.

手動によるセキュリティ構成ファイルの編集Manually Editing the Security Configuration Files

3 種類のセキュリティ構成ファイルは、Caspol.exe でサポートされる 3 種類のポリシー レベル、つまりコンピューター ポリシー、指定されたユーザーのポリシー、およびエンタープライズ ポリシーと対応します。Three security configuration files correspond to the three policy levels supported by Caspol.exe: one for the machine policy, one for a given user's policy, and one for the enterprise policy. これらのファイルがディスク上に作成されるのは、コンピューター ポリシー、ユーザー ポリシー、またはエンタープライズ ポリシーが Caspol.exe によって変更される場合だけです。These files are created on disk only when machine, user, or enterprise policy is changed using Caspol.exe. 必要な場合は、Caspol.exe の –reset オプションを使用して、既定のセキュリティ ポリシーをディスクに保存できます。You can use the –reset option in Caspol.exe to save the default security policy to disk, if needed.

ほとんどの場合、手動によるセキュリティ構成ファイルの編集はお勧めしません。In most cases, manually editing the security configuration files is not recommended. ただし、これらのファイルを変更する必要が生じることもあります。たとえば、管理者が特定のユーザーについてセキュリティ設定を編集する場合などです。But there might be scenarios in which modifying these files becomes necessary, such as when an administrator wants to edit the security configuration for a particular user.

使用例Examples

-addfulltrust-addfulltrust

カスタム アクセス許可を含むアクセス許可セットがコンピューター ポリシーに追加されたものと見なします。Assume that a permission set containing a custom permission has been added to machine policy. このカスタム アクセス許可は、MyPerm.exe と、MyPerm.exeMyOther.exe 参照クラスに実装されます。This custom permission is implemented in MyPerm.exe, and MyPerm.exe references classes in MyOther.exe. 両方のアセンブリとも、完全信頼アセンブリ一覧に追加する必要があります。Both assemblies must be added to the full trust assembly list. MyPerm.exe アセンブリをコンピューター ポリシーの完全信頼一覧に追加するコマンドを次に示します。The following command adds the MyPerm.exe assembly to the full trust list for the machine policy.

caspol -machine -addfulltrust MyPerm.exe  

MyOther.exe アセンブリをコンピューター ポリシーの完全信頼一覧に追加するコマンドを次に示します。The following command adds the MyOther.exe assembly to the full trust list for the machine policy.

caspol -machine -addfulltrust MyOther.exe  

-addgroup-addgroup

子コード グループをコンピューター ポリシー コード グループ階層のルートに追加するコマンドを次に示します。The following command adds a child code group to the root of the machine policy code group hierarchy. 新しいコード グループは Internet ゾーンのメンバーであり、Execution アクセス許可セットと関連付けられます。The new code group is a member of the Internet zone and is associated with the Execution permission set.

caspol -machine -addgroup 1.  -zone Internet Execution  

共有 \\netserver\netshare にローカル イントラネット アクセス許可を与える子コード グループを追加するコマンドを次に示します。The following command adds a child code group that gives the share \\netserver\netshare local intranet permissions.

caspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet  

-addpset-addpset

Mypset アクセス許可セットをユーザー ポリシーに追加するコマンドを次に示します。The following command adds the Mypset permission set to the user policy.

caspol -user -addpset Mypset.xml Mypset  

-chggroup-chggroup

1.2 というラベルの付いたコード グループのユーザー ポリシーに含まれるアクセス許可セットを、The following command changes the permission set in the user policy of the code group labeled 1.2. Execution アクセス許可セットに変更するコマンドを、次に示します。to the Execution permission set.

caspol -user -chggroup 1.2. Execution  

1.2.1 というラベルの付いたコード グループの既定のポリシーに含まれるメンバーシップ条件を変更し、The following command changes the membership condition in the default policy of the code group labeled 1.2.1. exclusiveフラグの設定を変更するコマンドを次に示します。and changes the setting of the exclusive flag. メンバーシップ条件は、Internet ゾーンをソースとするコードとなるように定義され、exclusive フラグはオンになります。The membership condition is defined to be code that originates from the Internet zone and the exclusive flag is switched on.

caspol -chggroup 1.2.1. -zone Internet -exclusive on  

-chgpset-chgpset

Mypset という名前のアクセス許可セットを newpset.xml に含まれるアクセス許可セットに変更するコマンドを次に示します。The following command changes the permission set with name Mypset to the permission set contained in newpset.xml. 現在のリリースでは、コード グループ階層で使用されているアクセス許可の変更はサポートしていません。Note that the current release does not support changing permission sets that are being used by the code group hierarchy.

caspol -chgpset Mypset newpset.xml  

-force-force

ユーザー ポリシーのルート コード グループ (ラベル 1) を名前付きアクセス許可セット Nothing と関連付けるコマンドを次に示します。The following command causes the user policy's root code group (labeled 1) to be associated with the Nothing named permission set. このコマンドにより Caspol.exe は動作できなくなります。This prevents Caspol.exe from running.

caspol -force -user -chggroup 1 Nothing  

-recover-recover

最後に保存されたコンピューター ポリシーを復元するコマンドを次に示します。The following command recovers the most recently saved machine policy.

caspol -machine -recover  

-remgroup-remgroup

1.1 というラベルの付いたコード グループを削除するコマンドを次に示します。The following command removes the code group labeled 1.1. このコード グループが子コード グループを持つ場合は、子グループも削除されます。If this code group has any child code groups, those groups are also deleted.

caspol -remgroup 1.1.  

-rempset-rempset

ユーザー ポリシーから Execution アクセス許可セットを削除するコマンドを次に示します。The following command removes the Execution permission set from the user policy.

caspol -user -rempset Execution  

Mypset をユーザー ポリシー レベルから削除するコマンドを次に示します。The following command removes Mypset from the user policy level.

caspol -rempset MyPset  

-resolvegroup-resolvegroup

myassembly が所属するコンピューター ポリシーのすべてのコード グループを表示するコマンドを次に示します。The following command shows all code groups of the machine policy that myassembly belongs to.

caspol -machine -resolvegroup myassembly  

myassembly が所属するコンピューター ポリシー、エンタープライズ ポリシー、および指定されたカスタム ユーザー ポリシーのすべてのコード グループを表示するコマンドを次に示します。The following command shows all code groups of the machine, enterprise, and specified custom user policy that myassembly belongs to.

caspol -customall "c:\config_test\security.config" -resolvegroup myassembly  

-resolveperm-resolveperm

コンピューター ポリシー レベルとユーザー ポリシー レベルに基づいて testassembly のアクセス許可を計算するコマンドを次に示します。The following command calculates the permissions for testassembly based on the machine and user policy levels.

caspol -all -resolveperm testassembly  

関連項目See also