RUBRIQUE
about_Execution_Policies
DESCRIPTION COURTE
Décrit les stratégies d'exécution Windows PowerShell et explique
comment les gérer.
DESCRIPTION LONGUE
Les stratégies d'exécution Windows PowerShell vous permettent
de déterminer les conditions dans lesquelles Windows PowerShell
charge des fichiers de configuration et exécute des scripts.
Vous pouvez définir une stratégie d'exécution pour l'ordinateur
local, pour l'utilisateur actuel ou pour une session
particulière. Vous pouvez également utiliser un paramètre de
stratégie de groupe pour définir la stratégie d'exécution des
ordinateurs et des utilisateurs.
Les stratégies d'exécution de l'ordinateur local et de
l'utilisateur actuel sont stockées dans le Registre. Vous n'avez
pas besoin de définir des stratégies d'exécution dans votre
profil Windows PowerShell. La stratégie d'exécution d'une session
particulière, qui est stockée uniquement en mémoire, est perdue lors
de la fermeture de la session.
La stratégie d'exécution n'est pas un système de sécurité qui
restreint les actions des utilisateurs. Par exemple, les utilisateurs
peuvent contourner facilement une stratégie en tapant le contenu
de script sur la ligne de commande lorsqu'ils ne peuvent pas exécuter
ce dernier. La stratégie d'exécution aide plutôt les utilisateurs à
établir des règles de base et les empêche de les violer involontairement.
STRATÉGIES D'EXÉCUTION WINDOWS POWERSHELL
-------------------------------------
Les stratégies d'exécution Windows PowerShell se présentent comme
suit :
" Restricted " est la stratégie par défaut.
Restricted
- Stratégie d'exécution par défaut.
- Autorise l'exécution de commandes individuelles, mais pas de
scripts.
- Empêche l'exécution de tous les fichiers de script, y
compris les fichiers de mise en forme et de configuration
(.ps1xml), les fichiers de script de module (.psm1) et les profils
Windows PowerShell (.ps1).
AllSigned
- Les scripts peuvent être exécutés.
- Requiert que tous les scripts et fichiers de configuration,
y compris les scripts que vous écrivez sur l'ordinateur local,
soient signés numériquement par un éditeur approuvé.
- Vous invite à confirmer l'exécution des scripts des
éditeurs que vous n'avez pas encore classés comme
approuvés ou non approuvés.
- Risque d'exécuter des scripts non signés provenant
de sources autres qu'Internet et des scripts signés,
mais malveillants.
RemoteSigned
- Les scripts peuvent être exécutés.
- Requiert que les scripts et fichiers de configuration
téléchargés à partir d'Internet (y compris les programmes de
messagerie électronique et de messagerie instantanée) soient
signés numériquement par un éditeur approuvé.
- Ne requiert pas la signature numérique des scripts exécutés et
écrits sur l'ordinateur local (non téléchargés à partir d'Internet).
- Risque d'exécuter des scripts signés, mais malveillants.
Unrestricted
- Les scripts non signés peuvent être exécutés. (Cette
stratégie peut entraîner l'exécution de scripts
malveillants.)
- Prévient l'utilisateur avant d'exécuter des scripts et des
fichiers de configuration téléchargés à partir d'Internet.
Bypass
- Aucun blocage n'est appliqué et il n'y a pas
d'avertissement, ni d'invite.
- Cette stratégie d'exécution est conçue pour les
configurations dans lesquelles un script Windows
PowerShell est intégré à une application plus grande ou
celles dans lesquelles Windows PowerShell sert de base à un
programme disposant de son propre modèle de sécurité.
Undefined
- Aucune stratégie d'exécution n'est définie dans
l'étendue actuelle.
- Si la stratégie d'exécution de toutes les étendues a la
valeur Undefined, la stratégie d'exécution Restricted,
qui correspond à celle définie par défaut, s'applique.
Remarque : sur les systèmes qui ne distinguent pas les chemins
d'accès UNC (Universal Naming Convention) des chemins Internet,
les scripts identifiés par un chemin UNC peuvent ne pas être
autorisés à s'exécuter avec la stratégie d'exécution RemoteSigned.
ÉTENDUE DE LA STRATÉGIE D'EXÉCUTION
----------------------
Vous pouvez définir une stratégie d'exécution qui s'applique
uniquement à une étendue spécifique.
Les valeurs valides pour l'étendue sont Process, CurrentUser et
LocalMachine. LocalMachine correspond à la valeur par défaut lors
de la définition d'une stratégie d'exécution.
Les valeurs d'étendue apparaissent dans l'ordre de précédence.
- Process
La stratégie d'exécution affecte uniquement la session active
(processus Windows PowerShell actuel). La stratégie d'exécution
est stockée dans la variable d'environnement
$PSExecutionPolicyPreference. Cette valeur est supprimée lors
de la fermeture de la session dans laquelle la stratégie
est définie.
- CurrentUser
La stratégie d'exécution affecte uniquement
l'utilisateur actuel. Elle est stockée dans la sous-clé
de Registre HKEY_CURRENT_USER.
- LocalMachine
La stratégie d'exécution affecte tous les utilisateurs de
l'ordinateur actuel. Elle est stockée dans la sous-clé de Registre
HKEY_LOCAL_MACHINE.
La stratégie prioritaire s'applique à la session active, même si une
stratégie plus restrictive a été définie à un niveau de précédence
inférieur.
Pour plus d'informations, consultez Set-ExecutionPolicy.
OBTENTION DE LA STRATÉGIE D'EXÉCUTION
------------------------------
Pour obtenir la stratégie d'exécution Windows PowerShell qui
s'applique à la session active, utilisez l'applet de commande Get-
ExecutionPolicy.
La commande suivante permet d'obtenir la stratégie d'exécution
actuelle :
get-executionpolicy
Pour obtenir toutes les stratégies d'exécution qui affectent la
session active et les afficher dans l'ordre de précédence, tapez :
get-executionpolicy -list
Le résultat sera similaire à l'exemple de sortie suivant :
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine AllSigned
Dans ce cas, la stratégie d'exécution actuelle est RemoteSigned,
car la stratégie d'exécution de l'utilisateur actuel est
prioritaire sur celle définie pour l'ordinateur local.
Pour obtenir la stratégie d'exécution définie pour une étendue
spécifique, utilisez le paramètre Scope de Get-ExecutionPolicy.
Par exemple, la commande suivante permet d'obtenir la stratégie
d'exécution correspondant à l'étendue de l'utilisateur actuel.
get-executionpolicy -scope CurrentUser
CHANGER DE STRATÉGIE D'EXÉCUTION
------------------------------
Pour changer la stratégie d'exécution Windows PowerShell sur votre
ordinateur, utilisez l'applet de commande Set-ExecutionPolicy.
La modification prend immédiatement effet ; vous n'avez pas besoin de
redémarrer Windows PowerShell.
Si vous définissez la stratégie d'exécution de l'ordinateur local
(valeur par défaut) ou de l'utilisateur actuel, la modification est
enregistrée dans le Registre et s'applique jusqu'à ce que vous
effectuiez une nouvelle modification.
Si vous définissez la stratégie d'exécution du processus actuel,
elle n'est pas enregistrée dans le Registre. Elle est conservée
jusqu'à la fermeture du processus actuel et de tous les processus
enfants.
Remarque : dans Windows Vista et les versions ultérieures de
Windows, pour exécuter des commandes permettant de
changer la stratégie d'exécution de l'ordinateur local
(valeur par défaut), démarrez Windows PowerShell
avec l'option Exécuter en tant qu'administrateur.
Pour changer de stratégie d'exécution, tapez :
Set-ExecutionPolicy <nom de stratégie>
Par exemple :
Set-ExecutionPolicy RemoteSigned
Pour définir la stratégie d'exécution d'une étendue spécifique,
tapez :
Set-ExecutionPolicy <nom de stratégie> -scope <étendue>
Par exemple :
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Une commande permettant de changer une stratégie d'exécution peut
réussir, sans toutefois modifier la stratégie d'exécution actuelle.
Par exemple, une commande définissant la stratégie d'exécution de
l'ordinateur local peut réussir, mais être remplacée par la stratégie
d'exécution de l'utilisateur actuel.
SUPPRESSION DE LA STRATÉGIE D'EXÉCUTION
----------------------------
Pour supprimer la stratégie d'exécution d'une étendue spécifique,
définissez la valeur de la stratégie d'exécution sur Undefined.
Par exemple, pour supprimer la stratégie d'exécution de tous les
utilisateurs de l'ordinateur local, tapez :
set-executionpolicy Undefined
Vous pouvez également taper :
set-executionpolicy Undefined -scope LocalMachine
Si aucune stratégie d'exécution n'est définie pour les étendues, la
stratégie d'exécution actuelle est Restricted, qui correspond à la
valeur par défaut.
DÉFINITION D'UNE STRATÉGIE D'EXÉCUTION DANS POWERSHELL.EXE
-----------------------------------------
Vous pouvez utiliser le paramètre ExecutionPolicy de
PowerShell.exe afin de définir une stratégie d'exécution pour une
nouvelle session Windows PowerShell.
La stratégie affecte uniquement la session active et les sessions
enfants.
Pour définir la stratégie d'exécution d'une nouvelle session, démarrez
Windows PowerShell au niveau de la ligne de commande (par exemple,
Cmd.exe ou Windows PowerShell), puis utilisez le paramètre
ExecutionPolicy de PowerShell.exe pour définir la stratégie
d'exécution.
Par exemple :
powershell.exe -executionpolicy -allsigned
La stratégie d'exécution que vous définissez n'est pas stockée dans
le Registre, mais dans la variable d'environnement
PSExecutionPolicyPreference. La variable est supprimée lorsque vous
fermez la session dans laquelle la stratégie est définie.
Pendant la session, la stratégie d'exécution définie pour celle-ci est
prioritaire sur une stratégie d'exécution définie dans le Registre pour
l'ordinateur local ou l'utilisateur actuel. Toutefois, elle n'est pas
prioritaire sur la stratégie d'exécution définie à l'aide d'un
paramètre de stratégie de groupe (présenté ci-dessous).
UTILISATION DE LA STRATÉGIE DE GROUPE POUR LA GESTION DE LA STRATÉGIE
D'EXÉCUTION
-------------------------------------------
Vous pouvez utiliser le paramètre de stratégie de groupe " Turn
on Script Execution " (Activer l'exécution de script) pour gérer la
stratégie d'exécution des ordinateurs de votre entreprise. Le paramètre
de stratégie de groupe remplace les stratégies d'exécution définies
dans Windows PowerShell, dans toutes les étendues.
Les paramètres de stratégie " Turn on Script Execution " (Activer
l'exécution de script) se présentent comme suit :
-- Si vous désactivez " Turn on Script Execution " (Activer
l'exécution de script), les scripts ne s'exécutent pas. Ce
paramétrage est équivalent à la stratégie d'exécution
" Restricted ".
-- Si vous activez " Turn on Script Execution " (Activer
l'exécution de script), vous pouvez sélectionner une stratégie
d'exécution. Les paramètres de stratégie de groupe sont équivalents aux
paramètres de stratégie d'exécution suivants.
Stratégie de groupe Stratégie d'exécution
------------ ----------------
Autoriser tous les scripts. Unrestricted
Autoriser les scripts locaux RemoteSigned
et les scripts signés distants.
Autoriser uniquement les AllSigned
scripts signés.
-- Si le paramètre " Turn on Script Execution " (Activer
l'exécution de script) n'est pas configuré, il n'a
aucun effet. La stratégie d'exécution définie dans Windows
PowerShell s'applique.
Le fichier PowerShellExecutionPolicy.adm ajoute la stratégie " Turn on
Script Execution " (Activer l'exécution de script) aux nœuds Configuration
ordinateur et Configuration utilisateur dans les chemins ci-dessous, dans
l'Éditeur de stratégie de groupe.
Pour Windows XP et Windows Server 2003 :
Modèles d'administration\Composants Windows\Windows PowerShell
Pour Windows Vista et les versions ultérieures de Windows :
Modèles d'administration\Modèles d'administration
classiques\Composants Windows\Windows PowerShell
Les stratégies définies le nœud Configuration ordinateur sont
prioritaires sur celles définies dans le nœud Configuration
utilisateur.
Le fichier PowerShellExecutionPolicy.adm est disponible dans le
Centre de téléchargement Microsoft. Pour plus d'informations,
consultez " Modèles d'administration pour Windows PowerShell "
(en anglais) à l'adresse
https://go.microsoft.com/fwlink/?LinkId=131786.
PRÉCÉDENCE DES STRATÉGIES D'EXÉCUTION
---------------------------
Lors de la détermination de la stratégie d'exécution actuelle
d'une session, Windows PowerShell évalue les stratégies
d'exécution dans l'ordre de précédence suivant :
- Stratégie de groupe : Configuration ordinateur
- Stratégie de groupe : Configuration utilisateur
- Stratégie d'exécution : Process (ou PowerShell.exe
- ExecutionPolicy) Stratégie d'exécution : CurrentUser
- Stratégie d'exécution : LocalMachine
GESTION DES SCRIPTS SIGNÉS ET NON SIGNÉS
----------------------------------
Si vous utilisez la stratégie d'exécution Windows PowerShell
RemoteSigned, Windows PowerShell n'exécutera pas les scripts non
signés qui sont téléchargés à partir d'Internet (y compris les
programmes de messagerie électronique et de messagerie instantanée).
Vous pouvez signer le script ou choisir d'exécuter un script non
signé sans changer la stratégie d'exécution.
Pour plus d'informations, consultez about_Signing.
VOIR AUSSI
Get-ExecutionPolicy
Set-ExecutionPolicy
about_Signing
" Modèles d'administration pour Windows PowerShell " (en anglais)
(https://go.microsoft.com/fwlink/?LinkId=131786)