New-CMTSStepRunPowerShellScript

Cree el paso Ejecutar script de PowerShell en una secuencia de tareas.

Syntax

New-CMTSStepRunPowerShellScript
   -Name <String>
   [-SuccessCode <Int32[]>]
   [-Condition <IResultObject[]>]
   [-ContinueOnError]
   [-Description <String>]
   [-Disable]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSStepRunPowerShellScript
   [-ExecutionPolicy <ExecutionPolicyType>]
   -Name <String>
   [-OutputVariableName <String>]
   [-Parameter <String>]
   -SourceScript <String>
   [-SuccessCode <Int32[]>]
   [-TimeoutMins <Int32>]
   [-UserName <String>]
   [-UserPassword <SecureString>]
   [-WorkingDirectory <String>]
   [-Condition <IResultObject[]>]
   [-ContinueOnError]
   [-Description <String>]
   [-Disable]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSStepRunPowerShellScript
   [-ExecutionPolicy <ExecutionPolicyType>]
   -Name <String>
   [-OutputVariableName <String>]
   -PackageId <String>
   [-Parameter <String>]
   -ScriptName <String>
   [-SuccessCode <Int32[]>]
   [-TimeoutMins <Int32>]
   [-UserName <String>]
   [-UserPassword <SecureString>]
   [-WorkingDirectory <String>]
   [-Condition <IResultObject[]>]
   [-ContinueOnError]
   [-Description <String>]
   [-Disable]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Este cmdlet crea un nuevo objeto de paso Ejecutar script de PowerShell . A continuación, use el cmdlet Add-CMTaskSequenceStep para agregar el paso a una secuencia de tareas. Para obtener más información sobre este paso, consulte Acerca de los pasos de secuencia de tareas: Ejecutar script de PowerShell.

Nota:

Ejecute cmdlets de Configuration Manager desde la unidad de sitio Configuration Manager, por ejemploPS XYZ:\>. Para obtener más información, consulte Introducción.

Ejemplos

Ejemplo 1

En este ejemplo se crea primero un objeto para el paso Ejecutar script de PowerShell . Especifica el paquete con el nombre del script que se va a ejecutar. Establece la directiva de ejecución de PowerShell en el nivel AllSigned más seguro, lo que requiere que el script se firme digitalmente.

A continuación, obtiene un objeto de secuencia de tareas y agrega este nuevo paso a la secuencia de tareas en el índice 11.

$step = New-CMTSStepRunPowerShellScript -Name "Run PowerShell Script" -PackageId "XYZ00821" -ScriptName "Add-ContosoBranding.ps1" -ExecutionPolicy AllSigned 

$tsNameOsd = "Default OS deployment"
$tsOsd = Get-CMTaskSequence -Name $tsNameOsd -Fast

$tsOsd | Add-CMTaskSequenceStep -Step $step -InsertStepStartIndex 11

Parámetros

-Condition

Especifique un objeto de condición que se usará con este paso. Para obtener este objeto, use uno de los cmdlets de condición de secuencia de tareas. Por ejemplo, Get-CMTSStepConditionVariable.

Type:IResultObject[]
Aliases:Conditions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Solicitará confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContinueOnError

Agregue este parámetro para habilitar la opción de paso Continuar en caso de error. Al habilitar esta opción, si se produce un error en el paso, la secuencia de tareas continúa.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Especifique una descripción opcional para este paso de secuencia de tareas.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Disable

Agregue este parámetro para deshabilitar este paso de secuencia de tareas.

Type:SwitchParameter
Aliases:DisableThisStep
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableWildcardHandling

Este parámetro trata los caracteres comodín como valores de caracteres literales. No se puede combinar con ForceWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExecutionPolicy

Especifique la directiva de ejecución de PowerShell para los scripts que permite ejecutar en el equipo. Elija una de las directivas siguientes:

  • AllSigned: ejecute solo scripts firmados por un publicador de confianza.

  • Undefined: no defina ninguna directiva de ejecución.

  • Bypass: cargue todos los archivos de configuración y ejecute todos los scripts. Si descarga un script sin firmar desde Internet, PowerShell no solicitará permiso antes de ejecutar el script.

Type:ExecutionPolicyType
Aliases:PowerShellExecutionPolicy
Accepted values:AllSigned, Undefined, Bypass
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForceWildcardHandling

