introduction à windows powershell présentation de windows powershell définition : quest-ce que...
TRANSCRIPT
Introduction à Windows PowerShellIntroduction à Windows PowerShellPrésentation de Windows PowerShellPrésentation de Windows PowerShell
Définition : Qu’est-ce que Monad ?Définition : Qu’est-ce que Monad ?HistoriqueHistoriqueInstallation de Windows PowerShell et Exchange Management Installation de Windows PowerShell et Exchange Management ShellShell
Démonstrations Windows PowerShell et Exchange Shell Démonstrations Windows PowerShell et Exchange Shell ManagementManagement
Essentiels de Windows PowerShellEssentiels de Windows PowerShellCmdlets, Variables, Fournisseurs, Pipelines, Réflexion, EMSCmdlets, Variables, Fournisseurs, Pipelines, Réflexion, EMS
Références et documentationsRéférences et documentations
L’administration représente 65.9% du coût total du système
-Osterman Research
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
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.
17/06/04, 1ère présentation de Monad par Jeffrey Snover20/06/05, Monad Beta 1 est disponible05/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 : http://channel9.msdn.com/ShowPost.aspx?PostID=25506 Monad Demonstrated : http://channel9.msdn.com/ShowPost.aspx?PostID=25915#25915 More talking about Monad : http://channel9.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 Monad10/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 PowerShell14 /11/06, Windows PowerShell 1.0 est disponible
Lien : http://www.microsoft.com/presspass/features/2006/nov06/11-14Servers.mspx 16/12/06 , Exchange Server 2007 est disponible avec Windows PowerShell 1.0 + Cmdlets Exchange sous le nom d’Exchange Management Shell
Lien : http://www.microsoft.com/downloads/details.aspx?familyid=1dc0f61b-d30f-44a2-882e-12ddd4ee09d2&displaylang=en
PowerShell / Monad EnginePowerShell / Monad Engine
Exchange cmdletsExchange cmdlets
Configuration Data AccessConfiguration Data Access
Process boundary Process boundary
Early-bound objsEarly-bound objsWinFormsWinForms
ADO.NetADO.Net
PowerShell / Monad Data ProviderPowerShell / Monad Data Provider
WinFormsWinForms
CLICLISetupSetup
GUIGUI
ADAD RegistreRegistre MAPIMAPI MetaBaseMetaBase
GUICmd
VS
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 CMDSHCSHKSHMSH-Monad
CMD and UNIX shell parity Command consistency Namespaces as Drives (e.g.
FS, Reg, WMI, AD, Certs, etc)
Command Scripting
CMD scripting CMD scriptingMSH-Monad
Richer language Better text utilities
COM Scripting WSH VBScript Jscript
WSH VBScript Jscript
Jscript (.net)MSH-Monad
Richer language Object utilities Common access to COM,
XML, .NET, ADO, WMI, ADSI
Interface en ligne de commandeInterface en ligne de commandeCanalisation de données entre commandesCanalisation de données entre commandesPrise en charge des données structuréesPrise en charge des données structuréesPrise en charge étendue des scriptsPrise en charge étendue des scriptsSureté des scriptsSureté des scriptsCommandes Cmd.exe Commandes Cmd.exe Scripts approuvésScripts approuvésPersonnalisation de profilPersonnalisation de profilPrise en charge étendue d’interfacePrise en charge étendue d’interface
Toutes les commandes d’Exchange
Management Console sont exécutées en
PowerShell
Interface en ligne de commandeInterface en ligne de commandeCanalisation de données entre commandesCanalisation de données entre commandesPrise en charge des données structuréesPrise en charge des données structuréesPrise en charge étendue des scriptsPrise en charge étendue des scriptsSureté des scriptsSureté des scriptsCommandes Cmd.exe Commandes Cmd.exe Scripts approuvésScripts approuvésPersonnalisation de profilPersonnalisation de profilPrise en charge étendue d’interfacePrise en charge étendue d’interface
Msh> Get-mailbox –Server “x64-e2k3-0001”
Name Alias ServerName ProhibitSendQuota
---- ----- ---------- -----------------
User1 User1 x64-e2k3-0001 unlimited
User2 User2 x64-e2k3-0001 unlimited
NomNomNomNom
Nom des propriétésNom des propriétésNom des propriétésNom des propriétés
Valeurs des propriétésValeurs des propriétés
CommandeCommande ParamètreParamètre
VerbeVerbeVerbeVerbe ObjetObjetObjetObjet ArgumentArgumentArgumentArgument
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
Get-excommand | out-file c:\excommand.txt
•Ouvrir Exchange Management Shell depuis le menu Programmes•Cliquez sur Démarrer, Programmes, puis sur Microsoft Exchange Server 2007•Cliquez sur Exchange Management Shell
•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 1
•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
•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
Procédure 2
Get-Help Set-Mailbox –Parameter “quota“Get-Help Set-Mailbox –Parameter “quota“
Get-Help –Role “Mailbox” Get-Help –Component “Recipient”Get-Help –Functionality “Server”
Get-Help –Role “Mailbox” Get-Help –Component “Recipient”Get-Help –Functionality “Server”
Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size*Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size*
Get-Mailbox –Database Research | Format-Table Name, ProhibitSendQuota, Database -WarpGet-Mailbox –Database Research | Format-Table Name, ProhibitSendQuota, Database -Warp
Mettre un quota de 1.000 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-Mailbox –server LYON| move-mailbox –targetDatabase Get-Mailbox –server LYON| move-mailbox –targetDatabase “CORP\DB1”“CORP\DB1”Get-Mailbox –server LYON| move-mailbox –targetDatabase Get-Mailbox –server LYON| move-mailbox –targetDatabase “CORP\DB1”“CORP\DB1”
Get-StorageGroup | where { $_.Name –imatch “temp” } | Get-StorageGroup | where { $_.Name –imatch “temp” } | Remove-StorageGroup –confirmRemove-StorageGroup –confirmGet-StorageGroup | where { $_.Name –imatch “temp” } | Get-StorageGroup | where { $_.Name –imatch “temp” } | Remove-StorageGroup –confirmRemove-StorageGroup –confirm
Get-DistributionGroup “RemoteUsers” | Get-Get-DistributionGroup “RemoteUsers” | Get-DistributionGroupMember |DistributionGroupMember |Set-Mailbox –ProhibitSendQuota 1000Set-Mailbox –ProhibitSendQuota 1000
Get-DistributionGroup “RemoteUsers” | Get-Get-DistributionGroup “RemoteUsers” | Get-DistributionGroupMember |DistributionGroupMember |Set-Mailbox –ProhibitSendQuota 1000Set-Mailbox –ProhibitSendQuota 1000
Création de 10 utilisateurs et de leurs boîtes aux lettres
1..10 | ForEach { Net User “User$_“ MyPassword=01 /ADD /Domain; Enable-Mailbox “User$_“ –Database “NomBanqueInformation“ }1..10 | ForEach { Net User “User$_“ MyPassword=01 /ADD /Domain; Enable-Mailbox “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 Enable-Mailbox 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.
Lister les boîtes aux lettres et certaines propriétés
Get-Mailbox | Format-Table Name, Database, *quota*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.
Définir des quotas
Get-User –Filter { Title –Like “*Manager*“} –RecipientTypeDetails UserMailbox | Set-Mailbox –ProhibitSendQuota 600MBGet-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.
Suppression de toutes les boîtes aux lettres d’une DL
Get-DistributionGroupMember “Marketing2006” | Where { $_.RecipientType –Eq “UserMailbox” } | Remove-Mailbox -WhatIfGet-DistributionGroupMember “Marketing2006” | Where { $_.RecipientType –Eq “UserMailbox” } | Remove-Mailbox -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 Remove-Mailbox. 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 Remove-Mailbox 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.
Liste des publications EmplacementWindows PowerShell Page d’accueil http://www.microsoft.com/windowsserver2003/technologies/management/
powershell/default.mspx
Windows PowerShell Téléchargement http://www.microsoft.com/technet/scriptcenter/topics/msh/download.mspx ethttp://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx
Windows PowerShell Présentation http://msevents.microsoft.com/cui/eventdetail.aspx?eventID=1032277850&Culture=en-US et http://msevents.microsoft.com/cui/eventdetail.aspx?eventID=1032277852&Culture=en-US
Windows PowerShell Démonstrations http://www.microsoft.com/technet/scriptcenter/topics/msh/payette1.mspx ethttp://www.microsoft.com/technet/scriptcenter/topics/winpsh/payette2.mspx et http://www.microsoft.com/technet/scriptcenter/topics/winpsh/payette3.mspx
Windows PowerShell Formations http://www.microsoft.com/technet/scriptcenter/webcasts/ps.mspx
Windows PowerShell Script Center http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
Windows PowerShell Blog http://blogs.msdn.com/monad/ ethttp://blogs.msdn.com/PowerShell/
Windows PowerShell Wiki http://channel9.msdn.com/wiki/default.aspx/Channel9.WindowsPowerShellWiki et http://powershell.wiki.com/
Exchange Management Shell Présentation http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=1dc0f61b-d30f-44a2-882e-12ddd4ee09d2
Exchange Management Shell Démonstrations http://msexchangeteam.com/videos/9/general/entry428365.aspx
Exchange Management Shell Guide de référence rapide http://www.microsoft.com/downloads/details.aspx?FamilyId=01A441B9-4099-4C0F-B8E0-0831D4A2CA86&displaylang=en
Signer vos scripts PowerShell (Get/Set-ExecutionPolicy) Utiliser makecert.exe du .NET Framework SDK
n/software NetCmdlets Beta 2
PowerGadgets
PowerShell Remoting
http://www.microsoft.com/downloads/thankyou.aspx?familyId=1AEF6FCE-6E06-4B66-AFE4-9AAD3C835D3D&displayLang=enhttp://www.microsoft.com/downloads/thankyou.aspx?familyId=1AEF6FCE-6E06-4B66-AFE4-9AAD3C835D3D&displayLang=en
http://www.nsoftware.com/powershell/download.aspxhttp://www.nsoftware.com/powershell/download.aspx
http://www.powergadgets.com/tutorials/powershellTutorial.aspxhttp://www.powergadgets.com/tutorials/powershellTutorial.aspx
http://www.gotdotnet.com/Workspaces/releases/viewuploads.aspx?id=ce09cdaf-7da2-4f1c-bed3-f8cb35de5aeahttp://www.gotdotnet.com/Workspaces/releases/viewuploads.aspx?id=ce09cdaf-7da2-4f1c-bed3-f8cb35de5aea
Merci pour votre participation et vos évaluations
Windows Vista SP1 « Fiji » intégrera PowerShell(Prévu pour fin 2007)
http://www.powershell-scripting.com/http://www.powershell-scripting.com/
Communauté Francophone PowerShell
Outil : PowerShell Analyzer PowerShell Analyzer
PowerShell IDE
The PowerShell Guy (MVP PowerShell)
http://www.powershellanalyzer.com/http://www.powershellanalyzer.com/
http://www.powershell.com/http://www.powershell.com/
http://thepowershellguy.comhttp://thepowershellguy.com
S’informer S’informer - Un portail d’informations, des - Un portail d’informations, des événements, une newsletter bimensuelle événements, une newsletter bimensuelle personnaliséepersonnalisée
Se former - Se former - Des webcasts, des articles techniques, des Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos téléchargements, des forums pour échanger avec vos pairspairs
Bénéficier de services - Bénéficier de services - Des cursus de formations et Des cursus de formations et de certifications, des offres de support techniquede certifications, des offres de support technique
Visual Studio 2005 +Visual Studio 2005 +
Abonnement Abonnement MSDN MSDN Premium Premium
Abonnement Abonnement TechNet TechNet Plus :Plus :
Versions d’éval + 2 incidents Versions d’éval + 2 incidents supportsupport
© 2007 Microsoft France
Votre potentiel, notre passion TM