Creación y ejecución de scripts de PowerShell desde la consola de Configuration ManagerCreate and run PowerShell scripts from the Configuration Manager console

Se aplica a: Configuration Manager (rama actual)Applies to: Configuration Manager (current branch)

Configuration Manager tiene una funcionalidad integrada para ejecutar scripts de PowerShell.Configuration Manager has an integrated ability to run PowerShell scripts. PowerShell tiene la ventaja de crear scripts automatizados y sofisticados que se entienden y se comparten con una comunidad mayor.PowerShell has the benefit of creating sophisticated, automated scripts that are understood and shared with a larger community. Los scripts simplifican la compilación de herramientas personalizadas para administrar software y posibilitan la realización de tareas rutinarias rápidamente, lo que permite obtener grandes resultados de forma más sencilla y coherente.The scripts simplify building custom tools to administer software and let you accomplish mundane tasks quickly, allowing you to get large jobs done more easily and more consistently.

Nota

Configuration Manager no habilita esta característica opcional de forma predeterminada.Configuration Manager doesn't enable this optional feature by default. Deberá habilitarla para poder usarla.You must enable this feature before using it. Para obtener más información, consulte Habilitar características opcionales de las actualizaciones.For more information, see Enable optional features from updates.

Gracias a esta integración con Configuration Manager, puede usar la funcionalidad Ejecutar scripts para hacer lo siguiente:With this integration in Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Crear y editar scripts para usarlos con Configuration ManagerCreate and edit scripts for use with Configuration Manager.
  • Administrar el uso de los scripts a través de roles y ámbitos de seguridad.Manage script usage through roles and security scopes.
  • Ejecutar scripts en recopilaciones o equipos Windows administrados localesRun scripts on collections or individual on-premises managed Windows PCs.
  • Obtener resultados agregados y rápidos de scripts desde dispositivos clienteGet rapid aggregated script results from client devices.
  • Supervisar la ejecución de scripts y ver los resultados de los informes desde la salida de los scriptsMonitor script execution and view reporting results from script output.

Advertencia

  • Dada la eficacia de los scripts, le recordamos que los utilice de forma intencionada y cautelosa.Given the power of scripts, we remind you to be intentional and careful with their usage. Hemos integrado medidas de seguridad adicionales para ayudarlo: los ámbitos y roles separados.We have built in additional safeguards to assist you; segregated roles and scopes. Asegúrese de validar la precisión de los scripts antes de ejecutarlos y confirme que provienen de un origen de confianza, para así evitar que se ejecuten scripts involuntariamente.Be sure to validate the accuracy of scripts before running them and confirm they are from a trusted source, to prevent unintended script execution. Tenga cuidado con los caracteres extendidos u otra ofuscación, e Infórmese sobre la protección de scripts.Be mindful of extended characters or other obfuscation and educate yourself about securing scripts. Más información sobre la seguridad del script de PowerShellLearn more about PowerShell script security
  • Cierto software antimalware puede desencadenar accidentalmente eventos contra las características Ejecutar scripts o CMPivot de Configuration Manager.Certain anti-malware software may inadvertently trigger events against the Configuration Manager Run Scripts or CMPivot features. Se recomienda excluir %windir%\CCM\ScriptStore para que el software antimalware permita que esas características se ejecuten sin interferencias.It is recommended to exclude %windir%\CCM\ScriptStore so that the anti-malware software permits those features to run without interference.

