New-CMTSStepRunPowerShellScript

Créez l’étape Exécuter le script PowerShell dans une séquence de tâches.

Syntaxe

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

Cette applet de commande crée un objet d’étape Exécuter un script PowerShell . Utilisez ensuite l’applet de commande Add-CMTaskSequenceStep pour ajouter l’étape à une séquence de tâches. Pour plus d’informations sur cette étape, consultez À propos des étapes de séquence de tâches : Exécuter un script PowerShell.

Remarque

Exécutez des applets de commande Configuration Manager à partir du lecteur de site Configuration Manager, par exemple PS XYZ:\>. Pour plus d’informations, consultez Prise en main.

Exemples

Exemple 1

Cet exemple crée d’abord un objet pour l’étape Exécuter le script PowerShell . Il spécifie le package avec le nom du script à exécuter. Il définit la stratégie d’exécution PowerShell sur le niveau AllSigned le plus sécurisé, ce qui nécessite que le script soit signé numériquement.

Il obtient ensuite un objet de séquence de tâches et ajoute cette nouvelle étape à la séquence de tâches à l’index 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

Paramètres

-Condition

Spécifiez un objet de condition à utiliser avec cette étape. Pour obtenir cet objet, utilisez l’une des applets de commande de condition de séquence de tâches. Par exemple, Get-CMTSStepConditionVariable.

Type:IResultObject[]
Alias:Conditions
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Confirm

Une invite de confirmation apparaît avant d’exécuter le cmdlet.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ContinueOnError

Ajoutez ce paramètre pour activer l’option d’étape Continuer en cas d’erreur. Lorsque vous activez cette option, si l’étape échoue, la séquence de tâches continue.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Description

Spécifiez une description facultative pour cette étape de séquence de tâches.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Disable

Ajoutez ce paramètre pour désactiver cette étape de séquence de tâches.

Type:SwitchParameter
Alias:DisableThisStep
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DisableWildcardHandling

Ce paramètre traite les caractères génériques comme des valeurs de caractère littéral. Vous ne pouvez pas la combiner avec ForceWildcardHandling.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ExecutionPolicy

Spécifiez la stratégie d’exécution PowerShell pour les scripts que vous autorisez à exécuter sur l’ordinateur. Choisissez l’une des stratégies suivantes :

  • AllSigned: exécutez uniquement les scripts signés par un éditeur approuvé.

  • Undefined: ne définissez aucune stratégie d’exécution.

  • Bypass: chargez tous les fichiers de configuration et exécutez tous les scripts. Si vous téléchargez un script non signé à partir d’Internet, PowerShell ne demande pas d’autorisation avant d’exécuter le script.

Type:ExecutionPolicyType
Alias:PowerShellExecutionPolicy
Valeurs acceptées:AllSigned, Undefined, Bypass
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ForceWildcardHandling

Ce paramètre traite les caractères génériques et peut entraîner un comportement inattendu (non recommandé). Vous ne pouvez pas la combiner avec DisableWildcardHandling.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Name

Spécifiez un nom pour cette étape afin de l’identifier dans la séquence de tâches.

Type:String
Alias:StepName
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-OutputVariableName

Spécifiez le nom d’une variable de séquence de tâches personnalisée. Lorsque vous utilisez ce paramètre, l’étape enregistre les 1 000 derniers caractères de la sortie de commande dans la variable.

Type:String
Alias:Output, OutputVariable
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-PackageId

Spécifiez l’ID de package pour le package qui contient le script PowerShell. Le package ne nécessite pas de programme. Un package peut contenir plusieurs scripts.

Cette valeur est un ID de package standard, par exemple XYZ00821.

Utilisez ensuite le paramètre ScriptName pour spécifier le nom du script.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Parameter

Spécifiez les paramètres passés au script PowerShell. Ces paramètres sont identiques aux paramètres de script PowerShell sur la ligne de commande. Fournissez les paramètres consommés par le script, et non pour la ligne de commande PowerShell.

L’exemple suivant contient des paramètres valides :

-MyParameter1 MyValue1 -MyParameter2 MyValue2

L’exemple suivant contient des paramètres non valides . Les deux premiers éléments sont des paramètres de ligne de commande PowerShell (NoLogo et ExecutionPolicy). Le script n’utilise pas ces paramètres.

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

Si une valeur de paramètre inclut un caractère spécial ou un espace, utilisez des guillemets simples (') autour de la valeur. L’utilisation de guillemets doubles (") peut entraîner le traitement incorrect du paramètre par l’étape de séquence de tâches.

Par exemple : -Arg1 '%TSVar1%' -Arg2 '%TSVar2%'

Vous pouvez également définir ce paramètre sur une variable de séquence de tâches. Par exemple, si vous spécifiez %MyScriptVariable%, lorsque la séquence de tâches exécute le script, elle ajoute la valeur de cette variable personnalisée à la ligne de commande PowerShell.

Type:String
Alias:Parameters
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ScriptName

Spécifiez le nom du script à exécuter. Ce script se trouve dans le package spécifié par le paramètre PackageId .

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SourceScript

Au lieu d’utiliser les paramètres PackageId et ScriptName , utilisez ce paramètre pour spécifier directement les commandes de script. Cette valeur de chaîne est les commandes PowerShell exécutées par cette étape.

Vous pouvez lire le contenu d’un fichier de script existant dans une variable de chaîne, puis utiliser cette variable pour ce paramètre. Par exemple :

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

Type:String
Alias:SourceCode
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SuccessCode

Spécifiez un tableau de valeurs entières comme codes de sortie à partir du script que l’étape doit évaluer comme une réussite.

Type:Int32[]
Alias:SuccessCodes
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-TimeoutMins

Spécifiez une valeur entière qui représente la durée pendant laquelle Configuration Manager autorise l’exécution du script. Cette valeur peut être comprise entre la 1 minute et les 999 minutes. La valeur par défaut est 15 minutes.

Si vous entrez une valeur qui ne laisse pas suffisamment de temps pour que le script spécifié se termine correctement, cette étape échoue. L’ensemble de la séquence de tâches peut échouer en fonction des conditions d’étape ou de groupe. Si le délai d’expiration expire, Configuration Manager met fin au processus PowerShell.

Type:Int32
Alias:TimeoutInMinutes
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UserName

Utilisez ce paramètre pour exécuter le script en tant que compte d’utilisateur Windows et non comme compte système local. Spécifiez le nom du compte d’utilisateur Windows. Pour spécifier le mot de passe du compte, utilisez le paramètre UserPassword .

Type:String
Alias:User
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UserPassword

Utilisez ce paramètre pour spécifier le mot de passe du compte que vous spécifiez avec UserName.

Type:SecureString
Alias:Password
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WhatIf

Présente ce qui se produit si le cmdlet s’exécute. L’applet de commande ne s’exécute pas.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WorkingDirectory

Spécifiez le dossier dans lequel la commande démarre. Ce chemin peut comporter jusqu’à 127 caractères.

Type:String
Alias:StartIn
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

None

Sorties

IResultObject

Notes

Pour plus d’informations sur cet objet de retour et ses propriétés, consultez SMS_TaskSequence_RunPowerShellScriptAction classe WMI du serveur.