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-Websitelaufwerk aus, z. PS XYZ:\>B. . 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.

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

-Confirm

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

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

-ContinueOnError

Fügen Sie diesen Parameter hinzu, um die Schrittoption Bei Fehler fortfahren zu aktivieren. Wenn Sie diese Option aktivieren und der Schritt fehlschlägt, wird die Tasksequenz fortgesetzt.

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

-Description

Geben Sie eine optionale Beschreibung für diesen Tasksequenzschritt an.

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

-Disable

Fügen Sie diesen Parameter hinzu, um diesen Tasksequenzschritt zu deaktivieren.

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

-DisableWildcardHandling

Dieser Parameter behandelt Wildcardzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandling kombinieren.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

Dieser Parameter verarbeitet Wildcardzeichen und kann zu unerwartetem Verhalten führen (nicht empfohlen). Sie können es nicht mit DisableWildcardHandling kombinieren.

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

-Name

Geben Sie einen Namen für diesen Schritt an, um ihn in der Tasksequenz zu identifizieren.

Type:String
Aliases:StepName
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

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

-PackageId

Geben Sie die Paket-ID für das Paket an, das über das PowerShell-Skript verfügt. Für das Paket ist kein Programm erforderlich. 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.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

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

-ScriptName

Geben Sie den Namen des auszuführenden Skripts an. Dieses Skript befindet sich in dem paket, das durch den PackageId-Parameter angegeben wird.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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. Beispiel:

$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

Geben Sie ein Array ganzzahliger Werte als Exitcodes aus dem Skript an, die der Schritt als erfolgreich bewerten soll.

Type:Int32[]
Aliases:SuccessCodes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32
Aliases:TimeoutInMinutes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

-UserPassword

Verwenden Sie diesen Parameter, um das Kennwort des Kontos anzugeben, das Sie mit UserName angeben.

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

-WhatIf

Zeigt, was passieren würde, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

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

-WorkingDirectory

Geben Sie den Ordner an, in dem der Befehl gestartet wird. Dieser Pfad kann bis zu 127 Zeichen umfassen.

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

Eingaben

None

Ausgaben

IResultObject

Hinweise

Weitere Informationen zu diesem Rückgabeobjekt und seinen Eigenschaften finden Sie unter SMS_TaskSequence_RunPowerShellScriptAction WMI-Serverklasse.