Caspol.exe (Herramienta de la directiva de seguridad de acceso del código)Caspol.exe (Code Access Security Policy Tool)

La herramienta de la directiva de seguridad de acceso del código (CAS), o herramienta Caspol.exe, permite a los usuarios y administradores modificar las directivas de seguridad correspondientes a los niveles de equipo, usuario y empresa.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.

Importante

A partir de .NET Framework 4, Caspol.exe no afecta a la directiva CAS, a menos que el elemento <legacyCasPolicy> esté establecido en true.Starting with the .NET Framework 4, Caspol.exe does not affect CAS policy unless the <legacyCasPolicy> element is set to true. Las configuraciones mostradas o modificadas por CasPol.exe solo afectarán a las aplicaciones que opten por usar la directiva CAS.Any settings shown or modified by CasPol.exe will only affect applications that opt into using CAS policy. Para más información, consulte Cambios de seguridad.For more information, see Security Changes.

Nota

Los equipos de 64 bits incluyen las versiones de 64 bits y de 32 bits de la directiva de seguridad.64-bit computers include both 64-bit and 32-bit versions of security policy. Para asegurarse de que los cambios en la directiva se aplican a las aplicaciones de 32 bits y 64 bits, ejecute las dos versiones de Caspol.exe, la 32 bits y la de 64 bits.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.

La herramienta de la directiva de seguridad de acceso del código se instala automáticamente con .NET Framework y con Visual Studio.The Code Access Security Policy tool is automatically installed with the .NET Framework and with Visual Studio. Puede encontrar Caspol.exe en %windir%\Microsoft.NET\Framework\versión en los sistemas de 32 bits o en %windir%\Microsoft.NET\Framework64\versión en los sistemas de 64 bits.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. (Por ejemplo, la ubicación es %windir%\Microsoft.NET\Framework64\v4.030319\caspol.exe para .NET Framework 4 en un sistema de 64 bits). Si en el equipo se ejecutan varias versiones de .NET Framework en paralelo, es posible que haya varias versiones de la herramienta instaladas.(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. Puede ejecutar la herramienta desde el directorio de instalación.You can run the tool from the installation directory. Sin embargo, se recomienda usar los símbolos del sistema, que no requiere navegar hasta la carpeta de instalación.However, we recommend that you use the Command Prompts, which does not require you to navigate to the installation folder.

En el símbolo del sistema, escriba lo siguiente:At the command prompt, type the following:

SintaxisSyntax

caspol [options]  

ParámetrosParameters

OpciónOption DescripciónDescription
-addfulltrust archivo_ensamblado-addfulltrust assembly_file

oor

-af archivo_ensamblado-af assembly_file
Agrega un ensamblado que implementa un objeto de seguridad personalizado (como un permiso personalizado o una condición de pertenencia personalizada) a la lista de ensamblados de plena confianza para un nivel de directiva específico.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. El argumento archivo_ensamblado especifica el ensamblado que se va a agregar.The assembly_file argument specifies the assembly to add. Este archivo debe estar firmado con un nombre seguro.This file must be signed with a strong name. Puede firmar un ensamblado con un nombre seguro mediante la herramienta Nombre seguro (Sn.exe).You can sign an assembly with a strong name using the Strong Name Tool (Sn.exe).

Cada vez que se agrega a la directiva un conjunto de permisos que contiene un permiso personalizado, se debe agregar el ensamblado que implementa el permiso personalizado a la lista de plena confianza para dicho nivel de directiva.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. Los ensamblados que implementan objetos de seguridad personalizados (como grupos de código personalizados o condiciones de pertenencia personalizadas) que se utilizan en una directiva de seguridad (como la directiva de equipo) siempre deben agregarse a la lista de ensamblados de plena confianza.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. Advertencia: Si el ensamblado que implementa el objeto de seguridad personalizado hace referencia a otros ensamblados, debe agregar primero los ensamblados a los que se hace referencia a la lista de ensamblados de plena confianza.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. Los objetos de seguridad personalizados creados con Visual Basic, C++ y JScript hacen referencia a Microsoft.VisualBasic.dll, Microsoft.VisualC.dll o Microsoft.JScript.dll, respectivamente.Custom security objects created using Visual Basic, C++, and JScript reference either Microsoft.VisualBasic.dll, Microsoft.VisualC.dll, or Microsoft.JScript.dll, respectively. Estos ensamblados no se encuentran en la lista de ensamblados de plena confianza de forma predeterminada.These assemblies are not in the full trust assembly list by default. Debe agregar el ensamblado adecuado a la lista de plena confianza antes de agregar un objeto de seguridad personalizado.You must add the appropriate assembly to the full trust list before you add a custom security object. Si se produce un error al realizar esta operación, el sistema de seguridad se interrumpirá y los ensamblados no se cargarán.Failure to do so will break the security system, causing all assemblies to fail to load. En caso de que se produzca esta situación, la opción -all -reset de la herramienta Caspol.exe no reparará la seguridad.In this situation, the Caspol.exe -all -reset option will not repair security. Para reparar la seguridad, debe editar manualmente los archivos de seguridad a fin de quitar el objeto de seguridad personalizado.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]