Requisitos previosPrerequisites

  • Para ejecutar los scripts de PowerShell, el cliente debe ejecutar la versión 3.0 o posterior de PowerShell.To run PowerShell scripts, the client must be running PowerShell version 3.0 or later. Sin embargo, si se ejecuta un script que contiene la funcionalidad de una versión posterior de PowerShell, el cliente en el que se ejecuta dicho script debe ejecutar esa misma versión de PowerShell.However, if a script you run contains functionality from a later version of PowerShell, the client on which you run the script must be running that version of PowerShell.
  • Los clientes de Configuration Manager deben ejecutar al cliente de la versión 1706 o posterior para poder ejecutar scripts.Configuration Manager clients must be running the client from the 1706 release, or later in order to run scripts.
  • Para utilizar scripts, debe ser miembro del rol de seguridad de Configuration Manager adecuado.To use scripts, you must be a member of the appropriate Configuration Manager security role.
  • Para importar y crear scripts: la cuenta debe tener permisos de tipo Crear para scripts SMS.To import and author scripts - Your account must have Create permissions for SMS Scripts.
  • Para aprobar o denegar scripts: la cuenta debe tener permisos de tipo Aprobar para scripts SMS.To approve or deny scripts - Your account must have Approve permissions for SMS Scripts.
  • Para ejecutar scripts: la cuenta debe tener permisos de tipo Ejecutar script para las colecciones.To run scripts - Your account must have Run Script permissions for Collections.

Para obtener más información sobre los roles de seguridad de Configuration Manager:For more information about Configuration Manager security roles:
Ámbitos de seguridad para ejecutar scriptsSecurity scopes for run scripts
Roles de seguridad para ejecutar scriptsSecurity roles for run scripts
Conceptos básicos de la administración basada en rolesFundamentals of role-based administration.

LimitacionesLimitations

La funcionalidad de ejecución de scripts actualmente admite lo siguiente:Run Scripts currently supports:

  • Lenguajes de scripting: PowerShellScripting languages: PowerShell
  • Tipos de parámetro: entero, cadena y listaParameter types: integer, string, and list.

Advertencia

Tenga en cuenta que, cuando se usan parámetros, se abre un área expuesta para el posible riesgo de ataque por inyección de código de PowerShell.Be aware that when using parameters, it opens a surface area for potential PowerShell injection attack risk. Existen varias formas de mitigar esto y buscar soluciones alternativas, como usar expresiones regulares para validar la entrada de parámetros o usar parámetros predefinidos.There are various ways to mitigate and work around, such as using regular expressions to validate parameter input or using predefined parameters. Un procedimiento recomendado muy habitual consiste en no incluir los secretos en los scripts de PowerShell (contraseñas, etc).Common best practice is not to include secrets in your PowerShell scripts (no passwords, etc.). Más información sobre la seguridad del script de PowerShellLearn more about PowerShell script security

Autores y aprobadores de la funcionalidad de ejecución de scriptsRun Script authors and approvers

La funcionalidad de ejecución de scripts utiliza el concepto de autores de scripts y aprobadores de scripts como roles independientes para implementar y ejecutar un script.Run Scripts uses the concept of script authors and script approvers as separate roles for implementation and execution of a script. La separación de los roles de autor y aprobador permite una importante comprobación del proceso en la eficaz funcionalidad de ejecución de scripts.Having the author and approver roles separated allows an important process check for the powerful tool that Run Scripts is. Hay un rol adicional de ejecutores de scripts que permite la ejecución de scripts, pero no la creación ni la aprobación de scripts.There's an additional script runners role that allows execution of scripts, but not creation or approval of scripts. Vea Crear roles de seguridad para scripts.See Create security roles for scripts.

Control de los roles de scriptsScripts roles control

De forma predeterminada, los usuarios no pueden aprobar un script que hayan creado.By default, users can't approve a script they've authored. Dado que los scripts son eficaces y versátiles, y se pueden implementar en varios dispositivos, podrá separar los roles de la persona que los crea y la persona que los aprueba.Because scripts are powerful, versatile, and potentially deployed to many devices, you can separate the roles between the person that authors the script and the person that approves the script. Esto proporciona un nivel adicional de seguridad frente a la ejecución de un script sin supervisión.These roles give an additional level of security against running a script without oversight. Puede desactivar esta aprobación secundaria para facilitar las pruebas.You're able to turn off secondary approval, for ease of testing.

Aprobación o denegación de un scriptApprove or Deny a script

Los scripts deben aprobarse, mediante el rol de aprobador de scripts, antes de que se pueden ejecutar.Scripts must be approved, by the script approver role, before they can be run. Para aprobar un script:To approve a script:

  1. En la consola de Configuration Manager, haga clic en Biblioteca de software.In the Configuration Manager console, click Software Library.
  2. En el área de trabajo Biblioteca de software, haga clic en Scripts.In the Software Library workspace, click Scripts.
  3. En la lista Script, elija el script que desea aprobar o rechazar y, a continuación, en la pestaña Inicio, en el grupo Script, haga clic en Aprobar o denegar.In the Script list, choose the script you want to approve or deny and then, on the Home tab, in the Script group, click Approve/Deny.
  4. En el cuadro de diálogo Approve or deny script (Aprobar o denegar script), seleccione Aprobar o Denegar el script.In the Approve or deny script dialog box, select Approve, or Deny for the script. Si lo desea, escriba un comentario sobre su decisión.Optionally, enter a comment about your decision. Si se deniega un script, este no se puede ejecutar en los dispositivos cliente.If you deny a script, it can't be run on client devices.
    Scripts: aprobaciónScript - Approval
  5. Complete el asistente.Complete the wizard. En la lista Script, podrá ver el cambio de la columna Estado de la aprobación en función de la acción llevada a cabo.In the Script list, you see the Approval State column change depending on the action you took.

Procedimiento para permitir que los usuarios aprueben sus propios scriptsAllow users to approve their own scripts

Esta aprobación se utiliza principalmente para la fase de pruebas de desarrollo de scripts.This approval is primarily used for the testing phase of script development.

  1. En la consola de Configuration Manager, haga clic en Administración.In the Configuration Manager console, click Administration.
  2. En el área de trabajo Administración , expanda Configuración del sitioy, a continuación, haga clic en Sitios.In the Administration workspace, expand Site Configuration, and then click Sites.
  3. En la lista de sitios, elija el sitio y, a continuación, en la pestaña Inicio del grupo Sitios, haga clic en Configuración de jerarquía.In the list of sites, choose your site and then, on the Home tab, in the Sites group, click Hierarchy Settings.
  4. En la pestaña General del cuadro de diálogo Propiedades de configuración de jerarquía, desactive la casilla Los autores necesitan un aprobador adicional del script.On the General tab of the Hierarchy Settings Properties dialog box, clear the checkbox Script authors require additional script approver.

Importante

Como práctica recomendada, no debe permitir que el autor de un script apruebe sus propios scripts.As a best practice, you shouldn't allow a script author to approve their own scripts. Solo se debe permitir en entornos de laboratorio.It should only be allowed in a lab setting. Piense en el impacto que puede implicar modificar esta configuración en un entorno de producción.Carefully consider the potential impact of changing this setting in a production environment.

Ámbitos de seguridadSecurity scopes

La funcionalidad de ejecución de scripts utiliza ámbitos de seguridad, una característica existente de Configuration Manager, para controlar la ejecución y creación de scripts mediante la asignación de etiquetas que representan grupos de usuarios.Run Scripts uses security scopes, an existing feature of Configuration Manager, to control scripts authoring and execution through assigning tags that represent user groups. Para más información, consulte Configuración de la administración basada en roles de Configuration Manager.For more information on using security scopes, see Configure role-based administration for Configuration Manager.

Crear roles de seguridad para scriptsCreate security roles for scripts

Los tres roles de seguridad usados para ejecutar scripts no se crean de forma predeterminada en Configuration Manager.The three security roles used for running scripts aren't created by default in Configuration Manager. Para crear los ejecutores de scripts, los autores de scripts y los roles aprobadores de scripts, siga los pasos indicados.To create the script runners, script authors, and script approvers roles, follow the outlined steps.

  1. En la consola de Configuration Manager, vaya a Administración >Seguridad >Roles de seguridadIn the Configuration Manager console, go to Administration >Security >Security Roles
  2. Haga clic con el botón derecho en un rol y haga clic en Copiar.Right-click on a role and click Copy. El rol que copie tendrá permisos ya asignados.The role you copy has permissions already assigned. Asegúrese de que solo toma los permisos que le interesan.Make sure you take only the permissions that you want.
  3. Asigne al rol personalizado un nombre y una descripción.Give the custom role a Name and a Description.
  4. Asigne al rol de seguridad los permisos que se describen a continuación.Assign the security role the permissions outlined below.

