about_Execution_Policies

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 
    http://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) 
    (http://go.microsoft.com/fwlink/?LinkId=131786)