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: System Center Configuration Manager (Rama actual)Applies to: System Center Configuration Manager (Current Branch)

System Center Configuration Manager tiene una funcionalidad integrada para ejecutar scripts de Powershell.System Center Configuration Manager has an integrated ability to run Powershell scripts. PowerShell tiene la ventaja de crear scripts automatizados y sofisticados que entienden y comparten una gran comunidad de usuarios.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.

Sugerencia

Esta característica se introdujo por primera vez en la versión 1706 como una característica de versión preliminar.This feature was first introduced in version 1706 as a pre-release feature. A partir de la versión 1802, ya no es una característica de versión preliminar.Beginning with version 1802, this feature is no longer a pre-release feature.

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 System Center Configuration Manager, puede usar la funcionalidad Ejecutar scripts para hacer lo siguiente:With this integration in System Center Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Crear y editar scripts para usarlos con System Center Configuration Manager.Create and edit scripts for use with System Center 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

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

(Se introdujo con la versión 1710)(Introduced with version 1710)
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 obtener más información, consulte Configuración de la administración basada en roles de System Center Configuration Manager.For more information on using security scopes, see Configure role-based administration for System Center 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 puede 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 están establecidos los permisos siguientes.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 puede 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 están establecidos los permisos siguientes.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, a partir de la versión 1710 de Configuration Manager.If needed, there are enhancements to the client notification feature that enable restarting devices, starting in Configuration Manager version 1710. 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

(Se introdujo con la versión 1710)(Introduced with version 1710)
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 entorno 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 un apóstrofo.Parameter values can't contain an apostrophe.
Hay un problema conocido en Configuration Manager versión 1802 donde los parámetros con espacios no se pasan correctamente al script.There is a known issue in Configuration Manager version 1802 where parameters with spaces don't get passed to the script properly. Si se usa un espacio en el parámetro, solo se pasa al script el primer elemento del parámetro, pero no lo que sigue al espacio.If a space is used in the parameter, only the first item in the parameter is passed to the script and everything after the space is not passed. Los administradores pueden crear scripts de solución alternativa sustituyendo los espacios por caracteres alternativos y convertirlos, o con otros métodos.Admins can script around this by substituting alternate characters for spaces and converting them, or with other methods.

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, vea 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.

Editar 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 desea editar y, a continuación, haga clic en Editar en la cinta de opciones.Select the script to edit, then click Edit in the ribbon.
  3. Cambiar o volver a importar el script en la página de detalles del script .Change or reimport your script in the Script Details page.
  4. Haga clic en siguiente para ver el Resumen y, a continuación, cierre 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 desea copiar y, a continuación, haga clic en copiar en la cinta de opciones.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, a continuación, cierre 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. A partir de la versión 1710, puede supervisar un script en tiempo real en cuanto se ejecuta, así como volver a un informe de una ejecución determinada de la funcionalidad Ejecutar scripts.Beginning with version 1710, you're both able to monitor a script in real time as it executes, and you can also return to a report 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.

    • A partir de Configuration Manager 1802, la salida del script se trunca en 4 KB para permitir una mejor experiencia de visualización.Beginning in Configuration Manager 1802, script output is truncated to 4 KB to allow for better display experience.

    Monitor de script (script truncado)

Salida del script en 1810Script output in 1810

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 válido con formato JSON, podrá ver la salida detallada como salida JSON o salida sin formato.If the script returns valid JSON-formatted text, 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 de script es un archivo JSON válidoExample: Script output is 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
  • Los clientes de 1810 devuelven resultados inferiores a 80 KB al sitio a través de un canal de comunicación rápido.1810 clients return output less than 80 KB to the site over a fast communication channel. Este cambio aumenta el rendimiento de la visualización de resultados del script o la consulta.This change increases the performance of viewing script or query output.

    • Si el resultado del script o la consulta es mayor que 80 KB, el cliente envía los datos a través de un mensaje de estado.If the script or query output is greater than 80 KB, the client sends the data via a state message.
    • Los clientes anteriores a 1802 siguen utilizando los mensajes de estado.Pre-1802 clients continue to use state messages.

Salida del script anterior a 1810Script output pre-1810

  • A partir de Configuration Manager versión 1802, la salida del script realiza la devolución con el formato JSON.Starting in Configuration Manager version 1802, script output returns using JSON formatting. Este formato devuelve de manera uniforme una salida de script legible.This format consistently returns a readable script output.

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

  • Algunas funciones con el formato de salida de script no están disponibles cuando se ejecuta Configuration Manager versión 1802 o posterior con una versión de nivel inferior del cliente.Some functionality with script output formatting isn't available when running Configuration Manager version 1802 or later with a down-level version of the client.

    • Si tiene un cliente de Configuration Manager anterior a la versión 1802, obtendrá una cadena de salida.When you have a pre-1802 Configuration Manager client, you get a string output.
    • Para clientes de Configuration Manager con versión 1802 y versiones posteriores, se obtiene el formato JSON.For Configuration Manager client version 1802 and above, you get JSON formatting.
      • Por ejemplo, podría obtener resultados que indican TEXTO en una versión de cliente y "TEXTO" (incluido entre comillas dobles) en otra versión, y se colocarán en el gráfico como dos categorías diferentes.For example, you might get results that say TEXT on one client version and "TEXT" (the output is surrounded in double quotes) on other version, which will be put in chart as two different categories.
      • Si tiene que solucionar este comportamiento, considere la posibilidad de ejecutar un script en dos colecciones diferentes;If you need to work around this behavior, consider running script against two different collections. Uno con clientes anteriores a la versión 1802 y otro con clientes de la versión 1802 y posteriores.One with pre-1802 clients and another with 1802 and higher clients. O, si lo prefiere, puede convertir un objeto de enumeración en un valor de cadena en los scripts para que se muestren correctamente en formato JSON.Or, you can convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.
  • 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

Archivos de registroLog files

A partir de la versión 1810, se ha agregado un registro adicional para la resolución de problemas.Starting in version 1810, additional logging was added for troubleshooting.

  • 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

Véase tambiénSee Also