Je souhaite exécuter des scripts PowerShell sous Windows 7 en tant qu'utilisateur standard. Chaque fois que j'essaie, j'obtiens l'erreur suivante:
File C:\Users\danv\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because the
execution of scripts is disabled on this system. Please see "get-help about_signing" for
more details.
At line:1 char:2
+ . <<<< 'C:\Users\danv\Documents\WindowsPowerShell\profile.ps1'
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
Tenter de résoudre via Set-ExecutionPolicy Unrestricted
échoue:
PS C:\Users\danv> Set-ExecutionPolicy Unrestricted
Set-ExecutionPolicy : Access to the registry key
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'
is denied.
At line:1 char:20
+ Set-ExecutionPolicy <<<< Unrestricted
+ CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
Je peux courir le Set-ExecutionPolicy Unrestricted
commande en tant qu'administrateur, mais cela ne semble pas se propager aux utilisateurs non-administrateurs.
Comment puis-je réussir à exécuter des scripts en tant que non-administrateur?
Si vous (ou un administrateur utile) utilisez Set-ExecutionPolicy
en tant qu'administrateur, la stratégie sera définie pour tous les utilisateurs. (Je suggérerais "remoteSigned" plutôt que "sans restriction" par mesure de sécurité.)
NB: Sur un OS 64 bits, vous devez exécuter Set-ExecutionPolicy
pour PowerShell 32 bits et 64 bits séparément.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Cela définira la stratégie d'exécution pour l'utilisateur actuel (stockée dans HKEY_CURRENT_USER) plutôt que sur la machine locale (HKEY_LOCAL_MACHINE). Ceci est utile si vous n'avez pas le contrôle administratif sur l'ordinateur.
Cela devrait résoudre votre problème, vous devriez essayer de lancer ce qui suit:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser