2010-03-05 5 views
3

J'ai un script PowerShell signé que je veux déployer sur une machine cible via un installateur WiX. Est-il possible de donner au script les droits d'exécution?Installer le script Powershell avec WiX

Cordialement, forki

  • EDIT - Il semble que je dois appeler Powershell avec --command Set-ExecutionPolicy RemoteSigned, mais je ne peux pas le faire fonctionner. Je vois la fenêtre de commande Powershell s'ouvrir mais cela ne change pas la politique.
<Property Id="POWERSHELLEXE"><![CDATA[C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe]]></Property> 

<CustomAction Id="AllowPS" 
    Property="POWERSHELLEXE" 
    ExeCommand="-NoLogo -NoProfile -Command Set-ExecutionPolicy RemoteSigned" 
    Execute="deferred" 
    Return="check"/> 

<InstallExecuteSequence> 
    .. 
    <Custom Action="AllowPS" Before="InstallFinalize"/> 
    ... 
</InstallExecuteSequence> 
+0

Il semble que je doive appeler Powershell avec --Command Set-ExecutionPolicy RemoteSigned, mais je n'arrive pas à le faire fonctionner. – forki23

+0

Utilisez-vous PowerShell 1.0 ou 2.0 sur la machine cible? – Goyuix

+0

Nous avons Win 7 - donc je pense que c'est 2.0. – forki23

Répondre

3

stratégie de groupe est la meilleure façon de s'y prendre,

Je pense que la raison pour laquelle votre appel à PowerShell.exe ne change pas la politique d'exécution est parce que l'applet de commande est configuré pour inviter l'utilisateur avant de modifier l'exécution politique. Le paramètre -Force force la modification sans invite supplémentaire.

2

Si vous utilisez PowerShell 2.0, il y a un paramètre -ExecutionPolicy sur PowerShell.exe. Essayez quelque chose comme ça en une seule action personnalisée pour exécuter le script.

ExeCommand="-NoLogo -NoProfile -ExecutionPolicy RemoteSigned -File <scrptpath>" 
+1

Vous avez une faute de frappe - devrait être 'RemoteSigned' – Eternal21

1

Je définirai la stratégie d'exécution via des stratégies de groupe.

Questions connexes