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.