| ||
auteur : Arnaud Petitjean | ||
Avant de débuter l'apprentissage de PowerShell vous allez avoir besoin d'installer les composants suivants : PowerShell se suffit à lui-même si vous êtes sous Windows Vista. Le Service Pack 2 si vous êtes sous Windows XP Le Service Pack 1 si vous êtes Windows Server 2003 (334 Mo) Framework .net 2.0 (22 Mo) Microsoft PowerShell (1,7 Mo) |
| ||
auteur : Robin Lemesle | ||
Vous en avez marre de l'imprimante qui met une éternité pour imprimer ?
De cette file d'attente qui vous bloque votre impression ? Ok, alors ce script est fait pour vous :
|
| ||
auteur : Arnaud Petitjean | ||
Voici un article intéressant pour débuter en PowerShell sur les opérations de comparaison (if then else) et sur les boucles (for each).
Cet article a été écrit par l'équipe de Microsoft, les scriptingguys. Pour le consulter, cliquez ici. |
| |||||
auteur : Arnaud Petitjean | |||||
Attention : Pour que les exemples ci-dessous fonctionnent, PowerShell doit être au minimum en mode "RemoteSigned".
L'interpréteur de commandes PowerShell, comme toute commande, comprend aussi des paramètres. Pour les obtenir, tapez l'intérieur depuis l'invite de commande standard de Windows (le bon vieux cmd.exe quoi !) : powershell.exe /? Vous obtenez ceci :
La liste de paramètres est impressionnante me direz-vous ! Mais rassurez-vous, en usage interactif on ne se sert d'aucun de ces paramètres car on saisit directement les commandes à l'intérieur de la console. Cependant il est utile de savoir que vous pouvez lancer un script PowerShell directement sans entrer en mode interactif.
Imaginons que vous ayez développé un script PowerShell nommé Exemple1.ps1. Et bien vous pouvez l'exécuter en tapant la commande suivante :
ou
ou encore (mais non recommandé !)
Ce mode de fonctionnement est intéressant pour intégrer des “bouts de code” PowerShell à l'intérieur de vos scripts .bat existants. Comme par exemple dans le script de logon des utilisateurs ou bien encore pour lancer une tâche planifiée. Sachez également que par ce biais, PowerShell ne retourne que du texte et non plus des objets. Vous pouvez aussi, au lieu d'appeler un script, faire exécuter les commandes de votre choix avec le paramètre -command et en respectant bien la syntaxe suivante :
Vous pouvez donc sur le même schéma créer des tâches planifiées sur votre système qui lanceront des scripts PowerShell. |
| ||||||
auteur : Arnaud Petitjean | ||||||
Nous allons dans ce tutoriel créer un alias sur une commande externe, puis faire en sorte que cet alias reste lorsque nous quittons et relançons PowerShell.
Reprenons l'exemple du tuto sur l'envoi de données dans le presse-papier. L'utilitaire en question se nommait "clip.exe" et pour l'utiliser il fallait faire : ma-commande | clip Admettez que cette ligne de commande n'est pas très jolie, car non conforme à la syntaxe PowerShell. Nous allons donc créer un alias répondant à un nom cohérent :
L'alias Out-Clipboard est né !!! C'est de mon point de vue une commande qui faisait défaut à PowerShell. Pour l'utiliser, rien de plus simple :
Nous venons d'envoyer l'aide de la commande Set-Alias dans le presse-papier. Vous n'avez plus à aller dans votre éditeur préféré et faire Coller pour voir le résultat.
Maintenant que nous avons créé notre alias nous allons devoir faire en sorte de le sauvegarder sinon lorsque nous quitterons l'environnement PowerShell il sera perdu. C'est maintenant qu'intervient la notion de "profil utilisateur". Nous ferons plus tard un tutorial rien que sur les profils car il y a beaucoup à dire, mais pour le moment faisons les choses simplement. Tapez la commande suivante :
C:\Documents and Settings\Administrateur\Mes documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
La variable $profile contient le chemin par défaut où se situe votre profil. C'est à l'intérieur de ce fichier que nous allons créer notre alias. Par défaut, bien que la variable soit initialisée à la bonne valeur, le profil n'est pas créé. Pour le vérifier, tapez la commande :
La valeur retournée est à Faux, ce qui signifie que le fichier n'existe pas. Il faut donc bien créer notre profil. Pour se faire, tapez :
Le paramètre -force sert ici à forcer la création du répertoire WindowsPowerShell, car par défaut celui-ci n'existe pas non plus.
Maintenant nous allons ouvrir notre fichier profil :
Une fois le notepad ouvert, saisissez la ligne de commande que nous avons créée pour définir l'alias Out-Clipboard, sauvegardez le fichier et quittez le notepad. Maintenant, quittez PowerShell, relancez-le et testez notre alias pour vérifier qu'il existe toujours.
Attention : Pour que cela fonctionne, il ne faut pas que vous soyez en mode Restricted, mais au minimum en mode RemoteSigned. |
| ||
auteur : Robin Lemesle | ||
Voici un petit script qui permet de connecter un lecteur réseau
Vous pouvez l'inclure dans un script de logon par exemple Wink si bien sur vous avez installé PowerShell sur l'ensemble des machines de votre réseau.
|
| ||
auteur : Robin Lemesle | ||
Votre script nécessite l'envoi d'un email ?
Vous cherchez comment envoyer un email depuis Powershell ?
Pour envoyer des e-mails, PowerShell s'appuie sur la classe system.net.mail.smtpclient. En effet cette classe est nouvelle dans la version 2.0 du framework .NET. Elle permet à des applications d'envoyer des e-mails en employant le protocole SMTP (Simple Mail Transfer Protocol). Pour construire un e-mails en utilisant le client SMTP, vous devez spécifier quelques informations : le nom de la machine hôte (le serveur mail). L'adresse de l'émetteur. L'adresse du destinataire. Le message proprement dit. A noter que pour inclure une pièce jointe avec un E-mail, créer d'abord l'attachement en employant la classe d'attachement et ensuite ajouter la pièce jointe au message en employant la propriété de MailMessage.Attachments. Voici un exemple d'envoi de message avec une pièce jointe.
|
| ||
auteur : Robin Lemesle | ||
Voici comment utiliser les paramètres pour votre script
Ex : ./monscript.ps1 -path "c:\temp" -value 1
|
| |||
auteur : Robin Lemesle | |||
Voila de quoi enrichir votre profile.
Ces fonctions sont à enregistrer dans votre profile.ps1 qui est exécuté à chaque ouverture de session. Si vous avez créé un profile fun et bigarré, n'hésitez pas à le poster dans le forum Ajoutez un titre à votre fenêtre ajouter un titre avec la methode set_windowtitle
Fonction pour modifier le prompt
Rajoutez vos fonction pour ne pas avoir à réécrire vos fonctions à chaque session, enregistrez les dans votre profile.
Exemple :
|
| ||
auteur : Robin Lemesle | ||
Supposons que nous ne voulions pas avoir de sortie à l'écran lors de l'exécution d'une commande, mais que nous souhaitions plutôt obtenir le résultat dans le presse-papier.
Ceci nous permettrait de le coller dans l'application de notre choix. Jusqu'à présent la méthode la plus conventionnelle consistait à rediriger le résultat de la commande dans un fichier texte, et à ouvrir ce dernier pour en copier le contenu. Comment faire cela avec PowerShell ? Malheureusement il n'existe pas de cmdlet PowerShell, il va donc falloir ruser un peu. Je vais vous expliquer une méthode possible mais il en existe certainement d'autres... Il existe dans Windows Server 2003 une commande nommée Clip.exe (qui se trouve dans C:\windows\system32). Cette commande était auparavant uniquement disponible dans le Kit de Ressources Technique. Elle sert justement à faire ce que nous recherchons. Voici donc un exemple d'utilisation :
La liste des commandes PowerShell a été envoyée dans le presse-papier, vous n'avez donc plus qu'à ouvrir le bloc-notes, faire Coller et à admirer le résultat.
Pour les utilisateurs de Windows XP, il vous suffit de télécharger le fichier Clip.exe et de le mettre quelque part dans votre path ou tout simplement si vous n'avez pas d'idée dans C:\windows\system32. Les utilisateurs de Windows Vista quand à eux n'ont rien à faire, car comme sous Windows 2003, la commande Clip fait partie du système d'exploitation. |
| ||
auteur : Robin Lemesle | ||
Dans ce tutoriel nous allons vous apprendre comment récupérer des arguments passés en ligne de commande de façon à les réutiliser dans votre script.
Pour ce faire, nous allons utiliser la Variable automatique PowerShell « $Args » $args est en fait un tableau contenant tous les arguments passés : $args[0] vous renverra le 1er argument, args[1] le second et ainsi de suite. Exemple
faire :
$args[0] contiendra la chaîne « salut »
Petite application : On veut calculer uniquement la somme des entiers passés en argument
|
| ||
auteur : Robin Lemesle | ||
Si vous fouillez un peu dans Active Directory et que par exemple vous cherchez la date de dernier logon des utilisateurs, vous avez obtenu un chiffre hallucinant sur 64 bits !!!
Pas de panique, ce chiffre correspond aux dizaines de milliers de millisecondes écoulées depuis le 1er janvier 1601. Ne me demandez pas pourquoi !!! Et pas la peine d'utiliser votre calendrier perso, PowerShell est là !!! Supposons que "$lastlogon" soit votre entier sur 64 bit ?
|
| ||
auteur : Robin Lemesle | ||
Voici la ligne de commande pour créer un fichier
L'option force permet d'écraser le fichier existant si ce fichier existait auparavant
|
| ||
auteur : Arnaud Petitjean | ||
Tout simplement en allant visiter notre page de " liens ".
Vous y trouverez des liens vers le site officiel de Microsoft, ainsi que des blogs de passionnés. Cette page sera mise à jour au fur et à mesure |
| ||
auteur : Arnaud Petitjean | ||
Bonne nouvelle PowerShell est gratuit ! Disons plutôt que son prix est inclus dans celui de la licence de votre système.
|
| ||
auteur : Arnaud Petitjean | ||
Le principal reste celui de Microsoft (en anglais) : microsoft.public.windows.powershell
|
| ||
auteur : Arnaud Petitjean | ||
Non malheureusement ce n'est pas le cas ! D'ailleurs au jour d'aujourd'hui PowerShell pour Vista n'est toujours pas en version finale. Il semblerait que Microsoft éprouve quelques difficultés d'installation liées aux nouvelles règles de sécurité de Windows Vista.
|
| ||
auteur : Arnaud Petitjean | ||
Pour l'instant c'est un peu tôt pour se prononcer mais il y a de très fortes chances pour que ce soit le cas.
A priori PowerShell devrait être déployé sous forme de correctif (vu sa taille de 1,8 Mo) via Windows Update ou dans le prochain Service Pack. |
| ||
auteur : Arnaud Petitjean | ||
Il n'y a malheureusement pour l'instant que des livres américains
En attendant de vous mettre le notre sous la dent, en voici un certain nombre (classés par date de parution) : Professional Windows PowerShell, Wrox, Andrew Watt, 600p, Mars 2007 Windows PowerShell in action, Manning Publication, Bruce Payette, 456p, Janvier 2007 PowerShell TFM, Sapien Press, Don Jones & Jeffery Hicks, 470p, 2006 Microsoft Windows Powershell Programming for the Absolute Beginner, Course Technology PTR, Jerry Lee Ford Jr., 376p, Dec. 2006 Windows PowerShell Quick Reference, O'Reilly, Lee Holms, 120p, Sept. 2006 |
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.