Este parámetro procesa caracteres comodín y puede provocar un comportamiento inesperado (no recomendado). No se puede combinar con DisableWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Especifique un nombre para este paso para identificarlo en la secuencia de tareas.

Type:String
Aliases:StepName
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OutputVariableName

Especifique el nombre de una variable de secuencia de tareas personalizada. Cuando se usa este parámetro, el paso guarda los últimos 1000 caracteres de la salida del comando en la variable.

Type:String
Aliases:Output, OutputVariable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PackageId

Especifique el identificador del paquete que tiene el script de PowerShell. El paquete no requiere un programa. Un paquete puede contener varios scripts.

Este valor es un identificador de paquete estándar, por ejemplo XYZ00821.

A continuación, use el parámetro ScriptName para especificar el nombre del script.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Parameter

Especifique los parámetros pasados al script de PowerShell. Estos parámetros son los mismos que los parámetros de script de PowerShell en la línea de comandos. Proporcione los parámetros consumidos por el script, no para la línea de comandos de PowerShell.

El ejemplo siguiente contiene parámetros válidos :

-MyParameter1 MyValue1 -MyParameter2 MyValue2

El ejemplo siguiente contiene parámetros no válidos . Los dos primeros elementos son parámetros de línea de comandos de PowerShell (NoLogo y ExecutionPolicy). El script no consume estos parámetros.

-NoLogo -ExecutionPolicy Unrestricted -File MyScript.ps1 -MyParameter1 MyValue1 -MyParameter2 MyValue2

Si un valor de parámetro incluye un carácter especial o un espacio, use comillas simples (') alrededor del valor. El uso de comillas dobles (") puede hacer que el paso de secuencia de tareas procese incorrectamente el parámetro.

Por ejemplo: -Arg1 '%TSVar1%' -Arg2 '%TSVar2%'

También puede establecer este parámetro en una variable de secuencia de tareas. Por ejemplo, si especifica %MyScriptVariable%, cuando la secuencia de tareas ejecuta el script, agrega el valor de esta variable personalizada a la línea de comandos de PowerShell.

Type:String
Aliases:Parameters
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptName

Especifique el nombre del script que se va a ejecutar. Este script está en el paquete especificado por el parámetro PackageId .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SourceScript

En lugar de usar los parámetros PackageId y ScriptName , use este parámetro para especificar directamente los comandos de script. Este valor de cadena son los comandos de PowerShell que ejecuta este paso.

Puede leer el contenido de un archivo de script existente en una variable de cadena y, a continuación, usar esa variable para este parámetro. Por ejemplo:

$script = [IO.File]::ReadAllText( "C:\temp\script.ps1" )

Type:String
Aliases:SourceCode
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SuccessCode

Especifique una matriz de valores enteros como códigos de salida del script que el paso debe evaluar como correcto.

Type:Int32[]
Aliases:SuccessCodes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutMins

Especifique un valor entero que represente cuánto tiempo Configuration Manager permite ejecutar el script. Este valor puede ser de 1 minutos a 999 minutos. El valor predeterminado es 15 minutos.

Si escribe un valor que no permite tiempo suficiente para que el script especificado se complete correctamente, se produce un error en este paso. La secuencia de tareas completa podría producir un error en función de las condiciones de paso o grupo. Si el tiempo de espera expira, Configuration Manager finaliza el proceso de PowerShell.

Type:Int32
Aliases:TimeoutInMinutes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserName

Use este parámetro para ejecutar el script como una cuenta de usuario de Windows y no como la cuenta del sistema local. Especifique el nombre de la cuenta de usuario de Windows. Para especificar la contraseña de la cuenta, use el parámetro UserPassword .

Type:String
Aliases:User
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserPassword

Use este parámetro para especificar la contraseña de la cuenta que especifique con UserName.

Type:SecureString
Aliases:Password
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Muestra lo que ocurriría si se ejecuta el cmdlet. El cmdlet no se ejecuta.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WorkingDirectory

Especifique la carpeta en la que se inicia el comando. Esta ruta de acceso puede tener hasta 127 caracteres.

Type:String
Aliases:StartIn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

Salidas

IResultObject

Notas

Para obtener más información sobre este objeto devuelto y sus propiedades, vea SMS_TaskSequence_RunPowerShellScriptAction clase WMI de servidor.