Permisos de rol de seguridadSecurity Role Permissions

Nombre de rol: Ejecutores de scriptsRole Name: Script Runners

  • Descripción: estos permisos permiten a este rol ejecutar únicamente los scripts creados y aprobados por otros roles.Description: These permissions enable this role to only run scripts that were previously created and approved by other roles.
  • Permisos: asegúrese de que los permisos siguientes están establecidos en .Permissions: Ensure the following are set to Yes.
CategoríaCategory PermisoPermission EstadoState
ColecciónCollection Ejecutar scriptRun Script Yes
SitioSite LecturaRead Yes
Scripts SMSSMS Scripts LecturaRead Yes

Nombre de rol: Autores de scriptsRole Name: Script Authors

  • Descripción: estos permisos permiten a este rol crear scripts, pero no aprobarlos ni ejecutarlos.Description: These permissions enable this role to author scripts, but they can't approve or run them.
  • Permisos: asegúrese de que los permisos siguientes están establecidos.Permissions: Ensure the following permissions are set.
CategoríaCategory PermisoPermission EstadoState
ColecciónCollection Ejecutar scriptRun Script NoNo
SitioSite LecturaRead Yes
Scripts SMSSMS Scripts CrearCreate Yes
Scripts SMSSMS Scripts LecturaRead Yes
Scripts SMSSMS Scripts EliminarDelete Yes
Scripts SMSSMS Scripts ModificarModify Yes

Nombre de rol: Aprobadores de scriptsRole Name: Script Approvers

  • Descripción: estos permisos permiten a este rol aprobar scripts, pero no crearlos ni ejecutarlos.Description: These permissions enable this role to approve scripts, but they can't create or run them.
  • Permisos: asegúrese de que los permisos siguientes están establecidos.Permissions: Ensure the following permissions are set.
CategoríaCategory PermisoPermission EstadoState
ColecciónCollection Ejecutar scriptRun Script NoNo
SitioSite LecturaRead Yes
Scripts SMSSMS Scripts LecturaRead Yes
Scripts SMSSMS Scripts AprobarApprove Yes
Scripts SMSSMS Scripts ModificarModify Yes

Ejemplo de permisos de scripts SMS para el rol de autores de scriptsExample of SMS Scripts permissions for the script authors role

Ejemplo de permisos de scripts SMS para el rol de autores de scripts

Creación de un scriptCreate a script

  1. En la consola de Configuration Manager, haga clic en Biblioteca de software.In the Configuration Manager console, click Software Library.
  2. En el área de trabajo Biblioteca de software, haga clic en Scripts.In the Software Library workspace, click Scripts.
  3. En la pestaña Inicio, en el grupo Crear, haga clic en Crear script.On the Home tab, in the Create group, click Create Script.
  4. En la página Script del Asistente para crear scripts, configure lo siguiente:On the Script page of the Create Script wizard, configure the following settings:
    • Nombre de script: escriba un nombre para el script.Script Name - Enter a name for the script. Aunque puede crear varios scripts con el mismo nombre, esto dificultará la búsqueda del script que necesite en la consola de Configuration Manager.Although you can create multiple scripts with the same name, using duplicate names makes it harder for you to find the script you need in the Configuration Manager console.
    • Lenguaje de script: actualmente, solo se admiten scripts de PowerShell.Script language - Currently, only PowerShell scripts are supported.
    • Importar: se importa un script de PowerShell en la consola.Import - Import a PowerShell script into the console. El script se muestra en el campo Script.The script is displayed in the Script field.
    • Borrar: se quita el script actual del campo Script.Clear - Removes the current script from the Script field.
    • Script: se muestra el script importado actualmente.Script - Displays the currently imported script. Puede editar el script en este campo según sea necesario.You can edit the script in this field as necessary.
  5. Complete el asistente.Complete the wizard. El nuevo script se muestra en la lista Script con el estado En espera de aprobación.The new script is displayed in the Script list with a status of Waiting for approval. Para poder ejecutar este script en los dispositivos cliente, debe aprobarlo.Before you can run this script on client devices, you must approve it.

