2011-01-10 5 views
53

Je souhaite exécuter des scripts PowerShell sous Windows   7 en tant qu'utilisateur standard. Chaque fois que j'essaie, je reçois l'erreur suivante:PowerShell sous Windows 7: Set-ExecutionPolicy pour les utilisateurs réguliers

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 

Toute tentative de résoudre par 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 exécuter la commande Set-ExecutionPolicy Unrestricted en tant qu'administrateur, mais cela ne semble pas se propager à non utilisateurs -administrateur. Comment puis-je exécuter des scripts avec succès en tant que non-administrateur?

Répondre

60

Si vous (ou un administrateur utile) exécutez Set-ExecutionPolicy en tant qu'administrateur, la stratégie sera définie pour tous les utilisateurs. NB: sur un système d'exploitation 64 bits, vous devez exécuter Set-ExecutionPolicy séparément pour PowerShell 32 bits et 64 bits.

+0

J'ai essayé cela - mettre les choses à 'Unrestricted' en tant qu'administrateur ne semble pas changer quoi que ce soit pour le non administrateur ... –

+0

@DanVinton: Puis quelque chose d'autre se passe. Suggérer de nouveau la configuration en tant qu'administrateur, puis en vérifiant 'Get-ExecutionPolicy' à partir des shells d'administration et des shells normaux. Il est possible que la stratégie de groupe remplace vos souhaits. – Richard

+0

Dans la mode informatique habituelle, avoir quelqu'un (proverbialement) regarder par-dessus votre épaule a résolu ... merci! –

100
Set-ExecutionPolicy Unrestricted -Scope CurrentUser 

Cela définira la politique d'exécution pour l'utilisateur courant (stocké dans HKEY_CURRENT_USER) plutôt que la machine locale (HKEY_LOCAL_MACHINE). Ceci est utile si vous n'avez pas de contrôle administratif sur l'ordinateur.

+2

Parfait. Cela a résolu mon problème immédiatement. C'est frustrant pour les nouveaux utilisateurs que Powerhell soit annoncé comme une langue de script qui, par défaut, interdit le script. –

+1

"Sans restriction"? Soyez conscient de [les implications de sécurité] (http://stackoverflow.com/questions/4037939/powershell-says-execution-of-scripts-is-disabled-on-this-system/26955050#26955050). –

0

Cela devrait résoudre votre problème, vous devriez essayer d'exécuter ce qui suit ci-dessous:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser  
Questions connexes