Partager via


Set-ExecutionPolicy

Modifie la préférence utilisateur de la stratégie d'exécution Windows PowerShell.

Syntaxe

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirmer] [-WhatIf] [<CommonParameters>]

Description

L'applet de commande Set-ExecutionPolicy modifie la préférence utilisateur de la stratégie d'exécution Windows PowerShell.

Pour exécuter cette commande dans Windows Vista, Windows Server 2008 et les versions ultérieures de Windows, vous devez démarrer Windows PowerShell avec l'option « Exécuter en tant qu'administrateur », même si vous êtes membre du groupe Administrateurs de l'ordinateur.

La stratégie d'exécution fait partie de la stratégie de sécurité de Windows PowerShell. Elle détermine si vous pouvez charger des fichiers de configuration (y compris votre profil Windows PowerShell) ou exécuter des scripts et identifie, le cas échéant, les scripts dont l'exécution nécessite qu'ils soient signés numériquement.

Pour plus d'informations, consultez about_Execution_Policies.

Paramètres

-ExecutionPolicy <ExecutionPolicy>

Spécifie une nouvelle stratégie d'exécution pour l'interpréteur de commandes. Le nom de paramètre (« Name ») est facultatif.

Les valeurs valides sont :

-- Restricted : ne charge pas de fichiers de configuration ou n'exécute pas de scripts. « Restricted » est la valeur par défaut.

-- AllSigned : requiert la signature numérique par un éditeur approuvé de tous les scripts et fichiers de configuration, y compris les scripts que vous écrivez sur l'ordinateur local.

-- RemoteSigned : requiert la signature numérique par un éditeur approuvé de tous les scripts et fichiers de configuration téléchargés à partir d'Internet.

-- Unrestricted : charge tous les fichiers de configuration et exécute tous les scripts. Si vous exécutez un script non signé qui a été téléchargé à partir d'Internet, vous êtes invité à en autoriser l'exécution.

-- Bypass : rien n'est bloqué et il n'y a pas d'avertissements, ni d'invites.

-- Indefined : supprime la stratégie d'exécution actuellement assignée de la portée actuelle. Ce paramètre ne supprime pas une stratégie d'exécution définie dans une portée de stratégie de groupe.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue)

Accepter les caractères génériques ?

false

-Force

Supprime toutes les invites. Par défaut, Set-ExecutionPolicy affiche un avertissement chaque fois que vous modifiez la stratégie d'exécution.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Scope <ExecutionPolicyScope>

Spécifie la portée de la stratégie d'exécution. La valeur par défaut est LocalMachine.

Les valeurs valides sont :

-- Process : la stratégie d'exécution affecte uniquement le processus Windows PowerShell actuel.

-- CurrentUser : la stratégie d'exécution affecte uniquement l'utilisateur actuel.

-- LocalMachine : la stratégie d'exécution affecte tous les utilisateurs de l'ordinateur.

Pour supprimer une stratégie d'exécution d'une portée spécifique, définissez la valeur Undefined pour la stratégie d'exécution de cette portée.

Obligatoire ?

false

Position ?

2

Valeur par défaut

LocalMachine

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Confirmer

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

Microsoft.PowerShell.ExecutionPolicy, System.String

Vous pouvez diriger un objet de stratégie d'exécution ou une chaîne contenant le nom d'une stratégie d'exécution vers Set-ExecutionPolicy.

Sorties

None

Cette applet de commande ne retourne aucune sortie.

Remarques

Lorsque vous utilisez Set-ExecutionPolicy, la nouvelle préférence utilisateur est écrite dans le Registre et reste inchangée jusqu'à ce que vous la modifiiez.

Toutefois, si la stratégie de groupe « Turn on Script Execution » (Activer l'exécution de script) est activée pour l'ordinateur ou l'utilisateur, la préférence utilisateur est écrite dans le Registre, mais n'est pas appliquée, et Windows PowerShell affiche un message qui explique le conflit. Vous ne pouvez pas utiliser Set-ExecutionPolicy pour remplacer une stratégie de groupe, même si la préférence utilisateur est plus restrictive que la stratégie.

Exemple 1

C:\PS>set-executionpolicy remotesigned

Description
-----------
Cette commande définit la préférence utilisateur pour la stratégie d'exécution de l'interpréteur de commandes sur RemoteSigned.





Exemple 2

C:\PS>Set-ExecutionPolicy Restricted

Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
+ set-executionpolicy  <<<< restricted

Description
-----------
Cette commande essaie de définir la stratégie d'exécution de l'interpréteur de commandes sur « Restricted ». Le paramètre « Restricted » est écrit dans le Registre, mais étant donné qu'il est en conflit avec une stratégie de groupe, il n'est pas appliqué bien qu'il soit plus restrictif que la stratégie.





Exemple 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

Description
-----------
Cette commande obtient la stratégie d'exécution d'un ordinateur distant et l'applique à l'ordinateur local.

Elle utilise l'applet de commande Invoke-Command pour envoyer la commande à l'ordinateur distant. Étant donné que vous pouvez diriger un objet ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) vers Set-ExecutionPolicy, la commande Set-ExecutionPolicy n'a pas besoin d'un paramètre ExecutionPolicy.

La commande a un paramètre Force, qui supprime l'invite d'utilisateur.





Exemple 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force

C:\PS> get-executionpolicy -list

        Scope   ExecutionPolicy
        -----   ---------------
MachinePolicy         Undefined
   UserPolicy         Undefined
      Process         Undefined
  CurrentUser         AllSigned
 LocalMachine      RemoteSigned

C:\PS> get-executionpolicy
AllSigned

Description
-----------
Cet exemple montre comment définir une stratégie d'exécution pour une portée particulière.

La première commande utilise l'applet de commande Set-ExecutionPolicy pour définir la stratégie d'exécution AllSigned pour l'utilisateur actuel. Elle utilise le paramètre Force pour supprimer les invites utilisateur.

La deuxième commande utilise le paramètre List de Get-ExecutionPolicy pour obtenir les stratégies d'exécution définies dans chaque portée. Les résultats montrent que la stratégie d'exécution définie pour l'utilisateur actuel diffère de celle définie pour tous les utilisateurs de l'ordinateur. 

La troisième commande utilise l'applet de commande Get-ExecutionPolicy sans paramètres pour obtenir la stratégie d'exécution en vigueur pour l'utilisateur actuel sur l'ordinateur local. Le résultat confirme que la stratégie d'exécution définie pour l'utilisateur actuel est prioritaire sur celle définie pour tous les utilisateurs.





Exemple 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

Description
-----------
Cette commande utilise la valeur de stratégie d'exécution Undefined pour supprimer effectivement la stratégie d'exécution définie pour la portée de l'utilisateur actuel. En conséquence, la stratégie d'exécution définie dans la stratégie de groupe ou dans la portée LocalMachine (tous les utilisateurs) est en vigueur.

Si vous affectez la valeur Undefined à la stratégie d'exécution de toutes les portées et que la stratégie de groupe n'est pas définie, la stratégie d'exécution par défaut, Restricted, est en vigueur pour tous les utilisateurs de l'ordinateur.





Voir aussi

Concepts

Get-ExecutionPolicy
Set-AuthenticodeSignature
Get-AuthenticodeSignature
about_Execution_Policies
about_Signing