Caspol.exe (средство настройки политики управления доступом для кода)Caspol.exe (Code Access Security Policy Tool)

Программа для настройки политики разграничения доступа кода (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, программа Caspol.exe не влияет на политику CAS, если для элемента <legacyCasPolicy> не задано значение true.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-разрядным приложениям, запустите 32-разрядную и 64-разрядную версии программы Caspol.exe.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 находится в каталоге %windir%\Microsoft.NET\Framework\версия в 32-разрядных системах или в каталоге %windir%\Microsoft.NET\Framework64\версия в 64-разрядных системах.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-разрядной системе программа будет находиться в каталоге %windir%\Microsoft.NET\Framework64\v4.030319\caspol.exe для .NET Framework 4.) Если на компьютере одновременно работает несколько версий .NET Framework, на нем могут быть установлены разные версии программы.(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

илиor

-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, Visual 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]

илиor

-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_label и parent_name взаимозаменяемы, программа Caspol.exe должна их различать.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. Кроме того, для новой группы можно задать один или несколько аргументов 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}

илиor

-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 }

илиor

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

flags }flags }
Изменяет условие членства в группе кода, набор разрешений или параметры флагов exclusive, levelfinal, name или description.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. Поскольку аргументы label и name взаимозаменяемы, программа Caspol.exe должна их различать.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

илиor

-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

илиor

-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

илиor

-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 проверяет, не помешают ли ее работе изменения, внесенные в политику, и если они нарушат ее работу, то изменения политики не сохраняются и выводится сообщение об ошибке.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, следует указать параметр -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 сначала отображает метку группы кода, а затем имя, если оно задано.Caspol.exe displays the code group's label first, followed by the name, if it is not null.
-listdescription-listdescription

илиor

-ld-ld
Отображает список описаний всех групп кода для указанного уровня политики.Lists all code group descriptions for the specified policy level.
-listfulltrust-listfulltrust

илиor

-lf-lf
Отображает список сборок с полным доверием для указанного уровня политики.Lists the contents of the full trust assembly list for the specified policy level.
-listgroups-listgroups

илиor

-lg-lg
Отображает группы кода для указанного уровня политики или всех уровней политики.Displays the code groups of the specified policy level or all policy levels. Программа Caspol.exe сначала отображает метку группы кода, а затем имя, если оно задано.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}

илиor

-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

илиor

-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

илиor

-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}

илиor

-rg {label | name}-rg {label | name}
Удаляет группу кода, заданную меткой или именем.Removes the code group specified by either its label or name. Если указанная группа кода имеет дочерние группы кода, они также будут удалены.If the specified code group has child code groups, Caspol.exe also removes all the child code groups.
-rempset pset_name-rempset pset_name

илиor

-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 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

илиor

-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

илиor

-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 Intranet, Trusted 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

илиor

-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. Чтобы отобразить только один уровень политики, задайте параметр -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

илиor

-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, разрешения вычисляются на основе политики пользователя, компьютера и предприятия; в противном случае применяются правила поведения по умолчанию.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.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} Задает код с указанным строгим именем (определяется по имени файла), имя сборки в виде строкового значения и версию сборки в формате основная.вспомогательная.сборка.редакция.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. Примечание. Так как 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 может принимать одно из следующих значений: MyComputer, Intranet, Trusted, Internet или 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.

Аргумент flags, который может использоваться с параметрами -addgroup и -chggroup, определяется с использованием одного из следующих аргументов.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 указывает, что должны обрабатываться наборы разрешений всех соответствующих групп кода на данном уровне политики.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. Например, если этот флаг указан для группы кода на уровне политики компьютера, политика уровня пользователя не будет вычислена и применена к коду, удовлетворяющему условию членства в этой группе.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

Политика безопасности задается на трех уровнях: компьютера, пользователя и предприятия.Security policy is expressed using three policy levels: machine policy, user policy, and enterprise policy. Набор разрешений, получаемый сборкой, определяется пересечением наборов разрешений, предоставляемых этими тремя уровнями политики.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.exeCaspol.exe Behavior

Все параметры, за исключением -s[ecurity] {on | off}, используют версию платформы .NET Framework, с которой была установлена программа Caspol.exe.All options except -s[ecurity] {on | off} use the version of the .NET Framework that Caspol.exe was installed with. Изменения, внесенные программой Caspol.exe, которая установлена с версией X среды выполнения, будут влиять только на эту версию.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 запущена из командной строки в каталоге, отличном от каталога среды выполнения требуемой версии, программа выполняется из каталога первой версии среды выполнения в пути (обычно это каталог последней установленной версии).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. Проверки безопасности отключаются для всех установленных на компьютере параллельных версий .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. Защитный механизм программы позволяет избежать внесения в политику изменений, препятствующих работе программы.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. При попытке внесения таких изменений будет выдано уведомление о том, что изменения не были внесены, так как они нарушат работу программы.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

Трем уровням политики безопасности (уровни пользователя, компьютера, предприятия), поддерживаемым программой Caspol.exe, соответствуют три файла конфигурации безопасности.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. С помощью параметра -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.exe ссылается на классы программы MyOther.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  

Следующая команда добавляет дочернюю группу кода, которая предоставляет разрешения локальной интрасети для действий share \\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