Flash info

"Problems cannot be solved by the same level of thinking that created them."

- Albert Einstein
 
Accueil arrow Découvrir PowerShell arrow Sécurité des scripts
Exécuter son premier script
Appréciation des utilisateurs: / 116
FaibleMeilleur 
Écrit par Arnaud Petitjean [MVP]   
22-12-2006

Mon premier script et les stratégies d'exécution

 

Bien que l’interpréteur de commandes PowerShell soit très pratique il a ses limites. En effet lorsque l'on a passé 20 minutes à mettre au point sa ligne de commandes dans la console on se souhaite pas tout réécrire la fois suivante. C'est donc maintenant que les scripts entre en scène. Pour ce faire, il suffit de copier/coller sa ligne de commandes dans un éditeur de texte tel que le bloc notes et de l'enregistrer avec l'extension .ps1 (à attention à l'extension par défaut du bloc notes qui est .txt !). Maintenant vous pourrez appeler votre script quand vous le voudrez et vous n’aurez pas à retaper toutes les commandes.
Vous pouvez appeler vos scripts de plusieurs manières : soit à partir du Shell, soit en double-cliquant sur le fichier contenant le script (ex: monscript.ps1), soit encore à partir d’une tâche planifiée ou d’un service Windows.

Ceci étant dit, avant d'en arriver là il va falloir composer avec les nouveaux mécanismes de sécurité intrinsèques à PowerShell. En effet Microsoft a introduit des sécurités pour qu’un script non autorisé ne puisse pas s’exécuter à l’insu de l’utilisateur, comme cela pouvait être le cas en VBScript.


Nous allons devoir jouer avec deux composantes :

  • le mode de sécurité du shell, appelé aussi "stratégie d’exécution"
  • la signature des scripts


Pour déterminer votre stratégie d’exécution, tapez la commande suivante :
PS C:\> Get-ExecutionPolicy

Si vous n’avez rien changé, vous devriez vous trouver dans le mode « Restricted ».

Il existe 4 stratégies d’exécution dans PowerShell :

  • Restricted :
- Stratégie par défaut
- Ne permet que la saisie interactive de commandes, c'est-à-dire uniquement dans le shell
- Les scripts ne sont pas autorisés
  • AllSigned :
- Les scripts peuvent être exécutés mais seulement s’ils sont signés
- Demande confirmation avant l’exécution de chaque script
  • RemoteSigned :
- Les scripts exécutés localement peuvent être exécutés sans être signés
- Les scripts téléchargés à partir d’internet doivent être signés
- Ne demande pas de confirmation avant d’exécuter des scripts signés ou non par une autorité de certification connue de votre ordinateur
  • Unrestricted :
- Tous les scripts signés ou non peuvent être exécutés

Vous l’avez compris, le mode « AllSigned » est le mode le plus sécurisé mais il est tout de suite plus délicat de créer des scripts lorsqu’on débute car il faut les signer. Et là c’est une autre paire de manches. Nous en reparlerons plus longuement dans un tutorial dédié à la signature des scripts. Pour commencer, je vous recommande de vous mettre dans le mode RemoteSigned. Ainsi nous pourrons exécuter nos propres scripts développés localement tout en préservant un peu de sécurité vis-à-vis d’internet.


Je vous invite donc à taper la commande suivante :
PS C:\> Set-ExecutionPolicy RemoteSigned

Si tout s’est bien passé vous n’aurez pas de message en retour.

Donc désormais vous pouvez écrire vos scripts dans un éditeur de texte et faire appel à eux soit depuis l’interpréteur de commandes PowerShell, soit en double-cliquant sur le fichier correspondant au script (par exemple monscript.ps1).

 

Dernière mise à jour : ( 24-12-2006 )
 
© 2017 PowerShell-Scripting.com