• Like
Powershell et les techniques de remoting

Powershell et les techniques de remoting

  • 385 views
Uploaded on

Le but de cette session est d'apporter un point éclairé sur l'ensemble des possibilités de remoting utilisables par Powershell. …

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)

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
385
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
38
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PowerShell et les techniques de remoting Carlo Mancini - MVP Powershell - STMicroElectronics Fabien Dibot - Ingénieur Systèmes - Vivalto Santé @fdibot - @sysadm2010 Infrastructure, communication & collaboration
  • 2. 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
  • 3. POWERSHELL REMOTING #mstechdays Infrastructure, communication & collaboration
  • 4. SOMMAIRE 1. 2. 3. 4. Un peu d’histoire WinRM Les Sessions Common Information Model #mstechdays Infrastructure, communication & collaboration
  • 5. UN PEU D’HISTOIRE #mstechdays Infrastructure, communication & collaboration
  • 6. 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
  • 7. 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
  • 8. Powershell Remoting, sauce 1.0… ... c'était du bricolage... #mstechdays Infrastructure, communication & collaboration
  • 9. Le problème avec DCOM/RPC Get-WMIObject #mstechdays Infrastructure, communication & collaboration
  • 10. RPC/DCOM vs Parefeu • le parefeu gagne... #mstechdays Infrastructure, communication & collaboration
  • 11. 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
  • 12. WINRM #mstechdays Infrastructure, communication & collaboration
  • 13. WinRM • Windows Remote Management • Basé sur le standard WS-Man (Web Services for Management) • S’appuie sur SOAP • Firewall-friendly #mstechdays Infrastructure, communication & collaboration
  • 14. 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
  • 15. 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
  • 16. Installation de WinRM • WinRM Quickconfig #mstechdays Infrastructure, communication & collaboration
  • 17. Installation de WinRM • Enable PSRemoting #mstechdays Infrastructure, communication & collaboration
  • 18. Installation de WinRM • GPO – – – – – #mstechdays Computer Configuration Administrative Templates Windows Components Windows Remote Management WinRM Service Infrastructure, communication & collaboration
  • 19. Vérifications • Vérifier la connexion localement: – winrm quickconfig – Enter-PSSession -ComputerName localhost #mstechdays Infrastructure, communication & collaboration
  • 20. Configuration 1/4 • Voir votre configuration : – winrm get winrm/config – winrm enumerate winrm/config/listener – ls WSMan:localhostShell #mstechdays Infrastructure, communication & collaboration
  • 21. Configuration 2/4 #mstechdays Infrastructure, communication & collaboration
  • 22. Configuration 3/4 #mstechdays Infrastructure, communication & collaboration
  • 23. Configuration 4/4 #mstechdays Infrastructure, communication & collaboration
  • 24. 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
  • 25. Modifiables ! #mstechdays Infrastructure, communication & collaboration
  • 26. LES SESSIONS #mstechdays Infrastructure, communication & collaboration
  • 27. Modèles de Remoting • Fan-Out, 1-to-many • 1-to-1, SSH-style #mstechdays Infrastructure, communication & collaboration
  • 28. Remoting 1-to-many • Invoke-Command #mstechdays Infrastructure, communication & collaboration
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. Remoting SSH-style #mstechdays Infrastructure, communication & collaboration
  • 35. Exemple de session interactive temporaire #mstechdays Infrastructure, communication & collaboration
  • 36. 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
  • 37. La variable $Session • … ou comment faire du Invoke-Command sur une session persistante #mstechdays Infrastructure, communication & collaboration
  • 38. Rajouter une nouvelle session #mstechdays Infrastructure, communication & collaboration
  • 39. 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
  • 40. 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
  • 41. Exemples de sessions déconnectées #mstechdays Infrastructure, communication & collaboration
  • 42. 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
  • 43. Détruire une session persistante • Remove-PSSession #mstechdays Infrastructure, communication & collaboration
  • 44. 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
  • 45. Exemple de Implicit Remoting #mstechdays Infrastructure, communication & collaboration
  • 46. COMMON INFORMATION MODEL #mstechdays Infrastructure, communication & collaboration
  • 47. 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,
  • 48. Les CMDLets CIM #mstechdays Infrastructure, communication & collaboration
  • 49. Créer une session #mstechdays Infrastructure, communication & collaboration
  • 50. Session avec options #mstechdays Infrastructure, communication & collaboration
  • 51. Exécutions multiples #mstechdays Infrastructure, communication & collaboration
  • 52. Exécuter une méthode #mstechdays Infrastructure, communication & collaboration
  • 53. 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
  • 54. DES QUESTIONS ? #mstechdays Infrastructure, communication & collaboration
  • 55. 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
  • 56. 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
  • 57. Digital is business