Powershell et les techniques de remoting

1 231 vues

Publié le

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)

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 231
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
68
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Powershell et les techniques de remoting

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

×