New-CMTSStepRunPowerShellScript
Erstellen Sie den Schritt PowerShell-Skript ausführen in einer Tasksequenz.
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>]
Beschreibung
Dieses Cmdlet erstellt ein neues Schrittobjekt "PowerShell-Skript ausführen ". Verwenden Sie dann das Cmdlet Add-CMTaskSequenceStep , um den Schritt einer Tasksequenz hinzuzufügen. Weitere Informationen zu diesem Schritt finden Sie unter Informationen zu Tasksequenzschritten: Ausführen von PowerShell-Skripts.
Hinweis
Führen Sie Configuration Manager-Cmdlets auf dem Configuration Manager-Standortlaufwerk aus, z. B PS XYZ:\>
. . Weitere Informationen finden Sie unter Erste Schritte.
Beispiele
Beispiel 1
In diesem Beispiel wird zunächst ein -Objekt für den Schritt PowerShell-Skript ausführen erstellt. Es gibt das Paket mit dem Namen des auszuführenden Skripts an. Es legt die PowerShell-Ausführungsrichtlinie auf die sicherste AllSigned-Ebene fest, die erfordert, dass das Skript digital signiert ist.
Anschließend ruft sie ein Tasksequenzobjekt ab und fügt diesen neuen Schritt der Tasksequenz am Index 11 hinzu.
$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
Parameter
-Condition
Geben Sie ein Bedingungsobjekt an, das mit diesem Schritt verwendet werden soll. Verwenden Sie zum Abrufen dieses Objekts eines der Tasksequenzbedingungs-Cmdlets. Beispiel: Get-CMTSStepConditionVariable.
Typ: | IResultObject[] |
Aliase: | Conditions |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ContinueOnError
Fügen Sie diesen Parameter hinzu, um die Schrittoption Bei Fehler fortsetzen zu aktivieren. Wenn Sie diese Option aktivieren und der Schritt fehlschlägt, wird die Tasksequenz fortgesetzt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Description
Geben Sie eine optionale Beschreibung für diesen Tasksequenzschritt an.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Disable
Fügen Sie diesen Parameter hinzu, um diesen Tasksequenzschritt zu deaktivieren.
Typ: | SwitchParameter |
Aliase: | DisableThisStep |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-DisableWildcardHandling
Dieser Parameter behandelt Wildcardzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandling kombinieren.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ExecutionPolicy
Geben Sie die PowerShell-Ausführungsrichtlinie für die Skripts an, die Sie auf dem Computer ausführen lassen. Wählen Sie eine der folgenden Richtlinien aus:
AllSigned
: Führen Sie nur Skripts aus, die von einem vertrauenswürdigen Herausgeber signiert wurden.Undefined
: Definieren Sie keine Ausführungsrichtlinie.Bypass
: Laden Sie alle Konfigurationsdateien, und führen Sie alle Skripts aus. Wenn Sie ein nicht signiertes Skript aus dem Internet herunterladen, fordert PowerShell vor dem Ausführen des Skripts nicht zur Berechtigung auf.
Typ: | ExecutionPolicyType |
Aliase: | PowerShellExecutionPolicy |
Zulässige Werte: | AllSigned, Undefined, Bypass |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ForceWildcardHandling
Dieser Parameter verarbeitet Wildcardzeichen und kann zu unerwartetem Verhalten führen (nicht empfohlen). Sie können es nicht mit DisableWildcardHandling kombinieren.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Geben Sie einen Namen für diesen Schritt an, um ihn in der Tasksequenz zu identifizieren.
Typ: | String |
Aliase: | StepName |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-OutputVariableName
Geben Sie den Namen einer benutzerdefinierten Tasksequenzvariable an. Wenn Sie diesen Parameter verwenden, speichert der Schritt die letzten 1000 Zeichen der Befehlsausgabe in der Variablen.
Typ: | String |
Aliase: | Output, OutputVariable |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PackageId
Geben Sie die Paket-ID für das Paket an, das über das PowerShell-Skript verfügt. Das Paket erfordert kein Programm. Ein Paket kann mehrere Skripts enthalten.
Dieser Wert ist eine Standardpaket-ID, z. B XYZ00821
. .
Verwenden Sie dann den ScriptName-Parameter , um den Namen des Skripts anzugeben.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Parameter
Geben Sie die Parameter an, die an das PowerShell-Skript übergeben werden. Diese Parameter sind identisch mit den PowerShell-Skriptparametern in der Befehlszeile. Geben Sie parameter an, die vom Skript verwendet werden, nicht für die PowerShell-Befehlszeile.
Das folgende Beispiel enthält gültige Parameter:
-MyParameter1 MyValue1 -MyParameter2 MyValue2
Das folgende Beispiel enthält ungültige Parameter. Die ersten beiden Elemente sind PowerShell-Befehlszeilenparameter (NoLogo und ExecutionPolicy). Das Skript verwendet diese Parameter nicht.
-NoLogo -ExecutionPolicy Unrestricted -File MyScript.ps1 -MyParameter1 MyValue1 -MyParameter2 MyValue2
Wenn ein Parameterwert ein Sonderzeichen oder ein Leerzeichen enthält, verwenden Sie einfache Anführungszeichen ('
) um den Wert. Die Verwendung doppelter Anführungszeichen ("
) kann dazu führen, dass der Tasksequenzschritt den Parameter falsch verarbeitet.
Beispiel: -Arg1 '%TSVar1%' -Arg2 '%TSVar2%'
Sie können diesen Parameter auch auf eine Tasksequenzvariable festlegen. Wenn Sie beispielsweise angeben %MyScriptVariable%
, wenn die Tasksequenz das Skript ausführt, wird der Wert dieser benutzerdefinierten Variablen zur PowerShell-Befehlszeile hinzugefügt.
Typ: | String |
Aliase: | Parameters |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ScriptName
Geben Sie den Namen des auszuführenden Skripts an. Dieses Skript befindet sich im Paket, das durch den PackageId-Parameter angegeben wird.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SourceScript
Verwenden Sie diesen Parameter, um die Skriptbefehle direkt anzugeben, anstatt die Parameter PackageId und ScriptName zu verwenden. Dieser Zeichenfolgenwert ist die PowerShell-Befehle, die in diesem Schritt ausgeführt werden.
Sie können den Inhalt einer vorhandenen Skriptdatei in eine Zeichenfolgenvariable lesen und diese Variable dann für diesen Parameter verwenden. Zum Beispiel:
$script = [IO.File]::ReadAllText( "C:\temp\script.ps1" )
Typ: | String |
Aliase: | SourceCode |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SuccessCode
Geben Sie ein Array ganzzahliger Werte als Exitcodes aus dem Skript an, die der Schritt als erfolgreich bewerten soll.
Typ: | Int32[] |
Aliase: | SuccessCodes |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-TimeoutMins
Geben Sie einen ganzzahligen Wert an, der angibt, wie lange Configuration Manager die Ausführung des Skripts zulässt. Dieser Wert kann zwischen 1
Minuten und Minuten angegeben 999
werden. Der Standardwert ist 15
Minuten.
Wenn Sie einen Wert eingeben, der nicht genügend Zeit für den erfolgreichen Abschluss des angegebenen Skripts zulässt, schlägt dieser Schritt fehl. Die gesamte Tasksequenz kann je nach Schritt- oder Gruppenbedingungen fehlschlagen. Wenn das Timeout abläuft, beendet Configuration Manager den PowerShell-Prozess.
Typ: | Int32 |
Aliase: | TimeoutInMinutes |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-UserName
Verwenden Sie diesen Parameter, um das Skript als Windows-Benutzerkonto und nicht als lokales Systemkonto auszuführen. Geben Sie den Namen des Windows-Benutzerkontos an. Verwenden Sie den Parameter UserPassword , um das Kontokennwort anzugeben.
Typ: | String |
Aliase: | User |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-UserPassword
Verwenden Sie diesen Parameter, um das Kennwort des Kontos anzugeben, das Sie mit UserName angeben.
Typ: | SecureString |
Aliase: | Password |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passieren würde, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WorkingDirectory
Geben Sie den Ordner an, in dem der Befehl gestartet wird. Dieser Pfad kann bis zu 127 Zeichen umfassen.
Typ: | String |
Aliase: | StartIn |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Ausgaben
IResultObject
Hinweise
Weitere Informationen zu diesem Rückgabeobjekt und seinen Eigenschaften finden Sie unter SMS_TaskSequence_RunPowerShellScriptAction WMI-Serverklasse.