Description : Cette procédure décrit comment l’administrateur d’un domaine peut exécuter un script PowerShell sur un environnement Windows Server 2008. Par défaut, l’exécution de scripts est interdite sur un OS Windows Server 2008. C’est pourquoi, il est utile de savoir comment obtenir le niveau de stratégie d’exécution de scripts PowerShell et le modifier. Si vous essayez d’exécuter un script sur un environnement où la stratégie d’exécuter ne vous le permet pas, vous risquez d’obtenir le message suivant :
Pré-requis :
- Avoir un OS Windows Server 2008
- Avoir PowerShell installé
- Avoir des droits d’administration sur le serveur
Connaître le niveau de stratégie d’exécution de PowerShell :
1 – Connectez-vous sur votre Windows Server 2008 et démarrer une console « PowerShell » :
2 – Dans l’invite de commande, tapez la commande suivante : Get-Execution Policy
NB : Cette commande vous affiche le niveau de la stratégie d’exécution de PowerShell. Dans notre cas, « Restricted » s’affiche, ce qui veut dire que l’exécution des scripts Windows PowerShell est interdite sur le serveur.
Modifier le niveau de stratégie d’exécution de PowerShell :
1 – Connectez-vous sur votre Windows Server 2008 et démarrer une console « PowerShell » :
2 – Dans l’invite de commande, tapez la commande suivante suivi de « Y » pour confirmer : Set-ExecutionPolicy <Niveau>
Plusieurs niveau de configuration sont possibles :
– UnRestricted (Permet l’exécution de n’importe quel script PowerShell. Option non recommandée)
– RemoteSigned (Permet l’exécution de scripts PowerShell en local et le contenu téléchargé depuis Internet doit être signé par un éditeur approuvé)
– AllSigned (Permet l’exécution de scripts PowerShell signé uniquement)
– Restricted (Permet d’interdir l’exécution de Scripts PowerShell)
Exemple : Set-ExecutionPolicy RemoteSigned
NB : Attention, lorsque vous modifiez le niveau de stratégie d’exécution Windows PowerShell, la nouvelle configuration est inscrite dans le registre utilisateur jusqu’à sa prochaine modification.
3 – Dans l’invite de commande, tapez la commande suivante pour vérifier la nouvelle configuration : Get-SetExecution Policy
NB : Vous pouvez désormais exécuter vos scripts PowerShell en local
Exécuter un script PowerShell à l’aide d’un fichier Batch :
1 – Connectez-vous sur votre Windows Server 2008 et démarrer une console « PowerShell » :
2 – Créez un fichier à l’extension « .bat » dans le même répertoire que votre script PowerShell :
3 – Editer le fichier batch avec les lignes suivantes et enregistrez le :
@echo off
PowerShell Set-ExecutionPolicy RemoteSigned
PowerShell ./Get-InstalledSoftware.ps1
PowerShell Set-ExecutionPolicy Restricted
Exit
NB : Il faudra bien entendu remplacer « Get-InstalledSoftware.ps1 » par le nom exacte de votre script PowerShell.
4 – Exécutez votre script PowerShell en double cliquant sur votre fichier Batch.
NB : Grâce à cette méthode, vous pourrez exécuter vos scripts PowerShell en remettant le paramètre de stratégie par défaut « Restricted » après l’exécution de votre script.