Importante

Evite la aplicación de scripts al reinicio de un dispositivo o de un agente de Configuration Manageral utilizar la característica Ejecutar scripts.Avoid scripting a device reboot or a restart of the Configuration Manager agent when using the Run Scripts feature. Si lo hace, podría provocar un estado de reinicio continuo.Doing so could lead to a continuous rebooting state. Si es necesario, existen mejoras en la característica de notificación de clientes que permiten reiniciar dispositivos.If needed, there are enhancements to the client notification feature that enable restarting devices. La columna Reinicio pendiente puede ayudar a identificar los dispositivos que necesitan un reinicio.The pending restart column can help identify devices that need a restart.

Parámetros de scriptScript parameters

Al agregar parámetros a un script, dotará de más flexibilidad a su trabajo.Adding parameters to a script provides increased flexibility for your work. Puede incluir hasta 10 parámetros.You can include up to 10 parameters. A continuación, se describe la funcionalidad actual de la característica de ejecución de scripts con parámetros de script para los tipos de datos Cadena y Entero.The following outlines the Run Scripts feature's current capability with script parameters for; String, Integer data types. También hay disponibles listas de valores preestablecidos.Lists of preset values are also available. Si el script tiene tipos de datos no compatibles, recibirá una advertencia.If your script has unsupported data types, you get a warning.

En el cuadro de diálogo Crear script, haga clic en Parámetros de script, bajo Script.In the Create Script dialog, click Script Parameters under Script.

Cada uno de los parámetros de script tiene su propio cuadro de diálogo para agregar más detalles y la validación.Each of your script's parameters has its own dialog for adding further details and validation. Si hay un parámetro predeterminado en el script, se enumerará en la interfaz de usuario del parámetro y podrá configurarlo.If there's a default parameter in the script, it will be enumerated in the parameter UI and you can set it. Configuration Manager no sobrescribirá el valor predeterminado, ya que nunca modificará el script directamente.Configuration Manager won't overwrite the default value since it will never modify the script directly. Puede pensar que en la interfaz de usuario se proporcionan "valores sugeridos rellenados previamente", pero Configuration Manager no proporciona acceso a los valores "predeterminados" en tiempo de ejecución.You can think of this as "pre-populated suggested values" are provided in the UI, but Configuration Manager doesn't provide access to "default" values at run-time. Esto se puede solucionar mediante la edición del script para que tenga los valores predeterminados correctos.This can be worked around by editing the script to have the correct defaults.

Importante

Los valores de parámetro no pueden contener una comilla simple.Parameter values can't contain a single quote.

Hay un problema conocido por el que los valores de parámetro que incluyen o se escriben entre comillas simples no se pasan correctamente al script.There is a known issue where parameter values that include or are enclosed in single quotes don't get passed to the script properly. Al especificar valores de parámetro predeterminados que contienen un espacio dentro de un script, use comillas dobles en su lugar.When specifying default parameter values containing a space within a script, use double quotes instead. Al especificar valores de parámetro predeterminados durante la creación o la ejecución de un Script, no es necesario incluir el valor predeterminado entre comillas simples ni dobles, con independencia de que contenga o no un espacio.When specifying default parameter values during creation or execution of a Script, surrounding the default value in either double or single quotes is not necessary regardless of whether the value contains a space or not.

Validación de parámetrosParameter validation