oor

-ag {parent_label | parent_name} mship pset_name [flags]-ag {parent_label | parent_name} mship pset_name [flags]
Agrega un grupo de código nuevo a la jerarquía de grupos de código.Adds a new code group to the code group hierarchy. Puede especificar el argumento parent_label o el argumento parent_name.You can specify either the parent_label or parent_name. El argumento parent_label especifica la etiqueta (como 1.The parent_label argument specifies the label (such as 1. o 1.1) del nombre del grupo de código que es el elemento primario del grupo de código que se va a agregar.or 1.1.) of the code group that is the parent of the code group being added. El argumento parent_name especifica el nombre del grupo de código que es el elemento primario del grupo de código que se va a agregar.The parent_name argument specifies the name of the code group that is the parent of the code group being added. Dado que los argumentos parent_label y parent_name se pueden usar indistintamente, Caspol.exe debe poder distinguir entre ellos.Because parent_label and parent_name can be used interchangeably, Caspol.exe must be able to distinguish between them. Por tanto, el argumento parent_name no puede empezar con un número.Therefore, parent_name cannot begin with a number. Además, parent_name solo puede contener caracteres de A a Z, de 0 a 9 y de subrayado.Additionally, parent_name can only contain A-Z, 0-9 and the underscore character.

El argumento mship especifica la condición de pertenencia para el nuevo grupo de código.The mship argument specifies the membership condition for the new code group. Para más información, consulte la tabla de los argumentos mship más adelante en esta sección.For more information, see the table of mship arguments later in this section.

El argumento pset_name es el nombre del conjunto de permisos que se asociará al grupo de código nuevo.The pset_name argument is the name of the permission set that will be associated with the new code group. También se pueden establecer uno o varios argumentos flags para el nuevo grupo.You can also set one or more flags for the new group. Para más información, consulte la tabla de argumentos flags más adelante en esta sección.For more information, see the table of flags arguments later in this section.
-addpset {psfile | psfile pset_name}-addpset {psfile | psfile pset_name}

oor

-ap {namedpsfile | psfile pset_name}-ap {namedpsfile | psfile pset_name}
Agrega un nuevo conjunto de permisos con nombre a la directiva.Adds a new named permission set to policy. El conjunto de permisos se debe crear en XML y almacenar en un archivo .xml.The permission set must be authored in XML and stored in an .xml file. Si el archivo XML contiene el nombre del conjunto de permisos, solo se especifica dicho archivo (psfile).If the XML file contains the name of the permission set, only that file (psfile) is specified. Si el archivo XML no contiene el nombre del conjunto de permisos, se debe especificar tanto el nombre del archivo XML (psfile) como el nombre del conjunto de permisos (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).

Tenga en cuenta que todos los permisos usados en un conjunto de permisos se deben definir en ensamblados incluidos en la caché global de ensamblados.Note that all permissions used in a permission set must be defined in assemblies contained in the global assembly cache.
-a[ll]-a[ll] Indica que todas las opciones que siguen a esta se aplican a las directivas de equipo, usuario y empresa.Indicates that all options following this one apply to the machine, user, and enterprise policies. La opción -all siempre hace referencia a la directiva del usuario actual que tiene iniciada una sesión actualmente.The -all option always refers to the policy of the currently logged-on user. Consulte la opción -customall para hacer referencia a la directiva de un usuario distinto del usuario actual.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 }

oor

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

flags }flags }
Cambia en un grupo de código la condición de pertenencia, el conjunto de permisos o la configuración de las marcas exclusive, levelfinal, name o description.Changes a code group's membership condition, permission set, or the settings of the exclusive, levelfinal, name, or description flags. Puede especificar el argumento label o name.You can specify either the label or name. El argumento label especifica la etiqueta (como 1.The label argument specifies the label (such as 1. o 1.1) del grupo de código.or 1.1.) of the code group. El argumento name especifica el nombre del grupo de código que se va a cambiar.The name argument specifies the name of the code group to change. Dado que los argumentos label y name se pueden usar indistintamente, Caspol.exe debe poder distinguir entre ellos.Because label and name can be used interchangeably, Caspol.exe must be able to distinguish between them. Por tanto, el argumento name no puede empezar con un número.Therefore, name cannot begin with a number. Además, name solo puede contener caracteres de A a Z, de 0 a 9 y de subrayado.Additionally, name can only contain A-Z, 0-9 and the underscore character.

El argumento pset_name especifica el nombre del conjunto de permisos que se va a asociar al nuevo grupo de código.The pset_name argument specifies the name of the permission set to associate with the code group. Consulte las tablas que aparecen más adelante en esta sección para obtener información sobre los argumentos mship y flags.See the tables later in this section for information on the mship and flags arguments.
-chgpset psfile pset_name-chgpset psfile pset_name

oor

