Si l'erreur persiste après avoir modifié les politiques d'exécution, plusieurs facteurs peuvent interférer. Voici une approche systématique de dépannage.
Vérifiez les politiques conflictuelles :
# Analyse détaillée des politiques
foreach ($scope in @('MachinePolicy','UserPolicy','Process','CurrentUser','LocalMachine')) {
$policy = Get-ExecutionPolicy -Scope $scope
Write-Host "$scope`: $policy"
}
Vérifiez la version et l'édition de PowerShell :
$PSVersionTable
PowerShell 5.1 (Windows PowerShell) et PowerShell 7.x maintiennent des politiques d'exécution séparées. Si vous utilisez PowerShell 7.x, assurez-vous d'avoir défini les politiques pour la version correcte :
# Vérifiez quelle version de PowerShell vous utilisez
if ($PSVersionTable.PSVersion.Major -ge 7) {
Write-Host "Exécution de PowerShell 7.x (pwsh.exe)"
} else {
Write-Host "Exécution de Windows PowerShell 5.1 (powershell.exe)"
}
Effacez le cache de PowerShell et redémarrez :
# Effacer le cache des modules PowerShell
Remove-Item -Path "$env:LOCALAPPDATA\Microsoft\Windows\PowerShell\ModuleAnalysisCache" -Force -ErrorAction SilentlyContinue
Ensuite, redémarrez complètement PowerShell (fermez toutes les fenêtres et rouvrez).
Testez avec un script minimal :
# Créer et tester un script simple
'Write-Host "Test de la politique d'exécution réussi"' | Out-File -FilePath test-policy.ps1 -Encoding UTF8
.\test-policy.ps1
Vérification : Le script de test devrait s'exécuter sans erreurs. S'il échoue encore, vérifiez les journaux des événements Windows sous Applications et Services Logs > Microsoft > Windows > PowerShell > Operational pour des informations d'erreur détaillées.
Avertissement : Si aucune de ces étapes ne fonctionne, votre système peut avoir des logiciels de sécurité supplémentaires ou des politiques bloquant l'exécution de PowerShell. Contactez votre administrateur informatique pour les environnements d'entreprise.