Cada parámetro de script tiene un cuadro de diálogo Script Parameter Properties (Propiedades de parámetros de script) con el objetivo de agregar validación para ese parámetro.Each parameter in your script has a Script Parameter Properties dialog for you to add validation for that parameter. Después de agregar la validación, debería obtener errores si va a especificar un valor para un parámetro que no cumple su validación.After adding validation, you should get errors if you're entering a value for a parameter that doesn't meet its validation.

Ejemplo: FirstNameExample: FirstName

En este ejemplo, es posible establecer las propiedades del parámetro de cadena FirstName.In this example, you're able to set the properties of the string parameter, FirstName.

Parámetros de scripts: cadena

La sección de validación del cuadro de diálogo Propiedades de parámetros de script contiene los siguientes campos:The validation section of the Script Parameter Properties dialog contains the following fields for your use:

  • Longitud mínima: número mínimo de caracteres del campo FirstName.Minimum Length - minimum number of characters of the FirstName field.
  • Longitud máxima: número máximo de caracteres del campo FirstName.Maximum Length- maximum number of characters of the FirstName field
  • RegEx: abreviatura de expresión regular.RegEx - short for Regular Expression. Para más información sobre el uso de la expresión regular, vea la sección siguiente, Uso de la validación de expresión regular.For more information on using the Regular Expression, see the next section, Using Regular Expression validation.
  • Error personalizado: este campo resulta útil para agregar su propio mensaje de error personalizado que reemplazará a los mensajes de error de validación del sistema.Custom Error - useful for adding your own custom error message that supersedes any system validation error messages.

Uso de la validación de expresión regularUsing Regular Expression validation

Una expresión regular es una forma compacta de programación para comprobar una cadena de caracteres en una validación codificada.A regular expression is a compact form of programming for checking a string of characters against an encoded validation. Por ejemplo, podría comprobar la ausencia de un carácter alfabético en mayúsculas en el campo FirstName colocando [^A-Z] en el campo RegEx.For example, you could check for the absence of a capital alphabetic character in the FirstName field by placing [^A-Z] in the RegEx field.

.NET Framework admite el procesamiento de la expresión regular para este cuadro de diálogo.The regular expression processing for this dialog is supported by the .NET Framework. Para obtener instrucciones sobre el uso de expresiones regulares, consulte Expresiones regulares de .NET y Lenguaje de expresiones regulares.For guidance on using regular expressions, see .NET Regular Expression and Regular Expression Language.

Ejemplos de scriptsScript examples

Estos son un par de ejemplos que ilustran los scripts que recomendamos utilizar con esta funcionalidad.Here are a couple examples that illustrate scripts you might want to use with this capability.

Creación de una nueva carpeta y archivoCreate a new folder and file

Este script crea una carpeta y un archivo dentro de ella según la entrada de nomenclatura.This script creates a new folder and a file within the folder, given your naming input.

Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)

New-Item $FolderName -type directory
New-Item $FileName -type file

Obtención de versión de SOGet OS Version

Este script usa WMI para consultar a la máquina la versión que tiene de SO.This script uses WMI to query the machine for its OS version.

Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption

Edición o copia de scripts de PowerShellEdit or copy PowerShell scripts

(Se introdujo con la versión 1902)(Introduced with version 1902)
Puede editar o copiar un script de PowerShell existente que se usa con la característica Ejecutar scripts.You can Edit or Copy an existing PowerShell script used with the Run Scripts feature. En lugar de volver a crear un script que necesita cambiar, ahora puede editarlo directamente.Instead of recreating a script that you need to change, now directly edit it. Ambas acciones utilizan la misma experiencia de asistente que cuando se crea un nuevo script.Both actions use the same wizard experience as when you create a new script. Cuando edita o copia un script, Configuration Manager no mantiene el estado de aprobación.When you edit or copy a script, Configuration Manager doesn't persist the approval state.

Sugerencia