-cp psfile pset_name-cp psfile pset_name
Cambia un conjunto de permisos con nombre.Changes a named permission set. El argumento psfile proporciona la nueva definición para el conjunto de permisos; es un archivo serializado de conjunto de permisos en formato XML.The psfile argument supplies the new definition for the permission set; it is a serialized permission set file in XML format. El argumento pset_name especifica el nombre del conjunto de permisos que se desea cambiar.The pset_name argument specifies the name of the permission set you want to change.
-customall path-customall path

oor

-ca path-ca path
Indica que todas las opciones que siguen a esta se aplican a las directivas de equipo, empresa y usuario personalizado especificado.Indicates that all options following this one apply to the machine, enterprise, and the specified custom user policies. Debe especificar la ubicación del archivo de configuración de seguridad del usuario personalizado con el argumento path.You must specify the location of the custom user's security configuration file with the path argument.
-cu[stomuser] path-cu[stomuser] path Permite la administración de una directiva de usuario personalizado que no pertenece al usuario en cuyo nombre se está ejecutando actualmente la herramienta 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. Debe especificar la ubicación del archivo de configuración de seguridad del usuario personalizado con el argumento path.You must specify the location of the custom user's security configuration file with the path argument.
-enterprise-enterprise

oor

-en-en
Indica que todas las opciones que siguen a esta se aplican a la directiva de nivel de empresa.Indicates that all options following this one apply to the enterprise level policy. Los usuarios que no son administradores de empresa no tienen derechos suficientes para modificar la directiva de empresa, aunque pueden verla.Users who are not enterprise administrators do not have sufficient rights to modify the enterprise policy, although they can view it. En escenarios distintos del de empresa, la opción predeterminada es que esta directiva no interfiera con las directivas de equipo y de usuario.In nonenterprise scenarios, this policy, by default, does not interfere with machine and user policy.
-e[xecution] {on | off}-e[xecution] {on | off} Activa o desactiva el mecanismo que comprueba que el permiso se ejecuta antes de iniciarse la ejecución del código.Turns on or off the mechanism that checks for the permission to run before code starts to execute. Nota: Este modificador ya no existe en .NET Framework 4 ni en las versiones posteriores.Note: This switch is removed in the .NET Framework 4 and later versions. Para más información, consulte Cambios de seguridad.For more information, see Security Changes.
-f[orce]-f[orce] Suprime la prueba de autodestrucción de la herramienta y cambia la directiva de acuerdo con lo especificado por el usuario.Suppresses the tool's self-destruct test and changes the policy as specified by the user. Normalmente, Caspol.exe comprueba si los cambios efectuados en una directiva impedirían el correcto funcionamiento de la herramienta; si es el caso, Caspol.exe no guarda el cambio de la directiva e imprime un mensaje de error.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. Para forzar a Caspol.exe a cambiar la directiva aunque esto impida su ejecución, use la opción –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] Muestra las opciones y la sintaxis de los comandos de Caspol.exe.Displays command syntax and options for Caspol.exe.
-l[ist]-l[ist] Enumera la jerarquía de grupos de código y los conjuntos de permisos para el nivel de directiva especificado (equipo, usuario o empresa) o para todos los niveles de directiva.Lists the code group hierarchy and the permission sets for the specified machine, user, enterprise, or all policy levels. Caspol.exe muestra primero la etiqueta del grupo de código, seguida del nombre, si el valor no es nulo.Caspol.exe displays the code group's label first, followed by the name, if it is not null.
-listdescription-listdescription

oor

-ld-ld
Enumera todas las descripciones de grupos de código para el nivel de directiva especificado.Lists all code group descriptions for the specified policy level.
-listfulltrust-listfulltrust

oor

-lf-lf
Enumera el contenido de la lista de ensamblados de plena confianza para el nivel de directiva especificado.Lists the contents of the full trust assembly list for the specified policy level.
-listgroups-listgroups

oor

-lg-lg
Muestra los grupos de código para el nivel de directiva especificado o para todos los niveles de directiva.Displays the code groups of the specified policy level or all policy levels. Caspol.exe muestra primero la etiqueta del grupo de código, seguida del nombre, si el valor no es nulo.Caspol.exe displays the code group's label first, followed by the name, if it is not null.
-listpset or -lp-listpset or -lp Muestra los conjuntos de permisos para el nivel de directiva especificado o para todos los niveles de directiva.Displays the permission sets for the specified policy level or all policy levels.
-m[achine]-m[achine] Indica que todas las opciones que siguen a esta se aplican a la directiva de nivel de equipo.Indicates that all options following this one apply to the machine level policy. Los usuarios que no son administradores no tienen derechos suficientes para modificar la directiva de equipo, aunque pueden verla.Users who are not administrators do not have sufficient rights to modify the machine policy, although they can view it. Para los administradores, -machine es la opción predeterminada.For administrators, -machine is the default.
-polchgprompt {on | off}-polchgprompt {on | off}

oor

