共用方式為


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

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

類型: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:載入所有組態檔並執行所有腳本。 如果您從因特網下載未簽署的腳本,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 腳本之套件的 套件識別 碼。 套件不需要程式。 一個套件可以包含多個腳本。

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

然後使用 ScriptName 參數來指定文稿的名稱。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元: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 命令行。

類型: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 minutes。

如果您輸入的值不允許足夠的時間讓指定的腳本順利完成,則此步驟會失敗。 視步驟或群組條件而定,整個工作順序可能會失敗。 如果逾時到期,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 類別