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