-pp {on | off}-pp {on | off}
Habilita o deshabilita el mensaje que se muestra cada vez que Caspol.exe se ejecuta con una opción que provoca cambios en la directiva.Enables or disables the prompt that is displayed whenever Caspol.exe is run using an option that would cause policy changes.
-quiet-quiet

oor

-q-q
Deshabilita temporalmente el mensaje que se muestra normalmente para una opción que ocasiona cambios en la directiva.Temporarily disables the prompt that is normally displayed for an option that causes policy changes. No cambia la configuración global del mensaje.The global change prompt setting does not change. Use la opción únicamente en comandos individuales para evitar que el mensaje se deshabilite para todos los comandos de 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] Recupera la directiva de un archivo de copia de seguridad.Recovers policy from a backup file. Cada vez que se efectúa un cambio en una directiva, Caspol.exe almacena la directiva antigua en un archivo de copia de seguridad.Whenever a policy change is made, Caspol.exe stores the old policy in a backup file.
-remfulltrust archivo_ensamblado-remfulltrust assembly_file

oor

-rf archivo_ensamblado-rf assembly_file
Quita un ensamblado de la lista de plena confianza de un nivel de directiva.Removes an assembly from the full trust list of a policy level. Realice esta operación si la directiva deja de usar un conjunto de permisos que contiene un permiso personalizado.This operation should be performed if a permission set that contains a custom permission is no longer used by policy. No obstante, solo debe quitar de la lista de plena confianza un ensamblado que implementa un permiso personalizado si el ensamblado no implementa ningún otro permiso personalizado que se esté usando todavía.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. Cuando se quita un ensamblado de la lista, también se deben quitar los ensamblados de los que depende.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}

oor

-rg {label | name}-rg {label | name}
Quita el grupo de código especificado mediante su etiqueta o su nombre.Removes the code group specified by either its label or name. Si el grupo de código especificado tiene grupos de código secundarios, Caspol.exe también los quita.If the specified code group has child code groups, Caspol.exe also removes all the child code groups.
-rempset pset_name-rempset pset_name

oor

-rp pset_name-rp pset_name
Quita de la directiva el conjunto de permisos especificado.Removes the specified permission set from policy. El argumento pset_name indica el conjunto de permisos que se va a quitar.The pset_name argument indicates which permission set to remove. Caspol.exe quita el conjunto de permisos solo si no está asociado a ningún grupo de código.Caspol.exe removes the permission set only if it is not associated with any code group. Los conjuntos de permisos predeterminados (integrados) no se pueden quitar.The default (built-in) permission sets cannot be removed.
-reset-reset

oor

-rs-rs
Devuelve la directiva a su estado predeterminado y la guarda en el disco.Returns policy to its default state and persists it to disk. Esta opción es resulta de gran utilidad si se sospecha que una directiva modificada ya no se puede reparar y se desea empezar de nuevo con los valores predeterminados de instalación.This is useful whenever a changed policy seems to be beyond repair and you want to start over with the installation defaults. El restablecimiento de los valores predeterminados también puede resultar conveniente si se desea usar la directiva predeterminada como punto de partida para realizar modificaciones en archivos de configuración de seguridad específicos.Resetting can also be convenient when you want to use the default policy as a starting point for modifications to specific security configuration files. Para más información, consulte Editar manualmente archivos de configuración de seguridad.For more information, see Manually Editing the Security Configuration Files.
-resetlockdown-resetlockdown

oor

-rsld-rsld
Devuelve la directiva a una versión más restrictiva del estado predeterminado y la guarda en el disco; crea una copia de seguridad de la directiva de equipo anterior y la guarda en un archivo denominado 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. La directiva bloqueada se parece a la predeterminada, salvo en que no otorga permisos al código de las zonas Local Intranet, Trusted Sites e Internet, y los grupos de códigos correspondientes no tienen grupos de códigos secundarios.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 archivo_ensamblado-resolvegroup assembly_file

oor

-rsg archivo_ensamblado-rsg assembly_file
Muestra los grupos de código a los que pertenece un ensamblado específico (archivo_ensamblado).Shows the code groups that a specific assembly (assembly_file) belongs to. De forma predeterminada, esta opción muestra los niveles de directiva de equipo, usuario y empresa a los que pertenece el ensamblado.By default, this option displays the machine, user, and enterprise policy levels to which the assembly belongs. Para ver solo un nivel de directiva, use esta opción con la opción -machine, -user o -enterprise.To view only one policy level, use this option with either the -machine, -user, or -enterprise option.
-resolveperm archivo_ensamblado-resolveperm assembly_file

oor

