La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Scripting Arnaud Alcabez alcabeza@msn.com Microsoft Most Valuable Professional Exchange Server Responsable BU Infrastructures Microsoft, Devoteam Solutions.

Présentations similaires


Présentation au sujet: "Scripting Arnaud Alcabez alcabeza@msn.com Microsoft Most Valuable Professional Exchange Server Responsable BU Infrastructures Microsoft, Devoteam Solutions."— Transcription de la présentation:

1 Scripting Arnaud Alcabez Microsoft Most Valuable Professional Exchange Server Responsable BU Infrastructures Microsoft, Devoteam Solutions Président du Groupe des Utilisateurs Francophones de Microsoft Exchange Server

2 Agenda Introduction à Windows PowerShell
Présentation de Windows PowerShell Définition : Qu’est-ce que Monad ? Historique Installation de Windows PowerShell et Exchange Management Shell Démonstrations Windows PowerShell et Exchange Shell Management Essentiels de Windows PowerShell Cmdlets, Variables, Fournisseurs, Pipelines, Réflexion, EMS Références et documentations

3 L’administration représente 65.9% du coût total du système
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

4 Réponse : Monad 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 PowerShell, 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.

5 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 « R2 ». 19/08/05, avant le PDC 2005, Jeffrey Snover explique l’architecture de Monad lors de deux sessions sur Channel9, le blog des développeurs Microsoft. Liens : Monad Demonstrated : More talking about Monad : 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 PowerShell 14 /11/06, Windows PowerShell 1.0 est disponible Lien : 16/12/06 , Exchange Server 2007 est disponible avec Windows PowerShell Cmdlets Exchange sous le nom d’Exchange Management Shell Lien :

6 Architecture Exchange Server 2007
GUI Setup CLI WinForms WinForms ADO.Net Early-bound objs PowerShell / Monad Data Provider PowerShell / Monad Engine Exchange cmdlets Configuration Data Access Process boundary AD MAPI Registre MetaBase

7 Architecture Exchange Shell Management

8 Intégration Windows PowerShell
GUI Cmd VS

9 Qu’est ce que PowerShell (Exchange Shell Management)
Scénario Aujourd’hui Demain Bénéfices MSH GUI Shell MMC MMC with snap-ins layered on MSH-Monad GUI-Cmd parity Auto script creation (V2) Command Shell CMD SH CSH KSH MSH-Monad CMD and UNIX shell parity Command consistency Namespaces as Drives (e.g. FS, Reg, WMI, AD, Certs, etc) Command Scripting CMD scripting Richer language Better text utilities COM Scripting WSH VBScript Jscript Jscript (.net) MSH-Monad Object utilities Common access to COM, XML, .NET, ADO, WMI, ADSI

10 Bénéfices de Windows PowerShell
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

11 Interface d’Exchange Management Console
Toutes les commandes d’Exchange Management Console sont exécutées en PowerShell

12 Interface de Windows PowerShell

13 Qualités du langage Windows PowerShell
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

14 Comparaison des scripts Exchange 2003 et Exchange 2007

15 Syntaxe du langage Windows PowerShell
Verbe Nom Objet Argument Msh> Get-mailbox –Server “x64-e2k3-0001” Name Alias ServerName ProhibitSendQuota User1 User1 x64-e2k unlimited User2 User2 x64-e2k unlimited Commande Paramètre Nom des propriétés Valeurs des propriétés

16 Syntaxe du langage Windows PowerShell
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

17 Fondamentaux PowerShell – Cmdlets

18 Fondamentaux PowerShell – Variables

19 Fondamentaux PowerShell – Providers

20 Fondamentaux PowerShell – Pipeline

21 Fondamentaux PowerShell – Reflection .NET

22 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 PowerShell Cliquez sur Démarrer, Programme, puis sur Windows PowerShell 1.0 Cliquez sur Windows PowerShell Une fois l’interpréteur de commande interactif ouvert, tapez la commande suivante : Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

23 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” 

24 Présenter le format des données en sortie
Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size*

25 Présenter le format des données en sortie
Get-Mailbox –Database Research | Format-Table Name, ProhibitSendQuota, Database -Warp

