ebook img

Windows (R) Powershell Unleashed PDF

350 Pages·2007·3.086 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Windows (R) Powershell Unleashed

e PoWinwdows®erShell c n e r é f é R Tyson Kopczynski Réseaux et télécom Programmation Génie logiciel Sécurité Système d’exploitation Windows ® PowerShell Tyson Kopczynski CampusPress a apporté le plus grand soin à la réalisation de ce livre afi n de vous fournir une information complète et fi able. Cependant, CampusPress n’assume de responsabilités, ni pour son utilisation, ni pour les contrefaçons de brevets ou atteintes aux droits de tierces personnes qui pourraient résulter de cette utilisation. Les exemples ou les programmes présents dans cet ouvrage sont fournis pour illustrer les descript ions théoriques. Ils ne sont en aucun cas destinés à une utilisation commerciale ou professionnelle. CampusPress ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages de quelque nature que ce soit pouvant résulter de l’utilisation de ces exemples ou programmes. Tous les noms de produits ou marques cités dans ce livre sont des marques déposées par leurs pro priétaires respectifs. Publié par CampusPress Titre original : Windows® PowerShell Unleashed 47 bis, rue des Vinaigriers 75010 PARIS Traduction : Hervé Soulard Tél. : 01 72 74 90 00 ISBN original : 978-0-672-32953-1 Réalisation pao : Léa B. Copyright © 2007 by Sams Publishing All rights reserved. ISBN : 978-2-7440-4015-3 Copyright© 2009 Pearson Education France Tous droits réservés Aucune représentation ou reproduction, même partielle, autre que celles prévues à l’article L. 122-5 2˚ et 3˚ a) du code de la propriété intellectuelle ne peut être faite sans l’autorisation expresse de Pearson Education France ou, le cas échéant, sans le respect des modalités prévues à l’article L. 122-10 dudit code. Table des matières Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Notre public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Organisation de ce livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Conventions typographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Partie I. Introduction à PowerShell Chapitre 1 Introduction aux shells et à PowerShell . . . . . . . . . . . . . . . . . . . . . . . . 7 Rôle du shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Historique des shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Arrivée de PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Chapitre 2 Les fondamentaux de PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Avant de commencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Accéder à PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Comprendre l’interface en ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Comprendre les applets de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Quelques applets de commande utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Comprendre les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Comprendre les alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Séquences d’échappement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Comprendre les portées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Premier script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 IV Table des matières Windows PowerShell Chapitre 3 Présentation avancée de PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Orientation objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Comprendre les fournisseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Comprendre les erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Gérer les erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Profi ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Comprendre la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Chapitre 4 Signer du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Qu’est-ce que la signature du code ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Obtenir un certifi cat de signature du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Signer des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Vérifi er des signatures numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Distribuer du code signé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Chapitre 5 Suivre les bonnes pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Développer des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Concevoir des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Sécuriser des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Utiliser les standards d’écriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Partie II. Appliquer ses connaissances à PowerShell Chapitre 6 PowerShell et le système de fi chiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Gérer le système de fi chiers depuis WSH et PowerShell . . . . . . . . . . . . . . . . . . . . 146 Manipuler les autorisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 De VBScript à PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Table des matières Windows PowerShell V Chapitre 7 PowerShell et le Registre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Gérer le Registre depuis WSH et PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 De VBScript à PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Chapitre 8 PowerShell et WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Comparer l’utilisation de WMI dans WSH et dans PowerShell . . . . . . . . . . . . . . 207 De VBScript à PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Chapitre 9 PowerShell et Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Comparer l’utilisation d’ADSI dans WSH et dans PowerShell . . . . . . . . . . . . . . . 231 De VBScript à PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Partie III. Utiliser PowerShell pour les besoins d’automation Chapitre 10 Utiliser PowerShell en situation réelle . . . . . . . . . . . . . . . . . . . . . . . . 265 Le script PSShell.ps1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Le script ChangeLocalAdminPassword.ps1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Chapitre 11 Administrer Exchange avec PowerShell . . . . . . . . . . . . . . . . . . . . . . 293 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Exchange Management Shell (EMS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Le script GetDatabaseSizeReport.ps1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Le script GetEvent1221Info.ps1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Le script ProvisionExchangeUsers.ps1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 À propos de l’auteur Avec plus de neuf années d’expérience dans le domaine informatique, Tyson Kopczynski est devenu un spécialiste d’Active Directory, des stratégies de groupe, des scripts Windows, de Windows Rights Management Services, de PKI et de la sécurité des technologies de l’infor- mation. Il a contribué à l’écriture de livres tels que Microsoft Internet Security and Acceleration (ISA) Server 2004 Unleashed et Microsoft Windows Server 2003 Unleashed (R2 Edition). Par ailleurs, il a écrit plusieurs articles techniques et des guides détaillés sur les différentes technologies qu’il maîtrise. En tant que consultant pour Convergent Computing (CCO), Tyson a pu travailler avec la nouvelle génération de technologies Microsoft depuis leur début et a joué un rôle essentiel dans le développement des pratiques d’écriture de scripts. Tyson est également titulaire de nombreuses certifi cations en sécurité, dont GIAC Security Essentials Certifi cation (GSEC), Microsoft Certifi ed Systems Engineer (MCSE) Security, CompTIA Security+ et GIAC Certifi ed Incident Handler (GCIH). Introduction Lorsque j’ai commencé l’écriture de Windows PowerShell, j’étais en train de lire un ouvrage sur l’infrastructure à clé publique (PKI, Public Key Infrastructure). Les informations de fond et de référence sur PKI étaient certes très intéressantes mais il manquait des détails sur la mise en application de cette infrastructure dans un environnement réel. En lisant bon nombre de livres techniques, j’ai souvent regretté l’absence de présentation pratique. C’est pourquoi j’ai décidé d’aborder cet ouvrage sur PowerShell de manière différente de la plupart des livres techniques habituels. Vous lisez les résultats de ce choix. Bien que ce livre contienne des informations de référence détaillées sur PowerShell, j’ai essayé de montrer aux lecteurs comment ils pouvaient employer cet outil pour répondre à leurs besoins précis. Cette approche n’est sans doute pas nouvelle ni révolutionnaire, mais j’espère qu’elle vous apportera une vue unique sur l’un des futurs produits les plus impressionnants de Microsoft. Cette dernière phrase n’est en aucun cas une publicité pour Microsoft. L’équipe de PowerShell a réellement créé un interpréteur de commandes (shell) agréable, simple, amusant et, à n’en pas douter, puissant. Je suis impatient de connaître ce que Microsoft a en réserve pour PowerShell et dans quels produits il sera utilisé. Notre public Cet ouvrage est destiné aux administrateurs système de niveau intermédiaire, qui ont investi du temps et de l’énergie à apprendre l’écriture de scripts Windows et qui souhaitent convertir cette compétence en connaissances PowerShell, tout en voyant comment il peut répondre à leurs besoins réels. Il a été écrit afi n que quiconque possédant une expérience des scripts puisse comprendre les objectifs de PowerShell et son utilisation, mais il n’en est pas un guide complet. Vous devez le voir comme une ressource permettant de vous apprendre à exploiter PowerShell dans votre propre environnement. Sa structure refl ète donc cet objectif en incluant de nombreux exemples de commandes et de scripts opérationnels. 2 Window s PPoowweerrSShheellll Organisation de ce livre Cet ouvrage est divisé en trois parties : n Partie I, "Introduction à PowerShell". Cette partie présente PowerShell et son utilisation, explique pourquoi PowerShell est né, décrit son utilisation générale, détaille la signature de code et établit les meilleures pratiques PowerShell. n Partie II, "Appliquer ses connaissances à PowerShell". Cette partie explique point à point comment exploiter ses connaissances en écriture de scripts Windows pour apprendre le développement de scripts PowerShell. Elle traite de sujets comme la manipulation du système de fi chiers de Windows, le Registre, WMI (Windows Management Instrumenta- tion) et ADSI (Active Directory Services Interfaces). Pour vous aider, elle propose des exemples de tâches d’automation et des scripts opérationnels, tant en VBScript qu’en PowerShell. n Partie III, "Utiliser PowerShell pour les besoins d'automation". Cette partie a pour objec- tif d’aller plus loin sur l’utilisation de PowerShell dans la gestion de systèmes. Elle décrit comment employer PowerShell pour répondre aux besoins de sécurité, automatiser les modifi cations sur de nombreux systèmes et gérer Exchange Server 2007. Conventions typographiques Les commandes, les scripts et tout ce qui a trait au code sont présentés dans une police parti- culière à chasse constante. Le texte en gras indique la défi nition d’un terme. L’italique est utilisé pour désigner des variables et parfois pour une mise en exergue. Les lettres majuscules et minuscules, les noms et la structure sont utilisés de manière cohérente afi n que les exem- ples de commandes et de scripts soient plus lisibles. Par ailleurs, vous rencontrerez des cas où des commandes ou des scripts n’ont pas été totalement optimisés. Ce choix est volontaire, car il facilite la compréhension de ces exemples et se conforme aux pratiques encourageant une meilleure lisibilité du code. Pour plus de détails sur la présentation, les conventions et les pratiques employées pour les commandes et les scripts dans ce livre, consultez le Chapitre 5, "Suivre les bonnes pratiques". In troduction 3 Voici les autres conventions typographiques de cet ouvrage1 : Zones de code en noir Ces zones de code contiennent des commandes à exécuter dans une session PowerShell ou Bash. Zones de code en gris Ces zones de code contiennent le code source de scripts, de fi chiers de confi guration ou d’autres éléments qui ne sont pas exécutés directement dans une session shell. ATTENTION Les avertissements signalent des actions à éviter. INFO Ces notes proposent des informations supplémentaires sur le sujet en cours. 1. N.d.T. : Dans les zones de code, les césures sont reproduites dans le livre telles qu’elles apparaissent à l’écran. En revanche, nous avons pris le parti de corriger les éventuelles fautes d’orthographe.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.