-rsp archivo_ensamblado-rsp assembly_file
Muestra todos los permisos que el nivel especificado (o el predeterminado) de directiva de seguridad concedería al ensamblado si tuviera permiso para ejecutarse.Displays all permissions that the specified (or default) level of security policy would grant the assembly if the assembly were allowed to run. El argumento archivo_ensamblado especifica el ensamblado.The assembly_file argument specifies the assembly. Si especifica la opción -all, Caspol.exe calcula los permisos para el ensamblado basándose en la directivas de usuario, equipo y empresa; de lo contrario, se aplican las reglas de comportamiento predeterminado.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} Activa o desactiva la seguridad de acceso del código.Turns code access security on or off. Si se especifica la opción -s off, la seguridad basada en roles no se deshabilita.Specifying the -s off option does not disable role-based security. Nota: Este modificador ya no existe en .NET Framework 4 ni en las versiones posteriores.Note: This switch is removed in the .NET Framework 4 and later versions. Para más información, consulte Cambios de seguridad.For more information, see Security Changes. Advertencia: Cuando la seguridad de acceso del código está deshabilitada, todas las peticiones de acceso al código se realizan correctamente.Caution: When code access security is disabled, all code access demands succeed. El hecho de deshabilitar la seguridad de acceso del código hace que el sistema sea vulnerable a ataques por parte de código malintencionado, como virus y gusanos.Disabling code access security makes the system vulnerable to attacks by malicious code such as viruses and worms. Cuando se desactiva la seguridad, aumenta el rendimiento, pero esta operación solo debe realizarse si se han adoptado otras medidas para evitar poner en peligro la seguridad global del sistema.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. Desconectarse de las redes públicas, proteger los equipos físicamente, etc. constituyen otros ejemplos de precauciones de seguridad.Examples of other security precautions include disconnecting from public networks, physically securing computers, and so on.
-u[ser]-u[ser] Indica que todas las opciones que siguen a esta se aplican a la directiva de nivel de usuario correspondiente al usuario en cuyo nombre se ejecuta 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. Para usuarios no administradores, -user es la opción predeterminada.For nonadministrative users, -user is the default.
-?-? Muestra las opciones y la sintaxis de los comandos de Caspol.exe.Displays command syntax and options for Caspol.exe.

El argumento mship, que especifica la condición de pertenencia de un grupo de código, se puede usar con las opciones -addgroup y -chggroup.The mship argument, which specifies the membership condition for a code group, can be used with the -addgroup and -chggroup options. Cada argumento mship se implementa como una clase de .NET Framework.Each mship argument is implemented as a .NET Framework class. Para especificar el argumento mship, use uno de los argumentos siguientes.To specify mship, use one of the following.

ArgumentoArgument DescripciónDescription
-allcode-allcode Especifica todo el código.Specifies all code. Para obtener más información sobre esta condición de pertenencia, vea System.Security.Policy.AllMembershipCondition.For more information about this membership condition, see System.Security.Policy.AllMembershipCondition.
-appdir-appdir Especifica el directorio de la aplicación.Specifies the application directory. Si especifica –appdir como condición de pertenencia, la evidencia de dirección URL del código se compara con la evidencia de directorio de aplicación de dicho código.If you specify –appdir as the membership condition, the URL evidence of code is compared with the application directory evidence of that code. Si ambos valores de evidencia coinciden, se cumple la condición de pertenencia.If both evidence values are the same, this membership condition is satisfied. Para obtener más información sobre esta condición de pertenencia, vea System.Security.Policy.ApplicationDirectoryMembershipCondition.For more information about this membership condition, see System.Security.Policy.ApplicationDirectoryMembershipCondition.
-custom xmlfile-custom xmlfile Agrega una condición de pertenencia personalizada.Adds a custom membership condition. El argumento xmlfile obligatorio especifica el archivo .xml que contiene la serialización en formato XML de la condición de pertenencia personalizada.The mandatory xmlfile argument specifies the .xml file that contains XML serialization of the custom membership condition.
-hash hashAlg {-hex hashValue | -file archivo_ensamblado }-hash hashAlg {-hex hashValue | -file assembly_file } Especifica el código que tiene el hash de ensamblado especificado.Specifies code that has the given assembly hash. Para usar un hash como condición de pertenencia de grupo de código, debe especificar el valor hash o el archivo de ensamblado.To use a hash as a code group membership condition, you must specify either the hash value or the assembly file. Para obtener más información sobre esta condición de pertenencia, vea 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 }
Especifica el código que tiene el editor de software especificado, indicado por un archivo de certificado, una firma en un archivo o la representación hexadecimal de un certificado 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. Para obtener más información sobre esta condición de pertenencia, vea System.Security.Policy.PublisherMembershipCondition.For more information about this membership condition, see System.Security.Policy.PublisherMembershipCondition.
-site website-site website Especifica el código que tiene el sitio de origen especificado.Specifies code that has the given site of origin. Por ejemplo:For example:

-site** www.proseware.com

Para obtener más información sobre esta condición de pertenencia, vea 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} Especifica el código que tiene un nombre seguro determinado, que se indica por el nombre de archivo, el nombre de ensamblado en forma de cadena y la versión del ensamblado con el formato 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. Por ejemplo:For example:

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

