Windows PowerShell est le langage de script incontournable pour l’automatisation des tâches simples ou complexes sur les environnements Windows. Cette session vous propose un retour d’expérience de l’utilisation de Windows PowerShell sur des cas concrets tirés de projets, accompagné de démonstrations.
1. 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
3. • 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
4. • 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
5. • 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 susceptibles
d'engendrer des erreurs se déroulent correctement.
– Capacité pour les administrateurs junior à réaliser correctement des
tâches nécessitant des connaissances et une expertise au-delà de leurs
compétences.
• Grâce à l'automatisation des tâches courantes
d'administration, PowerShell est un outil puissant de
gestion de serveurs et de stations de travail
Pourquoi utiliser PowerShell ?
6. • 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 la
mesure du possible)
2. Documenter ses scripts : Quoi de plus difficile que de
reprendre 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
7. • 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
8. Module Body
function 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
}
NAME
write-techDays
SYNOPSIS
techDays 2013.
SYNTAX
write-techDays [-Techdays] <Object> [<CommonParameters>]
DESCRIPTION
Exemple de code de module
PARAMETERS
-Techdays <Object>
Ici les parametres de mon module
Required? true
Position? 1
Default value
Accept pipeline input? false
Accept 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 LINKS
http://www.avanade.com/fr-fr/Pages/default.aspx
10. • 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
12. • 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
14. • Migration de données
– Mailboxes
– Données utilisateur
• Migration d’environnement
Aide à la Migration
15. • 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
17. • 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 = "sle@lepertel.onmicrosoft.com",
$site = "https://ps.outlook.com/powershell/"
)
$o365Credential = Get-Credential $user
$global:office365= New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $site -Credential $o365Credential -Authentication Basic –AllowRedirection
Import-PSSession $office365
}
PS C:Windowssystem32> 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
18. • 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 = "sle@lepertel.onmicrosoft.com",
$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 $user
Connect-SPOService -Url $Site -Credential $cred
Powershell et Office 365
19. • 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 ???
20. • 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
21. • 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
22. 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-
developpeurs
http://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
Notas del editor
Notation
Intro Serveurs / Entreprise / Reseaux / IT
Authentification unique (Federated) vers Authentification standard