No edite un script que se esté ejecutando activamente en los clientes,Don't edit a script that's actively running on clients. porque no terminarán de ejecutar el script original y es posible que no obtenga los resultados deseados de estos clientes.They won't finish running the original script, and you may not get the intended results from these clients.

Edición de un scriptEdit a script

  1. Vaya al nodo Scripts en el área de trabajo Biblioteca de software.Go to the Scripts node under the Software Library workspace.
  2. Seleccione el script que quiere editar y, en la cinta, haga clic en Editar.Select the script to edit, then click Edit in the ribbon.
  3. Cambie o vuelva a importar el script en la página Detalles del script.Change or reimport your script in the Script Details page.
  4. Haga clic en Siguiente para ver el Resumen y, luego, en Cerrar, cuando haya terminado de editar.Click Next to view the Summary then Close when you're finished editing.

Copia de un scriptCopy a script

  1. Vaya al nodo Scripts en el área de trabajo Biblioteca de software.Go to the Scripts node under the Software Library workspace.
  2. Seleccione el script que quiere copiar y, en la cinta, haga clic en Editar.Select the script to copy, then click Copy in the ribbon.
  3. Cambie el nombre del script en el campo Nombre del script y realice las modificaciones adicionales que necesite.Rename the script in the Script name field and make any additional edits you may need.
  4. Haga clic en Siguiente para ver el Resumen y, luego, en Cerrar, cuando haya terminado de editar.Click Next to view the Summary then Close when you're finished editing.

Ejecutar un scriptRun a script

Una vez que se ha aprobado un script, podrá ejecutarse en un solo dispositivo o colección.After a script is approved, it can be run against a single device or a collection. Una vez que comienza la ejecución del script, se inicia rápidamente a través de un sistema de alta prioridad cuyo tiempo de espera es de una hora.Once execution of your script begins, it's launched quickly through a high priority system that times-out in one hour. Después, los resultados del script se devuelven utilizando un sistema de mensaje de estado.The results of the script are then returned using a state message system.

Para seleccionar una colección de destinos para el script:To select a collection of targets for your script:

  1. En la consola de Configuration Manager, haga clic en Activos y compatibilidad.In the Configuration Manager console, click Assets and Compliance.
  2. En el área de trabajo Activos y compatibilidad, haga clic en Recopilaciones de dispositivos.In the Assets and Compliance workspace, click Device Collections.
  3. En la lista Recopilaciones de dispositivos, haga clic en la recopilación de dispositivos en la que desea ejecutar el script.In the Device Collections list, click the collection of devices on which you want to run the script.
  4. Seleccione la colección que prefiera y haga clic en Ejecutar script.Select a collection of your choice, click Run Script.
  5. En la página Script del Asistente para ejecutar script, elija un script de la lista.On the Script page of the Run Script wizard, choose a script from the list. Se muestran solo los scripts aprobados.Only approved scripts are shown.
  6. Haga clic en Siguiente y complete el asistente.Click Next, and then complete the wizard.

Importante

Si un script no se ejecuta, por ejemplo, porque un dispositivo de destino se ha desactivado durante un período de tiempo de una hora, debe ejecutarlo de nuevo.If a script does not run, for example because a target device is turned off during the one hour time period, you must run it again.

Ejecución de la máquina objetivoTarget machine execution

El script se ejecuta como cuenta de sistema o de equipo en los clientes objetivo.The script is executed as the system or computer account on the targeted client(s). Esta cuenta tiene un acceso a la red limitado.This account has limited network access. El acceso a sistemas y ubicaciones remotos por parte del script se debe aprovisionar teniendo en cuenta este aspecto.Any access to remote systems and locations by the script must be provisioned accordingly.

Supervisión de scriptsScript monitoring

Una vez iniciada la ejecución de un script en una recopilación de dispositivos, utilice el procedimiento siguiente para supervisar la operación.After you have initiated running a script on a collection of devices, use the following procedure to monitor the operation. Puede supervisar un script en tiempo real mientras se ejecuta y volver después al estado y los resultados de una ejecución determinada de Ejecutar script.You are able to monitor a script in real time as it executes, and later return to the status and results for a given Run Script execution. Los datos de estado del script se limpian como parte de la tarea de mantenimiento Eliminar operaciones cliente antiguas o eliminar el script.Script status data is cleaned up as part of the Delete Aged Client Operations maintenance task or deletion of the script.