Para obtener más información sobre esta condición de pertenencia, vea System.Security.Policy.StrongNameMembershipCondition.For more information about this membership condition, see System.Security.Policy.StrongNameMembershipCondition.
-url URL-url URL Especifica el código que se origina en la dirección URL especificada.Specifies code that originates from the given URL. La dirección URL debe incluir un protocolo, como http:// o ftp://.The URL must include a protocol, such as http:// or ftp://. Además, puede utilizarse un carácter comodín (*) para especificar varios ensamblados desde una dirección URL en particular.Additionally, a wildcard character (*) can be used to specify multiple assemblies from a particular URL. Nota: Dado que una dirección URL puede identificarse mediante el uso de varios nombres, el uso de una dirección URL como condición de pertenencia no es una forma segura de confirmar la identidad del código.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. Siempre que pueda, utilice una condición de pertenencia consistente en un nombre seguro, en una compañía de software o en un hash.Where possible, use a strong name membership condition, a publisher membership condition, or the hash membership condition.

Para obtener más información sobre esta condición de pertenencia, vea System.Security.Policy.UrlMembershipCondition.For more information about this membership condition, see System.Security.Policy.UrlMembershipCondition.
-zone zonename-zone zonename Especifica el código que tiene la zona de origen especificada.Specifies code with the given zone of origin. El argumento nombreDeZona puede ser cualquiera de los valores siguientes: MyComputer, Intranet, Trusted, Internet o Untrusted.The zonename argument can be one of the following values: MyComputer, Intranet, Trusted, Internet, or Untrusted. Para obtener más información sobre esta condición de pertenencia, vea la clase ZoneMembershipCondition.For more information about this membership condition, see the ZoneMembershipCondition Class.

El argumento flags, que se puede usar con las opciones –addgroup y –chggroup, se especifica mediante uno de los argumentos siguientes.The flags argument, which can be used with the –addgroup and –chggroup options, is specified using one of the following.

ArgumentoArgument DescripciónDescription
-description "descripción"-description "description" Si se usa con la opción –addgroup, especifica la descripción del grupo de código que se va a agregar.If used with the –addgroup option, specifies the description for a code group to add. Si se usa con la opción –chggroup, especifica la descripción del grupo de código que se va a modificar.If used with the –chggroup option, specifies the description for a code group to edit. El argumento descripción debe ir entre comillas dobles.The description argument must be enclosed in double quotes.
-exclusive {on|off}-exclusive {on|off} Cuando esta opción se establece en on, indica que solo se tiene en cuenta el conjunto de permisos asociado al grupo de código que se va a agregar o a modificar cuando parte del código satisface la condición de pertenencia del grupo de código.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. Cuando esta opción se establece en off, Caspol.exe tiene en cuenta los conjuntos de permisos de todos los grupos de código coincidentes en el nivel de directiva.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} Cuando esta opción se establece en on, indica que no se tiene en cuenta ningún nivel de directiva por debajo del nivel en el que se encuentra el grupo de código agregado o modificado.When set to on, indicates that no policy level below the level in which the added or modified code group occurs is considered. Esta opción se usa normalmente en el nivel de directiva de equipo.This option is typically used at the machine policy level. Por ejemplo, si establece esta marca para un grupo de código en el nivel de equipo y una parte de código cumple la condición de pertenencia de este grupo de código, Caspol.exe no calcula ni aplica la directiva de nivel de usuario para este código.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 "nombre"-name "name" Si se usa con la opción –addgroup, especifica el nombre de scripting del grupo de código que se va a agregar.If used with the –addgroup option, specifies the scripting name for a code group to add. Si se usa con la opción -chggroup, especifica el nombre de scripting del grupo de código que se va a modificar.If used with the -chggroup option, specifies the scripting name for a code group to edit. El argumento nombre debe ir entre comillas dobles.The name argument must be enclosed in double quotes. El argumento nombre no puede empezar con un número y solo puede contener caracteres de A a Z, de 0 a 9 y de subrayado.The name argument cannot begin with a number, and can only contain A-Z, 0-9, and the underscore character. Se puede hacer referencia a los grupos de código mediante el argumento nombre en lugar de usar su etiqueta numérica.Code groups can be referred to by this name instead of by their numeric label. El argumento nombre también es muy útil en materia de scripting.The name is also highly useful for scripting purposes.

ComentariosRemarks

La directiva de seguridad se expresa mediante tres niveles: equipo, usuario y empresa.Security policy is expressed using three policy levels: machine policy, user policy, and enterprise policy. El conjunto de permisos que recibe un ensamblado viene determinado por la intersección de los conjuntos de permisos permitidos por estos tres niveles de directiva.The set of permissions that an assembly receives is determined by the intersection of the permission sets allowed by these three policy levels. Cada nivel está representado por una estructura jerárquica de grupos de código.Each policy level is represented by a hierarchical structure of code groups. Cada grupo de código tiene una condición de pertenencia que determina qué código es miembro de ese grupo.Every code group has a membership condition that determines which code is a member of that group. Asimismo, cada grupo de código tiene asociado un conjunto de permisos con nombre.A named permission set is also associated with each code group. Este conjunto de permisos especifica los permisos que el runtime permite que tenga el código que satisface la condición de pertenencia.This permission set specifies the permissions the runtime allows code that satisfies the membership condition to have. Una jerarquía de grupos de código, junto con sus conjuntos de permisos con nombre asociados, define y conserva cada nivel de directiva de seguridad.A code group hierarchy, along with its associated named permission sets, defines and maintains each level of security policy. Puede usar las opciones –user, -customuser, –machine y -enterprise para establecer el nivel de la directiva de seguridad.You can use the –user, -customuser, –machine and -enterprise options to set the level of security policy.

