次の方法で共有


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

説明

このコマンドレットは、 新しい PowerShell スクリプトの実行 ステップ オブジェクトを作成します。 次に、 Add-CMTaskSequenceStep コマンドレットを使用して、タスク シーケンスにステップを追加します。 この手順の詳細については、「 タスク シーケンスの手順について: PowerShell スクリプトを実行する」を参照してください。

注:

PS XYZ:\>など、Configuration Manager サイト ドライブから Configuration Manager コマンドレットを実行します。 詳細については、「作業の 開始」を参照してください。

例 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

この手順で使用する条件オブジェクトを指定します。 このオブジェクトを取得するには、タスク シーケンス条件コマンドレットのいずれかを使用します。 たとえば、 Get-CMTSStepConditionVariable です

型:IResultObject[]
Aliases:Conditions
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットを実行する前に確認メッセージを表示します。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ContinueOnError

このパラメーターを追加して、ステップ オプション [ エラー時に続行] を有効にします。 このオプションを有効にすると、ステップが失敗した場合、タスク シーケンスは続行されます。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Description

このタスク シーケンス ステップの説明 (省略可能) を指定します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Disable

このタスク シーケンス ステップを無効にするには、このパラメーターを追加します。

型:SwitchParameter
Aliases:DisableThisStep
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DisableWildcardHandling

このパラメーターは、ワイルドカード文字をリテラル文字の値として扱います。 ForceWildcardHandling と組み合わせることはできません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ExecutionPolicy

コンピューターでの実行を許可するスクリプトの PowerShell 実行ポリシーを指定します。 次のいずれかのポリシーを選択します。

  • AllSigned: 信頼された発行元によって署名されたスクリプトのみを実行します。

  • Undefined: 実行ポリシーを定義しないでください。

  • Bypass: すべての構成ファイルを読み込み、すべてのスクリプトを実行します。 署名されていないスクリプトをインターネットからダウンロードした場合、PowerShell はスクリプトを実行する前にアクセス許可を求められません。

型:ExecutionPolicyType
Aliases:PowerShellExecutionPolicy
指定可能な値:AllSigned, Undefined, Bypass
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ForceWildcardHandling

このパラメーターはワイルドカード文字を処理し、予期しない動作が発生する可能性があります (推奨されません)。 DisableWildcardHandling と組み合わせることはできません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Name

この手順の名前を指定して、タスク シーケンスで識別します。

型:String
Aliases:StepName
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-OutputVariableName

カスタム タスク シーケンス変数の名前を指定します。 このパラメーターを使用すると、コマンド出力の最後の 1,000 文字が変数に保存されます。

型:String
Aliases:Output, OutputVariable
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PackageId

PowerShell スクリプトを持つパッケージのパッケージ ID を 指定します。 パッケージにはプログラムは必要ありません。 1 つのパッケージに複数のスクリプトを含めることができます。

この値は、 XYZ00821などの標準パッケージ ID です。

次に、 ScriptName パラメーターを使用してスクリプトの名前を指定します。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Parameter

PowerShell スクリプトに渡されるパラメーターを指定します。 これらのパラメーターは、コマンド ラインの PowerShell スクリプト パラメーターと同じです。 PowerShell コマンド ラインではなく、スクリプトによって使用されるパラメーターを指定します。

次の例には 、有効な パラメーターが含まれています。

-MyParameter1 MyValue1 -MyParameter2 MyValue2

次の例には 、無効な パラメーターが含まれています。 最初の 2 つの項目は、PowerShell コマンド ライン パラメーター (NoLogoExecutionPolicy) です。 スクリプトでは、これらのパラメーターは使用されません。

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

パラメーター値に特殊文字またはスペースが含まれている場合は、値の周囲に単一引用符 (') を使用します。 二重引用符 (") を使用すると、タスク シーケンス ステップでパラメーターが誤って処理される可能性があります。

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

このパラメーターをタスク シーケンス変数に設定することもできます。 たとえば、 %MyScriptVariable%を指定すると、タスク シーケンスでスクリプトが実行されるときに、このカスタム変数の値が PowerShell コマンド ラインに追加されます。

型:String
Aliases:Parameters
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ScriptName

実行するスクリプトの名前を指定します。 このスクリプトは、 PackageId パラメーターで指定されたパッケージ内にあります。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SourceScript

PackageId パラメーターと ScriptName パラメーターを使用する代わりに、このパラメーターを使用してスクリプト コマンドを直接指定します。 この文字列値は、この手順で実行される PowerShell コマンドです。

既存のスクリプト ファイルの内容を文字列変数に読み取り、その変数をこのパラメーターに使用できます。 例:

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

型:String
Aliases:SourceCode
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SuccessCode

ステップが成功と評価するスクリプトの終了コードとして整数値の配列を指定します。

型:Int32[]
Aliases:SuccessCodes
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TimeoutMins

Configuration Manager がスクリプトの実行を許可する期間を表す整数値を指定します。 この値は、 1 分から 999 分までです。 既定値は 15 分です。

指定したスクリプトが正常に完了するのに十分な時間を許可しない値を入力すると、この手順は失敗します。 ステップまたはグループの条件によっては、タスク シーケンス全体が失敗する可能性があります。 タイムアウトが切れた場合、Configuration Manager は PowerShell プロセスを終了します。

型:Int32
Aliases:TimeoutInMinutes
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UserName

このパラメーターを使用して、ローカル システム アカウントではなく Windows ユーザー アカウントとしてスクリプトを実行します。 Windows ユーザー アカウントの名前を指定します。 アカウント パスワードを指定するには、 UserPassword パラメーターを使用します。

型:String
Aliases:User
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UserPassword

UserName で指定するアカウントのパスワードを指定するには、このパラメーターを使用します。

型:SecureString
Aliases:Password
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットが実行されるとどうなるかを示します。 コマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WorkingDirectory

コマンドを開始するフォルダーを指定します。 このパスは最大 127 文字です。

型:String
Aliases:StartIn
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

出力

IResultObject

メモ

この戻りオブジェクトとそのプロパティの詳細については、「 サーバー WMI クラスSMS_TaskSequence_RunPowerShellScriptAction」を参照してください。