Dans un article précédent nous avons vu comment installer et vérifier le bon fonctionnement de PowerShell. Nous avions ouvert l’interpréteur de commande PowerShell et exécuté quelques instructions.
Nous allons découvrir dans cet article comment exécuter des commandes Powershell en utilisant des scripts Powershell.
Un script Powershell peut être lancé à partir d’un fichier .BAT , d’une invite de commande, depuis l’interpréteur Powershell, d’un service, d’une tâche planifiée ou simplement en double cliquant sur le script.
Créer un script Powershell
Pour créer un fichier de script PowerShell, il suffit de créer un fichier ayant pour extension .PS1 dans lequel vous allez copier votre code.
Nous créons par exemple un fichier nommé monscript.ps1 dans lequel nous copions le code suivant:
((ipconfig | findstr [0-9].\.)[0]).Split()[-1]
function Pause ($Message=”Appuyez sur une touche pour quitter…”)
{
Write-Host -NoNewLine $Message
$null = $Host.UI.RawUI.ReadKey(“NoEcho,IncludeKeyDown”)
Write-Host “”}Pause
Ce script permet d’afficher votre adresse IP puis de faire une pause avant de sortir.
Modifier les paramètres de sécurité de Powershell
Si nous tentons d’exécuter ce script en ouvrant par exemple une invite de commande et en tapant la commande suivante:
powershell c:\monscript.ps1
Il est fort probable que vous obteniez le message suivant :
C:\>powershell c:\monscript.ps1
Impossible de charger le fichier C:\monscript.ps1, car l’exécution de scripts est désactivée sur ce système. Pour plus d’informations, consultez « get-help about_signing ».
Au niveau de ligne : 1 Caractère : 16
+ c:\extractad.ps1 <<<<
C:\>
En effet il va falloir au préalable modifier les paramètres de sécurité implémentés dans PowerShell car par défaut il est impossible de lancer un script sans passer par l’interpréteur PowerShell. Nous allons donc modifier une bonne fois pour toute ces paramètres de sécurité.
Pour cela ouvrez l’interpréteur PowerShell (Démarrer / Exécuter / Powershell) et entrez la commande suivante:
PS C:\> Get-ExecutionPolicy
Vous devriez alors obtenir le résultat suivant:
PS C:\> Get-ExecutionPolicy
Restricted
PS C:\>
PowerShell propose 4 modes de sécurité différents:
- Restricted
- AllSigned
- RemoteSigned
- Unrestricted
Toujours dans l’interpréteur PowerShell entrez la commande suivante afin de changer de mode et d’autoriser l’exécution de script locaux :
PS C:\> Set-ExecutionPolicy RemoteSigned
Vous pouvez vérifier que le changement est bien été effectué en retapant la commande suivante:
PS C:\> Get-ExecutionPolicy
Vous devriez cette fois obtenir le résultat suivant:
PS C:\> Get-ExecutionPolicy
RemoteSigned
PS C:\>
Vous pouvez désormais exécuter un script Powershell depuis votre station de travail.
Exécuter un script Powershell
A présent il est possible d’exécuter le script précédemment créé suivant la méthode de votre choix:
En ligne de commande:
En ouvrant une invite de commande et en exécutant la commande suivante:
powershell c:\monscript.ps1
le résultat obtenu doit être de la forme suivante:
C:\>powershell c:\monscript.ps1
192.168.0.10
Press any key to continue…
Depuis l’interpréteur Powershell
Il est bien évidement possible d’exécuter un script powershell depuis l’interpréteur Powershell en tapant la commande suivante:
.\nomduscript.ps1
C’est notamment très pratique lors du debuggage d’un script !
Depuis un fichier .BAT
Ce n’est qu’un variante de l’exécution par la ligne de commande puisqu’il suffit de créer un fichier .BAT contenant le code suivant:
powershell c:\monscript.ps1
Via un service Windows ou le planificateur de tâches
Il suffit cette fois d’utiliser de planifier l’exécution du fichier .BAT via un service ou une tâche planifiée. Il existe des outils gratuit pour créer facilement un service Windows.
contribuer
[ Devenir rédacteur sur SysKB ]
rechercher
voter
explorer
la logithèque (Windows | iPhone | Windows Phone 7)
- derniers logiciels
-
- [Version bêta] Chrome
- Filezilla
- Opera
- VirtualBox
- Defraggler
- Wireshark
- CCleaner
- Firefox
- Autoruns
- AVG Free Edition
partenaires
- services en ligne
-
- Envoyer des gros fichiers avec Free
- DNS Lookup
- Calculer un sous réseau
RSS
Email
Twitter
Le 04 Apr. 2008 par hatmos
9 commentaires
Ils en parlent sur le forum
[...] Exécuter un script en PowerShell [...]
Pingback par Les outils d’administrations de Windows Server 2008 le 22 April 2008 a 14:33[...] Exécuter un script en PowerShell [...]
Pingback par Afficher le compte utilisateur connecté sur une machine distante en Powershell | SysKB - IT Knowledge Base le 5 May 2008 a 15:54[...] Exécuter un script en PowerShell [...]
Pingback par Lister les hotfixes d’un ordinateur distant en Powershell | SysKB - IT Knowledge Base le 6 May 2008 a 13:58[...] Exécuter un script en PowerShell [...]
Pingback par Supprimer les doublons dans un fichier texte puis le trier en Powershell le 12 May 2008 a 13:15Merci bien, super clair pour débuter.
Comment par lionl le 29 March 2009 a 16:58Merci bien pour le script, il fonctionne parfaitement.
Comment par Regaieg le 5 April 2009 a 00:57Excellent article !!! bien détaillé.
Merci encore….
super script …… pour débuter en PowerShell …super merci
Comment par George le 5 April 2009 a 01:00Sypma article, simple, claire et utile.
Comment par Regaieg le 7 April 2009 a 07:04Merci
[...] Exécuter un script en PowerShell (211 lecteurs) [...]
Pingback par Visualiser la répartition des rôles FSMO d’un domaine Active Directory en Powershell le 17 January 2010 a 10:56Flux RSS sur les commentaires de cet article · TrackBack URI
Laissez un commentaire sur le forum