New-CMTSStepRunPowerShellScript

在任务序列中创建 “运行 PowerShell 脚本” 步骤。

语法

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

说明

此 cmdlet 创建一个新的 运行 PowerShell 脚本 步骤对象。 然后使用 Add-CMTaskSequenceStep cmdlet 将步骤添加到任务序列。 有关此步骤的详细信息,请参阅 关于任务序列步骤:运行 PowerShell 脚本

注意

从 Configuration Manager 站点驱动器运行 Configuration Manager cmdlet,例如 PS XYZ:\>。 有关详细信息,请参阅 入门

示例

示例 1

此示例首先为 运行 PowerShell 脚本 步骤创建对象。 它指定具有要运行的脚本名称的包。 它将 PowerShell 执行策略设置为最安全的 AllSigned 级别,这要求对脚本进行数字签名。

然后,它获取任务序列对象,并将此新步骤添加到索引 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

参数

-Condition

指定要用于此步骤的条件对象。 若要获取此对象,请使用任务序列条件 cmdlet 之一。 例如 Get-CMTSStepConditionVariable

类型:IResultObject[]
别名:Conditions
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ContinueOnError

添加此参数以启用步骤选项“ 出错时继续”。 启用此选项时,如果步骤失败,任务序列将继续。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Description

为此任务序列步骤指定可选说明。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Disable

添加此参数以禁用此任务序列步骤。

类型:SwitchParameter
别名:DisableThisStep
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DisableWildcardHandling

此参数将通配符视为文本字符值。 不能将其与 ForceWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ExecutionPolicy

为允许在计算机上运行的脚本指定 PowerShell 执行策略。 选择以下策略之一:

  • AllSigned:仅运行由受信任的发布者签名的脚本。

  • Undefined:不定义任何执行策略。

  • Bypass:加载所有配置文件并运行所有脚本。 如果从 Internet 下载未签名的脚本,则 PowerShell 在运行脚本之前不会提示输入权限。

类型:ExecutionPolicyType
别名:PowerShellExecutionPolicy
接受的值:AllSigned, Undefined, Bypass
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ForceWildcardHandling

此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Name

指定此步骤的名称,以便在任务序列中标识它。

类型:String
别名:StepName
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-OutputVariableName

指定自定义任务序列变量的名称。 使用此参数时,该步骤会将命令输出的最后 1000 个字符保存到 变量。

类型:String
别名:Output, OutputVariable
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PackageId

为具有 PowerShell 脚本的包指定包 ID 。 包不需要程序。 一个包可以包含多个脚本。

此值是标准包 ID,例如 XYZ00821

然后使用 ScriptName 参数指定脚本的名称。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Parameter

指定传递给 PowerShell 脚本的参数。 这些参数与命令行上的 PowerShell 脚本参数相同。 提供脚本使用的参数,而不是 PowerShell 命令行的参数。

以下示例包含 有效 参数:

-MyParameter1 MyValue1 -MyParameter2 MyValue2

以下示例包含 无效 参数。 前两项是 PowerShell 命令行参数 (NoLogoExecutionPolicy) 。 脚本不使用这些参数。

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

如果参数值包含特殊字符或空格,请使用单引号 (') 值。 使用双引号 (") 可能会导致任务序列步骤错误地处理 参数。

例如:-Arg1 '%TSVar1%' -Arg2 '%TSVar2%'

还可以将此参数设置为任务序列变量。 例如,如果指定 %MyScriptVariable%,则任务序列运行脚本时,它会将此自定义变量的值添加到 PowerShell 命令行。

类型:String
别名:Parameters
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ScriptName

指定要运行的脚本的名称。 此脚本位于 PackageId 参数指定的包中。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-SourceScript

使用此参数直接指定脚本命令,而不是使用 PackageIdScriptName 参数。 此字符串值是此步骤运行的 PowerShell 命令。

可以将现有脚本文件的内容读入字符串变量,然后将该变量用于此参数。 例如:

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

类型:String
别名:SourceCode
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-SuccessCode

指定一个整数值数组作为脚本中的退出代码,步骤应将其评估为成功。

类型:Int32[]
别名:SuccessCodes
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-TimeoutMins

指定一个整数值,该值表示 Configuration Manager 允许脚本运行的时间。 此值可以是从 1 分钟到 999 分钟。 默认值 15 为分钟。

如果输入的值不允许指定脚本有足够的时间成功完成,则此步骤将失败。 整个任务序列可能会失败,具体取决于步骤或组条件。 如果超时过期,Configuration Manager 将终止 PowerShell 进程。

类型:Int32
别名:TimeoutInMinutes
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UserName

使用此参数以 Windows 用户帐户(而不是本地系统帐户)的形式运行脚本。 指定 Windows 用户帐户的名称。 若要指定帐户密码,请使用 UserPassword 参数。

类型:String
别名:User
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UserPassword

使用此参数指定使用 UserName 指定的帐户的密码。

类型:SecureString
别名:Password
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示在 cmdlet 运行时发生的情况。 cmdlet 不会运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WorkingDirectory

指定启动命令的文件夹。 此路径最多可包含 127 个字符。

类型:String
别名:StartIn
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

None

输出

IResultObject

备注

有关此返回对象及其属性的详细信息,请参阅 SMS_TaskSequence_RunPowerShellScriptAction服务器 WMI 类