26 Windows PowerShell - Exemples
Mettre un quota de Ko pour l’émission de tous les utilisateurs ayant une BAL présents dans la DL “RemoteUsers” Supprimer les groupes de stockage contenant le mot “temp”, avec une demande de confirmation Déplacer tous les utilisateurs du serveur LYON vers le serveur CORP dans la base de données nommée “DB1” Get-DistributionGroup “RemoteUsers” | Get-DistributionGroupMember | Set-Mailbox –ProhibitSendQuota 1000 Get-StorageGroup | where { $_.Name –imatch “temp” } | Remove-StorageGroup –confirm Get-Mailbox –server LYON| mov box –targetDatabase “CORP\DB1”

27 Windows PowerShell - Exemples
Création de 10 utilisateurs et de leurs boîtes aux lettres 1..10 | ForEach { Net User “User$_“ MyPassword=01 /ADD /Domain; Enabl box “User$_“ –Database “NomBanqueInformation“ } Explications : La commande 1..10 génère les nombres entiers de 1 à 10 et les transmet par le pipeline à chaque Cmdlet ForEach. Le Cmdlet ForEach 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 Enabl box crée une nouvelle boîte aux lettres dans la base appelée « NomBanqueInformation » 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.

28 Windows PowerShell - 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 les propriétés « Name », « Database », comme toutes les propriétés qui contiennent la chaîne « quota » sont requises.

29 Windows PowerShell - Exemples
Définir des quotas Get-User –Filter { Title –Like “*Manager*“} –RecipientTypeDetails UserMailbox | Set-Mailbox –ProhibitSendQuota 600MB 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 RecipientTypeDetails permet de spécifier les objets qui possèdent une boîte aux lettres (avec UserMailbox) 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é ProhibitSendQuota de chaque boîte aux lettres à 600 Mo.

30 Windows PowerShell - Exemples
Suppression de toutes les boîtes aux lettres d’une DL Get-DistributionGroupMember “Marketing2006” | Where { $_.RecipientType –Eq “UserMailbox” } | Remov box -WhatIf Explications : Le Cmdlet Get-DistributionGroupMember récupère les objets destinataires qui sont membres du groupe de distribution « Marketing2006 ». Cependant, il faut exclure tous les types de destinataires sauf ceux qui correspondent à des boîtes aux lettres « UserMailbox ». Néanmoins, contrairement à d'autres Cmdlets, le Cmdlet Get-DistributionGroupMember 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 RecipientType de « UserMailbox » sont envoyés au Cmdlet Remov box. Ce Cmdlet supprime l'objet utilisateur Active Directory et marque la boîte aux lettres pour élimination. Lorsque le paramètre WhatIf est utilisé, le Cmdlet Remov box affiche un texte similaire à ce qui suit : What if : Removing the Mailbox “domain.local/Users/User10“ will remove the Windows user object and mark the mailbox in the database for removal.

31 Références sur Windows PowerShell
Liste des publications Emplacement Windows PowerShell Page d’accueil Windows PowerShell Téléchargement et Windows PowerShell Présentation et Windows PowerShell Démonstrations et et Windows PowerShell Formations Windows PowerShell Script Center Windows PowerShell Blog  et Windows PowerShell Wiki et Exchange Management Shell Présentation Exchange Management Shell Démonstrations  Exchange Management Shell Guide de référence rapide 

32 Autres informations Signer vos scripts PowerShell (Get/Set-ExecutionPolicy) Utiliser makecert.exe du .NET Framework SDK n/software NetCmdlets Beta 2 PowerGadgets PowerShell Remoting

33 Autres informations (2)
Windows Vista SP1 « Fiji » intégrera PowerShell (Prévu pour fin 2007) Communauté Francophone PowerShell Outil : PowerShell Analyzer PowerShell Analyzer PowerShell IDE The PowerShell Guy (MVP PowerShell) Merci pour votre participation et vos évaluations

34 La référence technique pour les IT Pros : La référence technique
technet.microsoft.com 3/31/2017 6:36 AM La référence technique pour les développeurs : msdn.microsoft.com Abonnement TechNet Plus : Versions d’éval + 2 incidents support Visual Studio 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 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

35 Votre potentiel, notre passion TM
3/31/2017 6:36 AM Votre potentiel, notre passion TM © 2007 Microsoft France © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Télécharger ppt "Scripting Arnaud Alcabez alcabeza@msn.com Microsoft Most Valuable Professional Exchange Server Responsable BU Infrastructures Microsoft, Devoteam Solutions."

Présentations similaires


Annonces Google