164 lines
7.8 KiB
Markdown
164 lines
7.8 KiB
Markdown
|
|
|
|
# Stratégies d'exécution PowerShell:
|
|
|
|
https://docs.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
|
|
|
|
|
|
|
|
#### AllSigned
|
|
|
|
- Les scripts peuvent s'exécuter.
|
|
- Nécessite que tous les scripts et fichiers de configuration soient signés par un éditeur approuvé, y compris les scripts que vous écrivez sur l'ordinateur local.
|
|
- Vous invite à exécuter des scripts d'éditeurs que vous n'avez pas encore classés comme fiables ou non fiables.
|
|
- Risques liés à l'exécution de scripts signés mais malveillants.
|
|
|
|
#### ByPass
|
|
|
|
- Rien n'est bloqué et il n'y a aucun avertissement ou invite.
|
|
- Cette stratégie d'exécution est conçue pour les configurations dans lesquelles un script PowerShell est intégré à une application plus grande ou pour les configurations dans lesquelles PowerShell est la base d'un programme qui possède son propre modèle de sécurité.
|
|
|
|
#### Default
|
|
|
|
- Définit la stratégie d'exécution par défaut.
|
|
- **Restricted** aux clients Windows.
|
|
- **RemoteSigned** pour les serveurs Windows.
|
|
|
|
#### RemoteSigned
|
|
|
|
- La stratégie d'exécution par défaut pour les ordinateurs serveurs Windows.
|
|
- Les scripts peuvent s'exécuter.
|
|
- Nécessite une signature numérique d'un éditeur de confiance sur les scripts et les fichiers de configuration téléchargés sur Internet, qui incluent des programmes de messagerie électronique et de messagerie instantanée.
|
|
- Ne nécessite pas des signatures numériques sur des scripts écrits sur l'ordinateur local et non téléchargés sur Internet.
|
|
- Exécute des scripts téléchargés sur Internet et non signés, si les scripts sont débloqués, par exemple en utilisant l'applet de commande `Unblock-File`.
|
|
- Risque d'exécuter des scripts non signés à partir de sources autres qu'Internet et des scripts signés qui pourraient être malveillants.
|
|
|
|
#### Restricted
|
|
|
|
- La stratégie d'exécution par défaut pour les ordinateurs clients Windows.
|
|
- Autorise les commandes individuelles, mais n'autorise pas les scripts.
|
|
- Empêche l'exécution de tous les fichiers de script, y compris les fichiers de formatage et de configuration (.ps1xml), les fichiers de script de module (.psm1) et les profils PowerShell (.ps1).
|
|
|
|
#### Undefined
|
|
|
|
- Aucune stratégie d'exécution n'est définie dans la portée actuelle.
|
|
- Si la politique d'exécution dans toutes les étendues est **Undefined**, la politique d'exécution effective est **Restricted**, qui est la politique d'exécution par défaut.
|
|
|
|
#### Unrestricted
|
|
|
|
- La stratégie d'exécution par défaut pour les ordinateurs non Windows et ne peut pas être modifiée.
|
|
- Des scripts non signés peuvent s'exécuter. Il existe un risque d'exécuter des scripts malveillants.
|
|
- Avertit l'utilisateur avant d'exécuter des scripts et des fichiers de configuration qui ne proviennent pas de la zone intranet locale.
|
|
|
|
|
|
|
|
### Portée de la politique d'exécution:
|
|
|
|
#### MachinePolicy
|
|
|
|
Défini par une stratégie de groupe pour tous les utilisateurs de l'ordinateur.
|
|
|
|
#### UserPolicy
|
|
|
|
Défini par une stratégie de groupe pour l'utilisateur actuel de l'ordinateur.
|
|
|
|
#### Process
|
|
|
|
L'étendue du processus affecte uniquement la session PowerShell en cours. La stratégie d'exécution est enregistrée dans la variable d'environnement `$ env: PSExecutionPolicyPreference`, plutôt que dans le registre. Lorsque la session PowerShell est fermée, la variable et la valeur sont supprimées.
|
|
|
|
#### CurrentUser
|
|
|
|
La stratégie d'exécution affecte uniquement l'utilisateur actuel. Il est stocké dans la sous-clé de registre `HKEY_CURRENT_USER`.
|
|
|
|
#### LocalMachine
|
|
|
|
La stratégie d'exécution affecte tous les utilisateurs de l'ordinateur actuel. Il est stocké dans la sous-clé de registre `HKEY_LOCAL_MACHINE`.
|
|
|
|
|
|
|
|
### Obtenir la politique d'exécution:
|
|
|
|
```powershell
|
|
# Obtenir la politique d'exécution courante
|
|
|
|
PS C:\Users\bruno> Get-ExecutionPolicy
|
|
Restricted
|
|
|
|
# Obtenir toutes les politiques d'exécution qui affectent la session en cours et les afficher dans l'ordre de priorité:
|
|
|
|
PS C:\Users\bruno> Get-ExecutionPolicy -List
|
|
|
|
Scope ExecutionPolicy
|
|
----- ---------------
|
|
MachinePolicy Undefined
|
|
UserPolicy Undefined
|
|
Process Undefined
|
|
CurrentUser Undefined
|
|
LocalMachine Undefined
|
|
|
|
# Obtenir la stratégie d'exécution pour la portée CurrentUser:
|
|
|
|
PS C:\Users\bruno> Get-ExecutionPolicy -Scope CurrentUser
|
|
Undefined
|
|
|
|
```
|
|
|
|
|
|
|
|
### Modifier la politique d'exécution:
|
|
|
|
```powershell
|
|
# Modifier la politique d'exécution courante
|
|
# - nécessite d'ouvrir PowerShell en tant qu'administrateur
|
|
|
|
PS Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
|
|
|
|
|
|
PS Get-ExecutionPolicy -List
|
|
|
|
Scope ExecutionPolicy
|
|
----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned <
|
|
|
|
# Modifier la politique d'exécution courante pour CurrentUser
|
|
|
|
PS Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
|
|
PS C:\WINDOWS\system32> Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned < LocalMachine Undefined
|
|
|
|
```
|
|
|
|
|
|
|
|
### Supprimer la politique d'exécution:
|
|
|
|
Cela revient à la déclarer `Undefined`
|
|
|
|
```powershell
|
|
PS Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine
|
|
|
|
PS Get-ExecutionPolicy -List
|
|
|
|
Scope. ExecutionPolicy
|
|
----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Undefined <
|
|
|
|
```
|
|
|
|
|
|
|
|
### Modifier la politique d'exécution pour une session:
|
|
|
|
```powershell
|
|
PS pwsh.exe -ExecutionPolicy AllSigned
|
|
```
|
|
|
|
|
|
|
|
### Priorités de politique d'exécution:
|
|
|
|
Lors de la détermination de la stratégie d'exécution effective pour une session, PowerShell évalue les stratégies d'exécution dans l'ordre de priorité suivant:
|
|
|
|
- Group Policy: MachinePolicy
|
|
- Group Policy: UserPolicy
|
|
- Execution Policy: Process (or `pwsh.exe -ExecutionPolicy`)
|
|
- Execution Policy: CurrentUser
|
|
- Execution Policy: LocalMachine |