Scripting Arnaud Alcabez alcabezamsn com Microsoft Most Valuable
Scripting Arnaud Alcabez alcabeza@msn. com Microsoft Most Valuable Professional Exchange Server Responsable BU Infrastructures Microsoft, Devoteam Solutions Président du Groupe des Utilisateurs Francophones de Microsoft Exchange Server
Agenda Introduction à Windows Power. Shell Présentation de Windows Power. Shell Définition : Qu’est-ce que Monad ? Historique Installation de Windows Power. Shell et Exchange Management Shell Démonstrations Windows Power. Shell et Exchange Shell Management Essentiels de Windows Power. Shell Cmdlets, Variables, Fournisseurs, Pipelines, Réflexion, EMS Références et documentations
Situation IT Pro La messagerie est une application critique pour l’entreprise Les systèmes de messagerie sont trop complexes et coûteuses Les tâches d’administration sont jugées trop pénibles et pas assez automatisées L’administration représente 65. 9% du coût total du système -Osterman Research
Réponse : Monad vient d'une philosophie appelée Monadisme, une forme d'idéalisme pluraliste créée au 18ème siècle par le philosophe G. W. Leibniz, qui a également co-inventé le calcul moderne. Le Monadisme part de l'idée que le monde est une agrégation de simples substances dont le plus petit composant est le Monad). L'équipe de développement, conduite par Jeffrey Snover, l'architecte en chef de Windows Power. Shell, est restée concentrée sur ce concept de composition, qu'on retrouve dans la syntaxe, dans les conventions de nommage, et dans beaucoup d'autres aspects du produit.
Historique d’Exchange Management Shell 17/06/04, 1ère présentation de Monad par Jeffrey Snover 20/06/05, Monad Beta 1 est disponible 05/08/05, un australien publie 5 exemples de codes à partir de la Beta 1 de Monad fonctionnant à l’instar d’un code malicieux. F-Secure & Symantec relèvent cette information et la rumeur naît à propos de la faille de sécurité potentielle que pourrait représenter Monad si ce langage était déployé sur toutes les plateformes Windows. Cette rumeur poussera Microsoft dans les jours qui suivent à confirmer que Monad ne sera finalement pas intégré nativement à Windows Vista et à Windows 2003 « R 2 » . 19/08/05, avant le PDC 2005, Jeffrey Snover explique l’architecture de Monad lors de deux sessions sur Channel 9, le blog des développeurs Microsoft. Liens : http: //channel 9. msdn. com/Show. Post. aspx? Post. ID=25506 Monad Demonstrated : http: //channel 9. msdn. com/Show. Post. aspx? Post. ID=25915#25915 More talking about Monad : http: //channel 9. msdn. com/Showpost. aspx? postid=127819 21/09/05, Monad Beta 2 est disponible. Exchange « 12 » est disponible dans les semaines suivantes et intègre Monad 10/01/06, Monad Beta 3 est disponible. 09/03/06, Monad Beta 3. 1 est disponible et annoncé proche de la RTM. 25/04/06, Le nom définitif de Monad est Windows Power. Shell 14 /11/06, Windows Power. Shell 1. 0 est disponible Lien : http: //www. microsoft. com/presspass/features/2006/nov 06/11 -14 Servers. mspx 16/12/06 , Exchange Server 2007 est disponible avec Windows Power. Shell 1. 0 + Cmdlets Exchange sous le nom d’Exchange Management Shell Lien : http: //www. microsoft. com/downloads/details. aspx? familyid=1 dc 0 f 61 b-d 30 f-44 a 2 -882 e 12 ddd 4 ee 09 d 2&displaylang=en
Architecture Exchange Server 2007 GUI Setup CLI Win. Forms ADO. Net Early-bound objs Power. Shell / Monad Data Provider Power. Shell / Monad Engine Exchange cmdlets Configuration Data Access Process boundary MAPI Registre AD Meta. Base
Architecture Exchange Shell Management
Intégration Windows Power. Shell GUI Cmd VS
Qu’est ce que Power. Shell (Exchange Shell Management) Scénario Aujourd’hui Demain Bénéfices MSH GUI Shell MMC with snap-ins layered on MSH-Monad Command Shell CMD SH CSH KSH MSH-Monad Command Scripting CMD scripting MSH-Monad COM Scripting WSH VBScript Jscript (. net) MSH-Monad GUI-Cmd parity Auto script creation (V 2) CMD and UNIX shell parity Command consistency Namespaces as Drives (e. g. FS, Reg, WMI, AD, Certs, etc) Richer language Better text utilities Richer language Object utilities Common access to COM, XML, . NET, ADO, WMI, ADSI
Bénéfices de Windows Power. Shell Interface en ligne de commande Canalisation de données entre commandes Prise en charge des données structurées Prise en charge étendue des scripts Sureté des scripts Commandes Cmd. exe Scripts approuvés Personnalisation de profil Prise en charge étendue d’interface
Interface d’Exchange Management Console Toutes les commandes d’Exchange Management Console sont exécutées en Power. Shell
Interface de Windows Power. Shell
Qualités du langage Windows Power. Shell Interface en ligne de commande Canalisation de données entre commandes Prise en charge des données structurées Prise en charge étendue des scripts Sureté des scripts Commandes Cmd. exe Scripts approuvés Personnalisation de profil Prise en charge étendue d’interface
Comparaison des scripts Exchange 2003 et Exchange 2007
Syntaxe du langage Windows Power. Shell Verbe Nom Msh> Get-mailbox Objet Argument –Server “x 64 -e 2 k 3 -0001” Commande Paramètre Nom des propriétés Name ---- Alias ----- Server. Name ----- User 1 User 2 x 64 -e 2 k 3 -0001 Valeurs des propriétés Prohibit. Send. Quota --------unlimited
Syntaxe du langage Windows Power. Shell Get-excommand | out-file c: excommand. txt Verbes – – – Update New Get Remove Set Add Enable Mount Dismount Disable Test Noms (examples) – – – Mailboxdatabase Storagegroup Sendconnector Umautoattendant Transportagent Mobiledevice Systemhealth Servicehealth Journalrule MAPIconnectivity Distributiongroup
Fondamentaux Power. Shell – Cmdlets
Fondamentaux Power. Shell – Variables
Fondamentaux Power. Shell – Providers
Fondamentaux Power. Shell – Pipeline
Fondamentaux Power. Shell – Reflection. NET
Exchange Management Shell – Où commencer ? Procédure 1 • Ouvrir Exchange Management Shell depuis le menu Programmes • Cliquez sur Démarrer, Programmes, puis sur Microsoft Exchange Server 2007 • Cliquez sur Exchange Management Shell Procédure 2 • Ajout du composant logiciel enfichable Exchange Management Shell depuis Windows Power. Shell • Cliquez sur Démarrer, Programme, puis sur Windows Power. Shell 1. 0 • Cliquez sur Windows Power. Shell • Une fois l’interpréteur de commande interactif ouvert, tapez la commande suivante : • Add-PSSnapin Microsoft. Exchange. Management. Power. Shell. Admin
Exchange Management Shell – Obtenir de l’aide? Get-Help Set-Mailbox –Parameter “quota“ Get-Help –Role “Mailbox” Get-Help –Component “Recipient” Get-Help –Functionality “Server”
Présenter le format des données en sortie Get-Distribution. Group | Format-List Name, *Only. From, Primary. Smtp. Address, *Size*
Présenter le format des données en sortie Get-Mailbox –Database Research | Format-Table Name, Prohibit. Send. Quota, Database -Warp
Windows Power. Shell - Exemples Mettre un quota de 1. 000 Ko pour l’émission de tous les utilisateurs ayant une BAL présents dans la DL “Remote. Users” Get-Distribution. Group “Remote. Users” | Get. Distribution. Group. Member | Set-Mailbox –Prohibit. Send. Quota 1000 Supprimer les groupes de stockage contenant le mot “temp”, avec une demande de confirmation Get-Storage. Group | where { $_. Name –imatch “temp” } | Remove-Storage. Group –confirm Déplacer tous les utilisateurs du serveur LYON vers le serveur CORP dans la base de données nommée “DB 1” Get-Mailbox –server LYON| move-mailbox –target. Database “CORPDB 1”
Windows Power. Shell - Exemples Création de 10 utilisateurs et de leurs boîtes aux lettres 1. . 10 | For. Each { Net User “User$_“ My. Password=01 /ADD /Domain; Enable-Mailbox “User$_“ –Database “Nom. Banque. Information“ } Explications : La commande 1. . 10 génère les nombres entiers de 1 à 10 et les transmet par le pipeline à chaque Cmdlet For. Each. Le Cmdlet For. Each agit sur chaque objet à sa réception et exécute les commandes entre accolades { } pour chaque objet. La commande Net User crée un nouvel utilisateur de domaine et le Cmdlet Enable-Mailbox crée une nouvelle boîte aux lettres dans la base appelée « Nom. Banque. Information » sur le serveur local. Le point-virgule sépare les deux commandes afin qu'elles puissent être placées sur la même ligne de commande. La variable $_ est une variable spéciale qui contient la valeur de l'objet qui se trouve dans le pipeline. Dans cet exemple, la variable $_ contient le nombre entier qui se trouve dans le pipeline.
Windows Power. Shell - Exemples Lister les boîtes aux lettres et certaines propriétés Get-Mailbox | Format-Table Name, Database, *quota* Explications : Le Cmdlet Get-Mailbox renvoie chaque boîte aux lettres, puis transfère la sortie de chaque objet de boîte aux lettres au Cmdlet Format-Table. Par défaut, le Cmdlet Format-Table affiche toutes les propriétés renvoyées. Ici seules propriétés « Name » , « Database » , comme toutes les propriétés qui contiennent la chaîne « quota » sont requises.
Windows Power. Shell - Exemples Définir des quotas Get-User –Filter { Title –Like “*Manager*“} –Recipient. Type. Details User. Mailbox | Set-Mailbox –Prohibit. Send. Quota 600 MB Explications : Le Cmdlet Get-User renvoie tous les objets utilisateurs contenus dans Active Directory, y compris les utilisateurs non autorisés à utiliser la messagerie électronique. Afin de récupérer les objets utilisateurs que le Cmdlet Set-Mailbox peut utiliser, il faut filtrer le résultant de manière à ne renvoyer que les objets utilisateurs Active Directory qui sont des utilisateurs autorisés à utiliser la messagerie. Le paramètre Recipient. Type. Details permet de spécifier les objets qui possèdent une boîte aux lettres (avec User. Mailbox) dans le cas présent. Il reste à récupérer les utilisateurs identifiés comme managers. Dans l’exemple, la propriété Title de chaque objet utilisateur Active Directory est renseignée. Nous nous servons de cette valeur pour déterminer les utilisateurs qui sont des managers à l'aide du paramètre Filter qui donne l'instruction au serveur de ne renvoyer que les objets Active Directory correspondant aux critères indiqués. Cette opération s'appelle le filtrage côté serveur. Une fois que vous avez défini un ensemble d'objets, celui-ci est transmis au Cmdlet Set-Mailbox, qui définit alors la propriété Prohibit. Send. Quota de chaque boîte aux lettres à 600 Mo.
Windows Power. Shell - Exemples Suppression de toutes les boîtes aux lettres d’une DL Get-Distribution. Group. Member “Marketing 2006” | Where { $_. Recipient. Type –Eq “User. Mailbox” } | Remove-Mailbox -What. If Explications : Le Cmdlet Get-Distribution. Group. Member récupère les objets destinataires qui sont membres du groupe de distribution « Marketing 2006 » . Cependant, il faut exclure tous les types de destinataires sauf ceux qui correspondent à des boîtes aux lettres « User. Mailbox » . Néanmoins, contrairement à d'autres Cmdlets, le Cmdlet Get-Distribution. Group. Member ne dispose pas du Cmdlet Filter, ce qui signifie qu'il ne peut pas effectuer le filtrage côté serveur (parce qu'ils n'y voient aucun avantage en termes de performance). Dans ce cas, vous pouvez utiliser le Cmdlet Where pour effectuer le filtrage côté client, ce qui récupère tous les objets et effectue le filtrage sur la machine cliente locale. Le Cmdlet Where ne transmet que les objets qui répondent aux critères qui sont spécifiés. Les objets qui ont un Recipient. Type de « User. Mailbox » sont envoyés au Cmdlet Remove-Mailbox. Ce Cmdlet supprime l'objet utilisateur Active Directory et marque la boîte aux lettres pour élimination. Lorsque le paramètre What. If est utilisé, le Cmdlet Remove-Mailbox affiche un texte similaire à ce qui suit : What if : Removing the Mailbox “domain. local/Users/User 10“ will remove the Windows user object and mark the mailbox in the database for removal.
Références sur Windows Power. Shell Liste des publications Windows Power. Shell Page d’accueil Windows Power. Shell Téléchargement Windows Power. Shell Présentation Windows Power. Shell Démonstrations Emplacement http: //www. microsoft. com/windowsserver 2003/technologies/management/powersh ell/default. mspx http: //www. microsoft. com/technet/scriptcenter/topics/msh/download. mspx et http: //www. microsoft. com/windowsserver 2003/technologies/management/powersh ell/download. mspx http: //msevents. microsoft. com/cui/eventdetail. aspx? event. ID=1032277850&Culture= en-US et http: //msevents. microsoft. com/cui/eventdetail. aspx? event. ID=1032277852&Culture= en-US http: //www. microsoft. com/technet/scriptcenter/topics/msh/payette 1. mspx et http: //www. microsoft. com/technet/scriptcenter/topics/winpsh/payette 2. mspx et http: //www. microsoft. com/technet/scriptcenter/topics/winpsh/payette 3. mspx Windows Power. Shell Formations Windows Power. Shell Script Center http: //www. microsoft. com/technet/scriptcenter/webcasts/ps. mspx Windows Power. Shell Blog http: //blogs. msdn. com/monad/ et http: //blogs. msdn. com/Power. Shell/ http: //channel 9. msdn. com/wiki/default. aspx/Channel 9. Windows. Power. Shell. Wiki et http: //powershell. wiki. com/ Windows Power. Shell Wiki http: //www. microsoft. com/technet/scriptcenter/hubs/msh. mspx Exchange Management Shell Présentation http: //www. microsoft. com/downloads/details. aspx? displaylang=fr&Family. ID=1 dc 0 f 61 b-d 30 f-44 a 2 -882 e-12 ddd 4 ee 09 d 2 Exchange Management Shell Démonstrations Exchange Management Shell Guide de référence rapide http: //msexchangeteam. com/videos/9/general/entry 428365. aspx http: //www. microsoft. com/downloads/details. aspx? Family. Id=01 A 441 B 9 -4099 -4 C 0 FB 8 E 0 -0831 D 4 A 2 CA 86&displaylang=en
Autres informations Signer vos scripts Power. Shell (Get/Set-Execution. Policy) Utiliser makecert. exe du. NET Framework SDK http: //www. microsoft. com/downloads/thankyou. aspx? family. Id=1 AEF 6 FCE-6 E 064 B 66 -AFE 4 -9 AAD 3 C 835 D 3 D&display. Lang=en n/software Net. Cmdlets Beta 2 http: //www. nsoftware. com/powershell/download. aspx Power. Gadgets http: //www. powergadgets. com/tutorials/powershell. Tutorial. aspx Power. Shell Remoting http: //www. gotdotnet. com/Workspaces/releases/viewuploads. aspx? id=ce 09 cdaf 7 da 2 -4 f 1 c-bed 3 -f 8 cb 35 de 5 aea
Autres informations (2) Windows Vista SP 1 « Fiji » intégrera Power. Shell (Prévu pour fin 2007) Communauté Francophone Power. Shell http: //www. powershell-scripting. com/ Outil : Power. Shell Analyzer http: //www. powershellanalyzer. com/ Power. Shell Analyzer Power. Shell IDE http: //www. powershell. com/ The Power. Shell Guy (MVP Power. Shell) http: //thepowershellguy. com Merci pour votre participation et vos évaluations
La référence technique pour les IT Pros : technet. microsoft. com Abonnement Tech. Net Plus : Versions d’éval + 2 incidents support La référence technique pour les développeurs : msdn. microsoft. com Visual Studio 2005 + Abonnement MSDN Premium S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique
Votre potentiel, notre passion TM © 2007 Microsoft France
- Slides: 35