Para más información sobre la directiva de seguridad y el modo en que el runtime determina qué permisos se conceden al código, consulte Administración de directivas de seguridad.For more information about security policy and how the runtime determines which permissions to grant to code, see Security Policy Management.

Hacer referencia a grupos de código y conjuntos de permisosReferencing Code Groups and Permission Sets

Para facilitar las referencias a grupos de código en una jerarquía, la opción -list muestra una lista de grupos de código con sangría junto con sus etiquetas numéricas (1, 1.1, 1.1.1, etc.).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). Las demás operaciones de línea de comandos cuyo destino son los grupos de código también usan etiquetas numéricas para hacer referencia a grupos de código específicos.The other command-line operations that target code groups also use the numerical labels to refer to specific code groups.

Para hacer referencia a los conjuntos de permisos con nombre, se usan sus nombres.Named permission sets are referenced by their names. La opción –list muestra la lista de grupos de código seguida de una lista de conjuntos de permisos con nombre disponibles en esa directiva.The –list option displays the list of code groups followed by a list of named permission sets available in that policy.

Comportamiento de Caspol.exeCaspol.exe Behavior

Todas las opciones excepto -s[ecurity] {on | off} usan la versión de .NET Framework con la que se instaló Caspol.exe.All options except -s[ecurity] {on | off} use the version of the .NET Framework that Caspol.exe was installed with. Si ejecuta la herramienta Caspol.exe que se instaló con la versión X del runtime, los cambios solo afectan a dicha versión.If you run the Caspol.exe that was installed with version X of the runtime, the changes apply only to that version. Si hay otras instalaciones en paralelo del runtime, no se ven afectadas.Other side-by-side installations of the runtime, if any, are not affected. Si ejecuta Caspol.exe desde la línea de comandos sin estar en un directorio de una versión del runtime específica, la herramienta se ejecuta desde el primer directorio de la versión del runtime existente en la ruta de acceso (normalmente la última versión instalada del runtime).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).

La opción -s[ecurity] {on | off} es una operación que afecta a todo el equipo.The -s[ecurity] {on | off} option is a computer-wide operation. Cuando se desactiva la seguridad de acceso del código se pone fin a las comprobaciones de seguridad de todo el código administrado y de todos los usuarios del equipo.Turning off code access security terminates security checks for all managed code and for all users on the computer. Si se instalan en paralelo varias versiones de .NET Framework, este comando desactiva la seguridad de todas las versiones instaladas en el equipo.If side-by-side versions of the .NET Framework are installed, this command turns off security for every version installed on the computer. Aunque la opción -list muestra que la seguridad está desactivada, no hay ningún otro indicio que indique claramente este hecho a los demás usuarios.Although the -list option shows that security is turned off, nothing else clearly indicates for other users that security has been turned off.

Cuando un usuario sin derechos administrativos ejecuta Caspol.exe, todas las opciones hacen referencia a la directiva de nivel de usuario, salvo que se especifique la opción –machine.When a user without administrative rights runs Caspol.exe, all options refer to the user level policy unless the –machine option is specified. Cuando un administrador ejecuta Caspol.exe, todas las opciones hacen referencia a la directiva de equipo, salvo que se especifique la opción –user.When an administrator runs Caspol.exe, all options refer to the machine policy unless the –user option is specified.

Para que Caspol.exe funcione, debe tener concedido el equivalente al conjunto de permisos Everything.Caspol.exe must be granted the equivalent of the Everything permission set to function. La herramienta dispone de un mecanismo de protección que evita que la directiva se modifique con el objeto de impedir la concesión a Caspol.exe de los permisos que necesita para ejecutarse.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. Cuando se intenta realizar algún cambio de ese tipo en la directiva, Caspol.exe informa de que dicho cambio bloqueará la herramienta y lo rechaza.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. Este mecanismo de protección se puede desactivar para un comando determinado mediante la opción –force.You can turn this protective mechanism off for a given command by using the –force option.

Editar manualmente archivos de configuración de seguridadManually Editing the Security Configuration Files

Existen tres archivos de configuración de seguridad que se corresponden con los tres niveles de directiva admitidos por Caspol.exe: uno para la directiva de equipo, otro para la directiva del usuario especificado, y un tercero para la directiva de empresa.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. Estos archivos se crean únicamente en el disco cuando se modifica la directiva de equipo, usuario o empresa mediante Caspol.exe.These files are created on disk only when machine, user, or enterprise policy is changed using Caspol.exe. Puede usar la opción –reset de Caspol.exe para guardar la directiva de seguridad predeterminada en el disco si fuera necesario.You can use the –reset option in Caspol.exe to save the default security policy to disk, if needed.

