Le but de cette session est d'apporter un point éclairé sur l'ensemble des possibilités de remoting utilisables par Powershell.
Speakers : Fabien Dibot (Vivalto Santé), Carlo Mancini (STMicroelectronics)
2. PowerShell et les
techniques de remoting
Carlo Mancini - MVP Powershell - STMicroElectronics
Fabien Dibot - Ingénieur Systèmes - Vivalto Santé
@fdibot - @sysadm2010
Infrastructure, communication & collaboration
3. Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !
#mstechdays
Infrastructure, communication & collaboration
7. PowerShell, deux constats et un peu
d’histoire
• Montée en puissance de:
– Windows 7 (45% du marché)
– Windows 8 (10%)
• Microsoft 'big shift':
de la GUI vers
Powershell
#mstechdays
Infrastructure, communication & collaboration
8. L’évolution de Powershell Remoting
Avant Powershell
Powershell 1.0
Powershell 2.0
Powershell 3.0
Remote Desktop
Connection (RDP)
Get-WMIObject
-Computername
Cmdlets CIM
Get-CIMInstance
Sysinternals PsTools
• PsExec
• PsList
• PsFile
Pas de paramètre
–Credential
Paramètre –
ComputerName
dans 35 cmdlets
• Get-Process
• Get-Service
• Restart-Computer
• Get-WinEvent
Sessions robustes
Remoting
Remoting implicite
Logiciel tiers
Protocole
DCOM/RPC
Sessions
deconnectées
Windows PWA
#mstechdays
Infrastructure, communication & collaboration
9. Powershell Remoting, sauce 1.0…
... c'était du bricolage...
#mstechdays
Infrastructure, communication & collaboration
10. Le problème avec DCOM/RPC
Get-WMIObject
#mstechdays
Infrastructure, communication & collaboration
11. RPC/DCOM vs Parefeu
• le parefeu gagne...
#mstechdays
Infrastructure, communication & collaboration
12. Le nouveau paradigme
• Exploite le service WinRM
– WinRM 1.0
• installé par défaut sur Vista
• Ports 80 et 443
– WinRM 1.1
• sur Vista SP1 et 2008 SP1
• installable sur XP SP2, 2003 et 2003 R2
– WinRM 2.0
• sur Seven et sur 2008 R2
• Installable sur XP SP3, Vista (SP1 ou SP2), et 2008 (SP1 ou
SP2)
• Ports 5985 (http) et 5986 (https)
• Introduit la notion de Session
Infrastructure, communication & collaboration
#mstechdays
14. WinRM
• Windows Remote Management
• Basé sur le standard WS-Man (Web
Services for Management)
• S’appuie sur SOAP
• Firewall-friendly
#mstechdays
Infrastructure, communication & collaboration
15. Architecture et EndPoints
Powershell.exe
Serveur distant
Powershell.exe
....exe
Endpoint
Powershell 64-bit
Endpoint
Powershell 32-bit
Autre Endpoint
Service WinRM
http
listener
WS-MAN
Station de travail
#mstechdays
Infrastructure, communication & collaboration
16. WinRM et la sécurité
Communication chiffrée entre les machines :
• Utilisation des jetons Kerberos.
• NTLM
Pour lancer des scripts et/ou cmdlets:
• Utilisateur membre du groupe Administrateurs local
• Fournir des credentials Administrateur
• Accéder à la configuration de la session
PowerShell
• Sessions paramétrables & collaboration
#mstechdays
Infrastructure, communication
25. WinRM.. Des limitations….
Par défaut:
• 30 sessions par utilisateur et par machine
• 10 utilisateurs
• 25 cmdlets simultanées, le reste en queue
• 1024MB assigné par session
#mstechdays
Infrastructure, communication & collaboration
30. Invoke-Command et les objets
désérialisés
• On peut travailler avec la sortie de commande de
quasiment la même manière que toute autre sortie de
commande
#mstechdays
Infrastructure, communication & collaboration
31. Invoke-Command mais pas de méthodes
• Les objets désérialisés que notre station reçoit sur le
pipeline ne sont qu'un snapshot de l'objet original
#mstechdays
Infrastructure, communication & collaboration
32. Invoke-Command et Select-Object
• La sérialisation et désérialisation des données a un coût
très fort en terme de paquets envoyés sur le réseau
• Bonne pratique: utiliser Select-Object sur l'objet distant
optimise l'envoi des données sur le réseau
#mstechdays
Infrastructure, communication & collaboration
33. Invoke-Command sans erreur
• Invoke-Command est sujet aux erreurs de frappe
• On peut utiliser des scripts .ps1
• Paramètre -FilePath
Invoke-Command `
-ComputerName vm2008R25,vm2008R26 `
-FilePath C:MyScript.ps1
#mstechdays
Infrastructure, communication & collaboration
34. Le paramètre -AsJob
• Invoke-Command peut être utilisé avec le paramètre –AsJob
– la commande est exécutée de façon asynchrone en arrière-plan
– l’invite Windows PowerShell est immédiatement retourné
#mstechdays
Infrastructure, communication & collaboration
36. Exemple de session interactive temporaire
#mstechdays
Infrastructure, communication & collaboration
37. Sessions distantes persistantes
• Les sessions temporaires ne sont pas
efficientes
– Overhead à l'initialization de chaque session
– Overhead pour le tear-down de chaque session
• L’alternative: New-PSSession
– pour démarrer une nouvelle session
persistante
• Get-PSSession –ComputerName
– pour voir une session existante
#mstechdays
Infrastructure, communication & collaboration
38. La variable $Session
• … ou comment faire du Invoke-Command sur une session
persistante
#mstechdays
Infrastructure, communication & collaboration
39. Rajouter une nouvelle session
#mstechdays
Infrastructure, communication & collaboration
40. Interagir avec une session persistante
• Enter-PSSession accepte le paramètre -Session
– La commande Exit-PSSession ne supprime pas la
session
#mstechdays
Infrastructure, communication & collaboration
41. Sessions déconnectées
• Nouveauté dans Powershell 3.0
• Connect-PSSession et DisconnectPSSession
• La reconnexion peut se faire:
– du poste client où la session a été créée
– à partir d'un autre poste (mais toujours
avec le même compte)
– Powershell 3.0/4.0 installé des deux
#mstechdays
Infrastructure, communication & collaboration
42. Exemples de sessions déconnectées
#mstechdays
Infrastructure, communication & collaboration
43. Invoke-Command et les sessions
persistantes
• Paramètre -InDisconnectedSession
– depuis Powershell 3.0 permet à Invoke-Command de profiter de
la flexibilité et robustesse des sessions déconnectées
– la session est crée, la commande exécutée et la session est
fermée avant qu'une sortie soit produite
#mstechdays
Infrastructure, communication & collaboration
44. Détruire une session persistante
• Remove-PSSession
#mstechdays
Infrastructure, communication & collaboration
45. Implicit Remoting
• Pas de module sur votre station de travail ?
• Pas envie d'installer RSAT ?
• Import-PSSession
– importe des cmdlets à partir d'une session PSSession
d'un ordinateur local ou distant dans la session active.
#mstechdays
Infrastructure, communication & collaboration
46. Exemple de Implicit Remoting
#mstechdays
Infrastructure, communication & collaboration
48. Un peu d’histoire…
• WMI intégré à tous les OS Microsoft.
• WMI construit sur la base WBEM et CIM de la
DMTF
• CIM permet une interface commune pour le
management:
– OS Windows et Linux
– Equipements réseaux
– Solution de virtualisation
• PowerShell 1 et 2 -> WMI et accélérateurs
• PowerShell 3 et 4 ->communication & collaboration
Module CIMCmdlets
#mstechdays
Infrastructure,
54. Limitations
• Plus limité que WMI, actuellement:
– Impossibilité de passer le paramètre credential sans créer une
session
– Certaines Classes WMI sont manquantes
– Impossibilité d’appeler des Objets/Méthodes .NET
#mstechdays
Infrastructure, communication & collaboration
56. Pour aller plus loin…
http://aka.ms/MVA
Offre spéciale TechDays limitée aux 200
premières demandes, 1 pack par individu
http://aka.ms/jeveuxwindows2012
Approfondissez
Microsoft System Center 2012
Agenda des séminaires
techniques pour les IT Pros :
http://aka.ms/itcamps-france
Agenda des séminaires
fonctionnels pour les décideurs :
http://aka.ms/TDI
#mstechdays
http://aka.ms/jeveuxmoncloudprive
http://aka.ms/free/trial
Infrastructure, communication & collaboration
57. RESSOURCES
•
•
•
•
•
•
•
•
•
•
http://powershell-scripting.com – FR
http://lazywinadmin.com - US
http://learn-powershell.net – US
http://powershell.org – US
http://via-powershell.fr - FR
http://shellyourexperience.com - US
http://my-powershell.fr - FR
http://jdhitsolutions.com/blog -US
http://happysysadm.com – US
http://pwrshell.net – FR
#mstechdays
Infrastructure, communication & collaboration