New-CMTSStepRunPowerShellScript

在工作順序中建立執行 PowerShell 腳本 步驟。

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

此 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

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

-Confirm

執行 Cmdlet 之前提示您確認。

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

-ContinueOnError

新增此參數以啟用 [ 發生錯誤時繼續] 步驟選項。 當您啟用此選項時,如果步驟失敗,工作順序會繼續。

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

-Description

指定此工作順序步驟的選擇性描述。

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

-Disable

新增此參數以停用此工作順序步驟。

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

-DisableWildcardHandling

此參數會將萬用字元視為常值字元值。 您無法將其與 ForceWildcardHandling結合。

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

-ExecutionPolicy

針對您允許在電腦上執行的腳本,指定 PowerShell 執行原則。 選擇下列其中一個原則:

  • AllSigned:僅執行受信任發行者簽署的腳本。

  • Undefined:請勿定義任何執行原則。

  • Bypass:載入所有組態檔並執行所有腳本。 如果您從網際網路下載未簽署的腳本,PowerShell 在執行腳本之前不會提示您提供許可權。

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

此參數會處理萬用字元,並可能導致非預期的行為 (不建議) 。 您無法將其與 DisableWildcardHandling結合。

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

-Name

指定此步驟的名稱,以在工作順序中識別它。

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

-OutputVariableName

指定自訂工作順序變數的名稱。 當您使用此參數時,步驟會將命令輸出的最後 1000 個字元儲存至變數。

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

-PackageId

指定具有 PowerShell 腳本之套件的 套件標識 符。 套件不需要程式。 一個套件可以包含多個腳本。

此值是標準套件識別碼,例如 XYZ00821

然後使用 ScriptName 參數來指定腳本的名稱。

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

-Parameter

指定傳遞至 PowerShell 腳本的參數。 這些參數與命令列上的 PowerShell 腳本參數相同。 提供腳本所取用的參數,而不是 PowerShell 命令列的參數。

下列範例包含 有效的 參數:

-MyParameter1 MyValue1 -MyParameter2 MyValue2

下列範例包含 無效 的參數。 前兩個專案是 (NoLogoExecutionPolicy) 的 PowerShell 命令列參數。 腳本不會取用這些參數。

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

如果參數值包含特殊字元或空格,請在值周圍使用單引號 (') 。 使用雙引號 (") 可能會導致工作順序步驟不正確地處理 參數。

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

您也可以將此參數設定為工作順序變數。 例如,如果您指定 %MyScriptVariable% ,當工作循序執行腳本時,它會將這個自訂變數的值新增至 PowerShell 命令列。

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

-ScriptName

指定要執行的腳本名稱。 此腳本位於 PackageId 參數所指定的封裝中。

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

-SourceScript

請使用此參數直接指定指令碼命令,而不是使用 PackageIdScriptName 參數。 此字串值是此步驟執行的 PowerShell 命令。

您可以將現有腳本檔案的內容讀入字串變數,然後將該變數用於此參數。 例如:

$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

指定整數值的陣列作為腳本的結束代碼,步驟應評估為成功。

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

-TimeoutMins

指定整數值,表示Configuration Manager允許腳本執行的時間長度。 這個值可以是 1 分鐘到 999 分鐘。 預設值為 15 minutes。

如果您輸入的值不允許足夠的時間讓指定的腳本順利完成,則此步驟會失敗。 視步驟或群組條件而定,整個工作順序可能會失敗。 如果逾時過期,Configuration Manager終止 PowerShell 程式。

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

-UserName

使用此參數以 Windows 使用者帳戶而不是本機系統帳戶執行腳本。 指定 Windows 使用者帳戶的名稱。 若要指定帳戶密碼,請使用 UserPassword 參數。

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

-UserPassword

使用此參數來指定您使用 UserName指定之帳戶的密碼。

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

-WhatIf

顯示執行 Cmdlet 時會發生什麼情況。 Cmdlet 不會執行。

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

-WorkingDirectory

指定命令啟動所在的資料夾。 此路徑最多可以有 127 個字元。

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

輸入

None

輸出

IResultObject

備註

如需這個傳回物件及其屬性的詳細資訊,請 參閱SMS_TaskSequence_RunPowerShellScriptAction伺服器 WMI 類別