Download - Retour d'expérience sur PowerShell
Donnez votre avis !
Depuis votre smartphone, sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toutes les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les TechDays
http://notes.mstechdays.fr
Retour d’expérience
PowershellPascal Sauliere
Microsoft
Stéphane Lepertel
Avanade
Entreprise / IT / Serveurs / Réseaux / Sécurité
Hashtag
Site web
• Joint Venture d’Accenture et Microsoft, la mission d’Avanade consiste à aider les entreprises à optimiser leurs investissements informatiques et à développer des solutions complètes, génératrices de bénéfices concrets, autour des technologies Microsoft.
• Avanade compte aujourd’hui plus de 17.000 collaborateurs répartis sur 24 pays.Le chiffre d’affaires 2012 est de 1,3 milliard $US
• Une expertise unique fondée sur un investissement permanent en partenariat avec Microsoft : Avanade est notamment n 1 en nombre de certifications par employé (MCPD, MCTS, MCITP), dispose de 29 Microsoft Most Valued Professionals et 14 elite Microsoft Certified Architects.
• Un lien privilégié avec Microsoft reconnu par «Microsoft’s Global SI Partner of the Year award” reçu en 2012, 2011, 2010, 2009, 2008, 2006, 2004 et 2001.
• Avanade est une société orientée «Assets» participant à l’évolution des solutions Microsoft.
• Notre base de connaissances globale consolide l’expérience acquise sur les différents projets.
• Avanade France a obtenu en 2012 le label « Top Employeur » 2012
Avanade
• WSH (VBScript et Jscript)– NT4 et Windows 98
– Existe encore aujourd’hui sur Server 2012 et Windows 8 (version 5.8)
• Powershell V1– Introduction de Powershell avec Windows Server 2003 et Windows XP
– Env 130 cmdlets
• Powershell V2– Env 250 cmdlets
– Remoting
– Runspace
– Background jobs
– Modules
• Powershell V3– Env 570 cmdlets
– Workflow
– Intellisense
Flashback
• Réduction du TCO en automatisant les tâches répétitives.L'automatisation compte les avantages suivants :
– Réduction du temps de réalisation des tâches
– Assurance que les opérations périodiques complexes et susceptiblesd'engendrer des erreurs se déroulent correctement.
– Capacité pour les administrateurs junior à réaliser correctement destâches nécessitant des connaissances et une expertise au-delà de leurscompétences.
• Grâce à l'automatisation des tâches courantesd'administration, PowerShell est un outil puissant degestion de serveurs et de stations de travail
Pourquoi utiliser PowerShell ?
• Plusieurs constats :1. Créer un nouveau script : ne pas réinviter la roue, adapter
les scripts déjà réalisés (ou les réutiliser tels quels dans lamesure du possible)
2. Documenter ses scripts : Quoi de plus difficile que dereprendre un script qui n’est pas le sien…
3. Diffuser/Partager ses scripts : Pour revenir au premier point
• Conclusion : tout le monde a plus ou moins besoin des mêmes fonctions
PowerShell V2
• Une Solution : Les modules– “Scripts Modules” (.psm1) vs “Binary Modules” (.dll)
– Les “Scripts Modules” contiennent des fonctions
Powershell
– Ces scripts modules peuvent être importés par un
« Import-Module » au même titre que les binary
modules
– Une fois chargés, ils peuvent être utilisés dans un autre
script ou une autre fonction
Powershell V2
Module Bodyfunction write-Techdays {
<#
.SYNOPSIS
techDays 2013.
.DESCRIPTION
Exemple de code de module
.PARAMETER Techdays
Ici les parametres de mon module
.EXAMPLE
Write-Techdays -TechDays "Welcome"
.NOTES
-Author: S Lepertel
-Email :
-CreationDate: 28/01/2013
-LastModifiedDate: 29/01/2013
-Version: 0.2
-History:
.LINK
http://www.avanade.com/fr-fr/Pages/default.aspx
#>
param (
[Parameter(Mandatory=$true)]$Techdays
)
Write-host $Techdays
}
NAMEwrite-techDays
SYNOPSIStechDays 2013.
SYNTAXwrite-techDays [-Techdays] <Object> [<CommonParameters>]
DESCRIPTIONExemple de code de module
PARAMETERS-Techdays <Object>
Ici les parametres de mon module
Required? truePosition? 1Default value Accept pipeline input? falseAccept wildcard characters?
<CommonParameters>This cmdlet supports the common parameters: Verbose, Debug,ErrorAction, ErrorVariable, WarningAction, WarningVariable,OutBuffer and OutVariable. For more information, type,"get-help about_commonparameters".
INPUTS
OUTPUTS
NOTES
-Author: S Lepertel-Email : -CreationDate: 28/01/2013-LastModifiedDate: 29/01/2013-Version: 0.2-History:
-------------------------- EXAMPLE 1 --------------------------
C:\PS>Write-Techdays -TechDays "Welcome"
RELATED LINKShttp://www.avanade.com/fr-fr/Pages/default.aspx
AVANADE MODULE
• Automatisation des tâches– Installation des prérequis
– Optimisation des serveurs
• Homogénéité des configurations serveurs– Pas d’erreur humaine lors de la configuration
• Traçabilité des actions– Possibilité de logger les actions puis centralisation pour
analyse
Aide à la Configuration
EXCHANGE 2010 PREREQUIS
• Déploiement « finaux » en production mais
également des environnements de test et
développement– Automatisation lors des déploiement répétitifs et peu
valorisants
• Modification de chaînes de connexion en
fonction des besoins
Aide au déploiement
FERME SHAREPOINT
• Migration de données– Mailboxes
– Données utilisateur
• Migration d’environnement
Aide à la Migration
• Module MSOL :– Gestion des utilisateurs (ajout, suppression,
restauration, mode d’authentification, mot de passe…)
– Gestion des groupes (création, suppression, appartenance…)
– Gestion des « Service Principal »
– Gestion des domaines
– Gestion de l’authentification
– Gestion des licences
Powershell et Office 365
GESTION DES LICENCES
OFFICE 365
• Gestion d’Exchange Online– Gestion des destinataires (BAL, Groupes de distribution, contacts externes, utilisateur de messagerie…)
– Approvisionnement
– Migration
– Autorisation (RBAC, autorisation de BAL, groupes de rôles…)
– Conformité (Règles de transport, stratégies de rétention, archivage, règles de protection…)
– 304 cmdlets disponibles
function Connect-ExchangeOnline {param (
$user = "[email protected]",$site = "https://ps.outlook.com/powershell/")
$o365Credential = Get-Credential $user$global:office365= New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $site -Credential $o365Credential -Authentication Basic –AllowRedirectionImport-PSSession $office365}
PS C:\Windows\system32> Get-Mailbox
Name Alias ServerName ProhibitSendQuota
---- ----- ---------- -----------------DiscoverySearchMailbox... DiscoverySearchMa... db3pr06mb595 50 GB (53,687,091,200 bytes) sle sle amspr06mb602 24.75 GB (26,575,110,144 bytes) user1 user1 db3pr06mb595 24.75 GB (26,575,110,144 bytes)
• (http://help.outlook.com/fr-fr/140/dd575549.aspx)
Powershell et Office 365
• Gestion de SharePoint online– Gestion des utilisateurs et groupes (création, suppression)
– Gestion des updates de collection de site
– Gestion des collections de sites (création, suppression, restauration, réparation…)
– 30 cmdlets disponibles
function Connect-SPOnline() {param (
$user = "[email protected]",$site = "https://lepertel.sharepoint.com")
if ((Get-Module Microsoft.Online.SharePoint.PowerShell).Count -eq 0) {Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking}
$cred = Get-Credential $userConnect-SPOService -Url $Site -Credential $cred
Powershell et Office 365
• Powershell offre la possibilité d’utiliser les classes du Framework .Net– Utilisation plus facile que certaines cmdlets (mais pas toujours )
– Augmenter les possibilités (tache non réalisables avec une cmdlet)
Function New-ComplexPassword {[cmdletBinding()]Param(
[Parameter(Mandatory=$true)][int]$length,[Parameter(Mandatory=$true)][int]$Nonalphanumeric
)Begin{}Process{
Add-Type -AssemblyName system.web$complexPassword = [System.Web.Security.Membership]::GeneratePassword(8,2) #length,NonalphanumChar}
End{Return $complexPassword
}}
Et le Framework .Net ???
• Tâches simples d’administration & actions plus complexes
• Tous les produits Microsoft (On-premise et Online) + Modules de partenaires ou internes
• Possibilité d’invoquer les classes du Framework .Net
• Passer directement sur Powershell V3 (simplification, Powershell Web Access, workflow…)
Conclusion
• Le Scriptcenter : http://technet.microsoft.com/en-US/scriptcenter/
• Le blog de Pascal : http://blogs.technet.com/b/pascals/
• WMF 3.0 (WinRM, WMI et Powershell V3) : http://www.microsoft.com/en-us/download/details.aspx?id=34595
Quelques liens
Formez-vous en ligne
Retrouvez nos évènements
Faites-vous accompagner
gratuitement
Essayer gratuitement nos
solutions IT
Retrouver nos experts
Microsoft
Pros de l’ITDéveloppeurs
www.microsoftvirtualacademy.comhttp://aka.ms/generation-app
http://aka.ms/evenements-
developpeurshttp://aka.ms/itcamps-france
Les accélérateurs
Windows Azure, Windows Phone,
Windows 8
http://aka.ms/telechargements
La Dev’Team sur MSDN
http://aka.ms/devteam
L’IT Team sur TechNet
http://aka.ms/itteam