Supervisión de scripts: estado de ejecución de scripts

  1. En la consola de Configuration Manager, haga clic en Supervisión.In the Configuration Manager console, click Monitoring.

  2. En el área de trabajo Supervisión, haga clic en Estado de script.In the Monitoring workspace, click Script Status.

  3. En la lista Estado de script aparecen los resultados de cada script ejecutado en los dispositivos cliente.In the Script Status list, you view the results for each script you ran on client devices. Un código de salida de script de 0 suele indicar que el script se ejecutó correctamente.A script exit code of 0 generally indicates that the script ran successfully.

    Monitor de script (script truncado)

Salida del scriptScript output

El cliente devuelve la salida del script con formato JSON mediante la canalización de los resultados del script al cmdlet ConvertTo-Json.Client's return script output using JSON formatting by piping the script's results to the ConvertTo-Json cmdlet. El formato JSON devuelve una salida de script legible de manera uniforme.The JSON format consistently returns readable script output. Para los scripts que no devuelven objetos como salida, el cmdlet ConvertTo-Json convierte el resultado en una cadena simple que el cliente devuelve en lugar de JSON.For scripts that do not return objects as output, the ConvertTo-Json cmdlet converts the output to a simple string that the client returns instead of JSON.

  • Los scripts que obtengan un resultado desconocido o en los que el cliente estaba sin conexión no se mostrarán en los gráficos ni en el conjunto de datos.Scripts that get an unknown result, or where the client was offline, won't show in the charts or data set.

  • Evite devolver una salida de script grande, ya que se trunca en 4 KB.Avoid returning large script output since it's truncated to 4 KB.

  • Convierta un objeto de enumeración en un valor de cadena en los scripts para que se muestren correctamente en formato JSON.Convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.

    Conversión de un objeto de enumeración en un valor de cadena

Puede ver una salida de script detallada sin formato o con formato JSON estructurado.You can view detailed script output in raw or structured JSON format. Este formato permite leer y analizar la salida de manera más sencilla.This formatting makes the output easier to read and analyze. Si el script devuelve texto con formato JSON válido o la salida se puede convertir a JSON mediante el cmdlet ConvertTo-Json de PowerShell, puede ver la salida detallada como Salida JSON o Salida sin formato.If the script returns valid JSON-formatted text or the output can be converted to JSON using the ConvertTo-Json PowerShell cmdlet, then view the detailed output as either JSON Output or Raw Output. En caso contrario, la única opción es Salida de script.Otherwise the only option is Script Output.

Ejemplo: la salida del script se puede convertir a JSON válidoExample: Script output is convertible to valid JSON

Comando: $PSVersionTable.PSVersionCommand: $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  551

Ejemplo: la salida de script no es un archivo JSON válidoExample: Script output isn't valid JSON

Comando: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).CaptionCommand: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption

Microsoft Windows 10 Enterprise

Archivos de registroLog files

  • En el cliente, de forma predeterminada en C:\Windows\CCM\logs:On the client, by default in C:\Windows\CCM\logs:

    • Scripts.logScripts.log
    • CcmMessaging.logCcmMessaging.log
  • En el punto de administración, de forma predeterminada en C:\SMS_CCM\Logs:On the MP, by default in C:\SMS_CCM\Logs:

    • MP_RelayMsgMgr.logMP_RelayMsgMgr.log
  • En el servidor de sitio, de forma predeterminada en C:\Archivos de programa\Configuration Manager\Logs:On the site server, by default in C:\Program Files\Configuration Manager\Logs:

    • SMS_Message_Processing_Engine.logSMS_Message_Processing_Engine.log

Consulte tambiénSee Also