Partager via


New-CMTSStepRunPowerShellScript

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

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

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 Configuration Manager applets de commande à 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[]
Aliases:Conditions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

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

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

-Description

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

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

-Disable

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

Type:SwitchParameter
Aliases:DisableThisStep
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Aliases:PowerShellExecutionPolicy
Accepted values:AllSigned, Undefined, Bypass
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

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

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

-SuccessCode

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

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

-UserPassword

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

Type:SecureString
Aliases:Password
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WorkingDirectory

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

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