En la mayoría de los casos, no es recomendable editar manualmente los archivos de configuración de seguridad.In most cases, manually editing the security configuration files is not recommended. Pero puede haber escenarios en los que sea necesario modificar estos archivos, como cuando un administrador desea editar la configuración de seguridad para un usuario concreto.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.

EjemplosExamples

-addfulltrust-addfulltrust

Suponga que se ha agregado a la directiva de equipo un conjunto de permisos que contiene un permiso personalizado.Assume that a permission set containing a custom permission has been added to machine policy. Este permiso personalizado se implementa en MyPerm.exe y MyPerm.exe hace referencia a clases de MyOther.exe.This custom permission is implemented in MyPerm.exe, and MyPerm.exe references classes in MyOther.exe. Ambos ensamblados de deben agregar a la lista de ensamblados de plena confianza.Both assemblies must be added to the full trust assembly list. El comando siguiente agrega el ensamblado MyPerm.exe a la lista de plena confianza de la directiva de equipo.The following command adds the MyPerm.exe assembly to the full trust list for the machine policy.

caspol -machine -addfulltrust MyPerm.exe  

El comando siguiente agrega el ensamblado MyOther.exe a la lista de plena confianza de la directiva de equipo.The following command adds the MyOther.exe assembly to the full trust list for the machine policy.

caspol -machine -addfulltrust MyOther.exe  

-addgroup-addgroup

El comando siguiente agrega un grupo de código secundario a la raíz de la jerarquía de grupos de código de la directiva de equipo.The following command adds a child code group to the root of the machine policy code group hierarchy. El nuevo grupo de código es miembro de la zona Internet y está asociado al conjunto de permisos 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  

El siguiente comando agrega un grupo de código secundario que concede permisos de intranet local al recurso compartido \\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

El comando siguiente agrega el conjunto de permisos Mypset a la directiva de usuario.The following command adds the Mypset permission set to the user policy.

caspol -user -addpset Mypset.xml Mypset  

-chggroup-chggroup

El comando siguiente cambia el conjunto de permisos de la directiva de usuario del grupo de código cuya etiqueta es 1.2.The following command changes the permission set in the user policy of the code group labeled 1.2. para el conjunto de permisos Execution.to the Execution permission set.

caspol -user -chggroup 1.2. Execution  

El comando siguiente cambia la condición de pertenencia de la directiva predeterminada del grupo de código cuya etiqueta es 1.2.1.The following command changes the membership condition in the default policy of the code group labeled 1.2.1. y cambia el valor de la marca exclusive.and changes the setting of the exclusive flag. La condición de pertenencia se define como código que se origina en la zona Internet y se activa la marca 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

El comando siguiente cambia el conjunto de permisos denominado Mypset por el conjunto de permisos contenido en newpset.xml.The following command changes the permission set with name Mypset to the permission set contained in newpset.xml. Tenga en cuenta que la versión actual no permite cambiar conjuntos de permisos que se estén usando en la jerarquía de grupos de código.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

El comando siguiente hace que el grupo de código raíz de la directiva de usuario (con la etiqueta numérica 1) se asocie al conjunto de permisos denominado Nothing.The following command causes the user policy's root code group (labeled 1) to be associated with the Nothing named permission set. Esto impide la ejecución de Caspol.exe.This prevents Caspol.exe from running.

caspol -force -user -chggroup 1 Nothing  

-recover-recover

El comando siguiente recupera la última directiva de equipo guardada.The following command recovers the most recently saved machine policy.

caspol -machine -recover  

-remgroup-remgroup

El comando siguiente quita el grupo de código con la etiqueta numérica 1.1.The following command removes the code group labeled 1.1. Si este grupo de código tiene grupos de código secundarios, estos también se eliminan.If this code group has any child code groups, those groups are also deleted.

caspol -remgroup 1.1.  

-rempset-rempset

El comando siguiente quita el conjunto de permisos Execution de la directiva de usuario.The following command removes the Execution permission set from the user policy.

caspol -user -rempset Execution  

El comando siguiente quita Mypset del nivel de directiva de usuario.The following command removes Mypset from the user policy level.

caspol -rempset MyPset  

-resolvegroup-resolvegroup

El comando siguiente muestra todos los grupos de código de la directiva de equipo a la que pertenece myassembly.The following command shows all code groups of the machine policy that myassembly belongs to.

caspol -machine -resolvegroup myassembly  

El comando siguiente muestra todos los grupos de código de las directivas de equipo, empresa y usuario personalizado especificado a las que pertenece 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

El comando siguiente calcula los permisos correspondientes a testassembly basándose en los niveles de directiva de equipo y usuario.The following command calculates the permissions for testassembly based on the machine and user policy levels.

caspol -all -resolveperm testassembly  

Vea tambiénSee also