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 命令行参数 (NoLogo 和 ExecutionPolicy) 。 脚本不使用这些参数。
-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
使用此参数直接指定脚本命令,而不是使用 PackageId 和 ScriptName 参数。 此字符串值是此步骤运行的 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 类。