Juillet 2008 Juillet 2008
IIS: En ligne avec IIS 7.0
Internet Information Services 7.0 établit de nouvelles normes, offre des améliorations importantes et propose de nouvelles capacités pour la consolidation des environnements Web. Explorez les améliorations les plus importantes et obtenez des instructions détaillées sur la manière de tester, préparer et migrer vos applications Web vers IIS 7.0. Fergus Strachan
Communications et collaboration: Planification de la migration vers la messagerie unifiée
Passer d'un système de messagerie vocale hérité à une plate-forme de messagerie unifiée peut être réalisé assez facilement et avec une interruption réduite pour vos utilisateurs finaux, à condition de disposer d'un plan qui tient la route. Voici ce que vous devez savoir pour planifier votre migration, tester vos nouveaux systèmes et mettre en œuvre la messagerie unifiée dans votre organisation. Jeff Goodwin
Communications et collaboration: Pilotage vocal d'OCS 2007
Microsoft Office Communication Server apporte des modifications importantes à la téléphonie d'entreprise. Découvrez les différentes couches constitutives des appels vocaux et la façon dont les appels peuvent être routés vers différents points de terminaison, ainsi que l'importance des conversations lors des communications OCS. Rajesh Ramanathan
Communications et collaboration: Créez des connexions puissantes avec Groove et SharePoint
Microsoft Office Groove et SharePoint Server fournissent tous deux des capacités de collaboration puissantes. Découvrez en quoi ils diffèrent et en quoi ils se complètent ainsi que comment intégrer Groove à SharePoint pour obtenir une solution de collaboration facile et flexible prenant en charge les utilisateurs à des emplacements différents. Alan Maddison
Administration de Windows: Présentation du clustering avec basculement Windows Server 2008
Cela fait des années que les utilisateurs se plaignent et affirment que le clustering de Windows Server est trop compliqué. Avec la publication de Windows Server 2008, le clustering a été entièrement rénové. Découvrez les améliorations les plus importantes du nouveau clustering avec basculement et voyez comment cette nouvelle implémentation facilite énormément l'installation et la maintenance des clusters. Chuck Timon
Columns
Le mot du rédacteur en chef: L'impression est morte: | Lettres: Les lecteurs ont la parole: | Boîte à outils: Nouveaux produits pour les professionnels de l’informatique:
Questions et réponses sur la file d'attente Exchange: Équilibrage de la charge, transport Edge et bien plus encore: Vous avez des questions sur Exchange ? Dans cet article, nous répondons aux questions sur l'utilisation d'Exchange avec SharePoint, l'utilisation de la réplication continue de secours, l'installation des serveurs de boîtes aux lettres Exchange 2007 sur Windows Server 2008 et bien plus encore.Henrik Walther | Coup de projecteur sur les utilitaires: Microsoft SharedView: Vous cherchez un moyen de collaborer rapidement avec une personne située dans une autre ville ? Examinez comment Microsoft SharedView, utilitaire gratuit, vous permet de partager facilement des documents et des écrans avec les membres d'un petit groupe, même à travers des frontières physiques.Greg Steen | Au cœur de SharePoint: Intégration d'applications Office: Découvrez comment les applications Microsoft Office s'intègrent et communiquent avec SharePoint et comment vous pouvez intégrer des applications autres que Microsoft avec SharePoint en utilisant les mêmes principes.Pav Cherny
Windows PowerShell: La boîte: Don Jones aborde les fonctions de filtrage, le pipeline, les objets personnalisés et comment les balles de ping-pong détiennent le secret pour comprendre Windows PowerShell.Don Jones | Hé, vous le scripteur !: La poussée d'adrénaline: Les scripteurs traitent de l'écriture de scripts sous adrénaline et montrent comment accéder au nouveau magasin de données de configuration de démarrage dans Windows Vista et Windows Server 2008 en utilisant les scripts.Les scripteurs Microsoft | Histoires de Bureau: Démarrage réseau de Windows: Découvrez l'histoire de RIS et des autres technologies PXE utilisées chez Microsoft.Wes Miller
Vigilance sécurité: Mots de passe et cartes de crédit, première partie: La première partie de cet article en trois épisodes explique comment les conseils sur la sécurité et les pratiques courantes sont obsolètes et entravent les efforts de sécurité.Jesper M. Johansson | Sur le terrain: Garantir la justesse d'une élection: Examinez des vulnérabilités dans le système d'élection américain d'aujourd'hui et voyez comment la cryptographie peut être utilisée pour créer des résultats d'élection entièrement vérifiables.Josh Benaloh | La vie secrète de Windows: L'histoire prend de la place: Microsoft Bob est beaucoup plus répandu que vous ne le pensez. Raymond Chen explique comment Microsoft Bob s'est introduit dans des millions de domiciles.Raymond Chen


IIS
En ligne avec IIS 7.0
Fergus Strachan
En un coup d'œil :
  • Déploiement d'IIS 7.0 dans un environnement de batterie de serveurs Web
  • Améliorations des performances et de la sécurité
  • Migration d'applications Web ASP.NET de IIS 6.0 vers IIS 7.0
  • Migration d'applications Web PHP vers IIS 7.0

Sommaire
Attention, installez, testez !
Mon installation de test
Améliorations importantes pour les administrateurs informatiques
Architecture IIS
Modes Intégré et Classique
Modules et fonctionnalités
Migration d'applications Web
Conclusion
L'équipe IIS de Microsoft affirme qu'Internet Information Services (IIS) 7.0 représente la publication la plus importante dans l'histoire d'IIS. Cette version établit de nouvelles normes, offre d'importantes améliorations et
propose de nouvelles capacités de consolidation des environnements Web. IIS 7.0, qui est inclus avec Windows Server® 2008 et Windows Vista® SP1, alimente déjà Microsoft.com, et plusieurs entreprises d'hébergement Web ont déjà commencé à fournir un hébergement IIS 7.0 aux concepteurs et développeurs de sites Web qui souhaitent migrer leurs applications Web existantes vers la nouvelle plate-forme de serveur Web.
Dans cet article, j'examinerai les améliorations d'IIS 7.0 qui importent le plus aux professionnels de l'informatique et aborderai ensuite dans les détails la migration d'applications Web ASP.NET et PHP. Toutefois, je voudrais tout d'abord définir un laboratoire de test qui ressemble à un environnement de production de base.
Il s'agit là d'une étape importante. Avant de déployer IIS 7.0 vers vos serveurs de production, vous devez effectuer des tests approfondis dans un environnement de laboratoire pour vous assurer que vos applications Web s'exécutent facilement sur le nouveau serveur Web.

Attention, installez, testez !
Mon laboratoire de test inclut des systèmes exécutant Windows Server 2003 et IIS 6.0 qui hébergent des applications ASP.NET de même que des serveurs exécutant la distribution Ubuntu 7.10 Linux et Apache HTTP Server 2.2 qui hébergent des applications Web de type PHP. Mon principal objectif est de déployer Windows Server 2008 sur des systèmes de préparation et production puis effectuer la transition d'applications Web complexes pour remplacer IIS 6.0 et des instances Apache par IIS 7.0.
Je dispose de deux applications Web clés : DotNetNuke 4.7 et osCommerce 3.0a4. DotNetNuke est une infrastructure d'application Web fondée sur ASP.NET 2.0 et Microsoft® SQL Server®. L'autre application (osCommerce) est la toute dernière version alpha d'une solution e-commerce complète fondée sur PHP et MySQL. Plaçons donc ces applications avancées sur IIS 7.0 !
Je voudrais souligner que mon intention n'est pas de comparer des versions, produits ou plates-formes logiciels. Il existe, toutefois, un certain nombre d'avantages à standardiser sur Windows Server 2008 et IIS 7.0 que je dois signaler, notamment le fait que la complexité administrative est réduite et que vous pouvez réduire le nombre de serveurs Web que vous exécutez.
La figure 1 montre une présentation du laboratoire de test que j'utilise pour cet article. Si vous voulez suivre mes explications dans votre propre environnement de test, vous trouverez des liens vers les composants logiciels nécessaires de même que des instructions détaillées sur l'installation dans la documentation associée disponible dans la section de téléchargements de codes du site Web de TechNet Magazine.
Figure 1 L'environnement de test pour le déploiement d'IIS 7.0 (cliquer sur l'image pour l'agrandir)
Notez qu'au moment où je rédigeais la conclusion de cet article, Microsoft a publié un outil de ligne de commande (MSDeploy.exe) dont le but est d'aider les utilisateurs à déployer, synchroniser et migrer les applications Web vers IIS 6.0 et 7.0. Je vous conseille d'essayer cet outil. Vous trouverez des informations détaillées à ce sujet sur le blog de l'équipe de déploiement Web de Microsoft sur go.microsoft.com/fwlink/?LinkId=118272.

Mon installation de test
Au moment où je rédigeais cet article, Windows Server 2008 était toujours en version préliminaire et je n'ai donc pas remplacé Windows Server 2003 sur le contrôleur de domaine ou les serveurs de base de données. Avec la version officielle de Windows Server 2008, vous voudrez peut-être envisager de migrer également votre infrastructure Active Directory®. La migration des bases de données SQL Server® 2005 et MySQL vers SQL Server 2008 n'entre pas non plus dans le cadre de cet article.
J'ai déployé SQL Server 2008 sur mon serveur intermédiaire principalement parce que cette opération est plus aisée que l'installation de SQL Server 2005 avec Service Pack 2. DotNetNuke n'a eu aucun problème à s'exécuter avec une base de données SQL Server 2008. En outre, l'installation de MySQL 5.0 sur Windows Server 2008 s'est faite sans aucune complication.
IIS 7.0 est disponible sur Server Core, mais je n'ai pas utilisé d'installation Server Core en raison des certaines exigences associées mes tests. Mon serveur intermédiaire nécessitait une installation complète parce qu'il s'agissait de mon système de test principal. Par ailleurs, Microsoft .NET Framework n'est pas disponible sur Server Core.
PHP s'exécute convenablement sur Server Core, mais mon objectif est de consolider les applications ASP.NET et PHP et il n'est donc pas question d'utiliser Server Core. Tant que .NET Framework n'est pas pris en charge sur Server Core, vous devrez exécuter une installation complète pour prendre en charge les applications ASP.NET. Pour obtenir des instructions détaillées sur l'installation d'un environnement de test, consultez le fichier 01_install_testlab.htm de la documentation associée.
J'ai choisi d'effectuer une installation propre de Windows Server 2008 (au lieu de mettre à niveau les serveurs existants). L'installation propre facilite notamment l'implémentation d'un scénario de migration tel que celui de la figure 2. La stratégie sous-jacente est de laisser les batteries de serveurs Web existantes s'exécuter jusqu'à ce que tous les composants d'applications Web appropriés aient été testés sur le serveur intermédiaire et transférés à la nouvelle batterie de serveurs IIS 7.0.
Figure 2 Passage à IIS 7.0 (cliquer sur l'image pour l'agrandir)
Vous pouvez déplacer toutes les applications Web existantes d'un seul coup ou progressivement, selon la complexité de votre environnement. Pour chaque application ou site Web, après avoir exécuté un dernier test d'acceptation sur la nouvelle batterie de serveurs Web, vous pouvez effectuer la transition en modifiant les enregistrements DNS appropriés afin de diriger les navigateurs vers la nouvelle batterie de serveurs Web IIS 7.0. Ceci permet de minimiser les pertes de temps et les interruptions.

Améliorations importantes pour les administrateurs informatiques
MSDN® Magazine comprend un excellent article de Mike Volodarsky intitulé « Exploration du serveur Web pour Windows Vista et autres fonctionnalités » (disponible sur msdn2.microsoft.com/magazine/cc163453.aspx) qui vous permet de prendre connaissance rapidement des améliorations d'IIS 7.0.
Vous trouverez un autre document dans le blog de l'équipe Microsoft.com. Il s'intitule « The Tasty Morsels Found in Dogfood » (disponible sur go.microsoft.com/fwlink/?LinkId=117436). Cet article résume les premières expériences d'IIS 7.0 des membres de l'équipe. En gros, ils ont classé les principales améliorations comme suit :
  1. Installation simplifiée.
  2. Superbe compatibilité.
  3. Plus de métabase.
  4. Configuration centralisée par l'intermédiaire du fichier applicationHost.config placé sur un partage UNC.
  5. Configuration déléguée au moyen de fichiers web.config dans les annuaires d'applications.
  6. Outils de gestion améliorés.
  7. Suivi des requêtes en erreur.
  8. Filtrage des requêtes sans avoir besoin d'URLScan.
  9. Disponibilité de la synchronisation de contenu simplifiée grâce aux partages UNC.
Mise en cache de la sortie de contenu dynamique.
L'installation simplifiée m'intéresse particulièrement. Dans son billet de blog, l'équipe Microsoft.com montre comment déployer toutes les fonctionnalités d'IIS 7.0 (ou, bien sûr, juste celles que vous voulez) avec une seule ligne de commande. Je n'ai pas hésité à intégrer cette approche dans mes instructions d'installation du laboratoire de test, avec la ligne de commande affichée à la figure 3.
Il est vrai que cette commande est plutôt longue. (Si vous voulez la copier, je vous conseille de la copier et coller du site Web de TechNet Magazine au lieu de la retaper à la main). Bien que cette commande place tous les modules disponibles sur l'ordinateur IIS 7.0, elle n'inclut pas PHP. IIS 7.0 n'inclut pas PHP et l'idée de télécharger et d'installer des packages Debian sur Internet n'est pas connue de Windows® Package Manager (pkgmgr.exe). C'est là qu'intervient le Kit d’installation automatisée (Windows AIK).
Figure 3 Déploiement de fonctionnalités IIS 7.0 avec une seule ligne de commande
start /w pkgmgr.exe /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

# Command provided by the Microsoft.com team (blogs.technet.com/mscom).
Avec AIK, vous pouvez créer un DVD d'installation personnalisé pour Windows Server 2008 qui inclut IIS 7.0 et PHP 5. Vous pouvez également inclure MySQL, des fichiers d'application Web et tout autre composant dont vous avez besoin pour votre déploiement. Tous les composants peuvent faire partie de votre Installation Windows Server 2008, ce qui vous permet d'appliquer des personnalisations régulièrement sur tous vos serveurs Web. Vous n'avez pas besoin d'utiliser des lignes de commande ou de modifier des fichiers de configuration.
Vous pouvez même créer un DVD personnalisé pour les installations sans assistance. Le kit AIK inclut la documentation et les outils servant à créer un fichier AutoUnattend.xml que vous placez ensuite dans le dossier racine du DVD. Le fichier Deployment.htm de l'image personnalisée de la documentation associée propose des instructions détaillées.
Nombreux sont les administrateurs qui reconnaissent également l'importance clé de cette compatibilité. Au départ, je m'attendais à quelques problèmes de compatibilité avec DotNetNuke et osCommerce, mais la transition à IIS 7.0 s'est faite sans heurt, malgré le fait que ces applications Web incluaient toutes deux des fonctionnalités avancées telles que l'authentification de formulaires et des URL compatibles avec les moteurs de recherche.
Avec DotNetNuke, je n'ai rencontré de problème que lorsque je suis passé à un scénario de batterie de serveurs Web complexe avec partage de contenu UNC sur une plate-forme 64 bits. Toutefois, ce problème n'était pas très sérieux. En fin de compte, cette compatibilité améliorée vous permet de passer moins de temps à exécuter vos applications Web sur IIS 7.0.
Si vous rencontrez les problèmes de compatibilité avec vos applications Web, la prise en charge de diagnostic et de suivi intégrée deviendra rapidement une de vos nouvelles fonctionnalités préférées. Les informations de diagnostic détaillées sont très importantes et les solutions suggérées sont utiles et efficaces.
La figure 4 montre les informations de diagnostic que vous obtenez lorsque vous exécutez DotNetNuke 4.7 sur IIS 7.0 en mode intégré. Dans cet exemple, il existe trois options (affichées dans la section « Choses à essayer »). Modifier l'application de sorte à prendre en charge le mode intégré est probablement le meilleur choix pour les développeurs DotNetNuke. Ignorer l'erreur n'est probablement pas une bonne idée. J'aime le troisième choix, celui qui consiste à activer le mode classique en faisant passer l'application Web au .NET AppPool classique, car je souhaite exécuter DotNetNuke 4.7 sans aucun changement sur IIS 7.0.
Figure 4 Informations de diagnostic pour DotNetNuke exécuté en mode intégré (cliquer sur l'image pour l'agrandir)

Architecture IIS
Vous pourriez vous demander ce que signifient ces modes intégrés et classiques et pourquoi ils ont un effet sur l'application ASP.NET (DotNetNuke) mais pas sur l'application PHP (osCommerce). Pour bien comprendre ce phénomène, vous devez tout d'abord jeter un coup d'œil sur l'architecture d'IIS 7.0. Les versions précédentes intègrent le service d'exécution ASP.NET au serveur Web de base, principalement par le biais d'une extension ISAPI (aspnet_isapi.dll). IIS 7.0, d'un autre côté, permet de brancher les modules ASP.NET directement sur le serveur Web de base par l'intermédiaire d'un module HTTP de niveau global appelé ManagedEngine qui charge la DLL de support d'ASP.NET (webengine.dll) dans le pipeline de traitement de requêtes d'IIS 7.0.
Les modules natifs utilisent l'API de base du serveur Web d'IIS pour s'inscrire à des événements spécifiques dans le pipeline tels que BeginRequest, AuthenticateRequest, AuthorizeRequest et ExecuteRequestHandler. En outre, ManagedEngine fournit la prise en charge nécessaire pour intégrer les modules ASP.NET au pipeline de requêtes. Avec cette nouvelle architecture, IIS 7.0 peut invoquer des modules natifs et ASP.NET à n'importe quelle étape du traitement de requêtes quel que soit type de contenu demandé.
En guise d'exemple, considérons l'authentification utilisateur ASP.NET. Dans IIS 6.0, il est possible pour un module HTTP basé sur ASP.NET de s'inscrire à des événements OnAuthenticate (tels que FormsAuthentication.OnAuthenticate et WindowsAuthentication.OnAuthenticate) pour définir l'identité de l'utilisateur dans le HttpContext actuel. Ceci est idéal dans le service d'exécution d'ASP.NET, mais vous ne pouvez pas utiliser ce code ASP.NET pour protéger des ressources exposées par le biais d'une application Web de type PHP.
Conformément à sa configuration scriptmap, IIS 6.0 transfert des requêtes de types de contenu ASP.NET à aspnet_isapi.dll mais il ne transfert pas de requête de types de contenu PHP à l'extension ISAPI pour ASP.NET. Après tout, ASP.NET ne traite pas le code PHP, mais cela signifie également que le code d'authentification ASP.NET ne s'exécute pas si une page PHP est demandée. Ainsi, avec IIS 6.0, vous devez dupliquer la logique d'authentification parce que les applications PHP doivent implémenter leurs propres mécanismes d'authentification.
IIS 7.0 utilise un modèle de traitement piloté par les événements qui prend en charge le mélange et la correspondance de modules individuels dans le pipeline de requêtes. Parmi les autres composants d'IIS 7.0, notons les modules WindowsAuthentication et FormsAuthentication gérés qui déclenchent des événements OnAuthenticate lorsque le pipeline de requêtes lance l'événement AuthenticateRequest. Désormais, un module natif tel que RequestFilteringModule or IpRestrictionModule peut traiter l'événement BeginRequest pour rejeter des requêtes critiques dès que possible, puis exécuter le code d'authentification ASP.NET personnalisé à l'événement AuthenticateRequest et faire en sorte que FastCgiModule exécute le moteur de script PHP (php-cgi.exe) à l'événement ExecuteRequestHandler pour traiter les pages PHP.
Le résultat de cette architecture intégrée est que les développeurs Web n'ont pas à dupliquer le code pour implémenter une logique métier courante. Vous pouvez utiliser le code d'authentification ASP.NET personnalisé pour protéger toutes vos ressources IIS, y compris les applications PHP. En outre, vous pouvez exécuter d'autres tâches de pré et post-traitement par l'intermédiaire des modules ASP.NET, notamment la réécriture des URL, le suivi personnalisé et la journalisation des erreurs.

Modes intégrés et classiques
L'effet secondaire créé par cette nouvelle architecture est que les applications ASP.NET existantes pourraient nécessiter des modifications de code et configuration qui devraient être exécutées par des développeurs d'applications afin d'éviter de créer des conflits de modules dans le pipeline de requêtes. Toutefois, si ne vous pouvez pas immédiatement migrer une application Web existante, vous pouvez activer le mode classique dans le pool d'applications que le processus de travail utilise pour exécuter l'application Web. IIS 7.0 ne charge pas ManagedEngine dans les processus de travail classiques, ce qui implique, dans ce cas, que le pipeline de requêtes ne peut pas corriger ou invoquer des modules ASP.NET. Au lieu de cela, IIS 7.0 active un certain nombre de gestionnaires ISAPI, basés sur IsapiModule (aspnet_isapi.dll), pour traiter les types de contenu ASP.NET identiques à IIS 6.0. Vous le verrez en analysant la section des gestionnaires sous system.webServer du fichier applicationHost.config que vous trouverez par défaut dans le dossier %WinDir%\System32\InetSrv\Config.
Recherchez la chaîne aspx en guise d'exemple et vous trouverez une entrée pointant vers PageHandlerFactory-Integrated (chargée dans les processus de travail de pool d'applications en mode intégré conformément au paramètre preCondition="integratedMode") et d'autres entrées pointant vers PageHandlerFactory-ISAPI-2.0 et PageHandlerFactory-ISAPI-2.0-64 (chargées dans les processus de travail de pool d'applications en mode classique conformément au paramètre preCondition="classicMode").
Vu que le mode de pipeline est défini au niveau du pool d'applications, IIS 7.0 peut exécuter des applications Web en mode intégré et en mode classique simultanément. En outre, les processus de travail ont seulement besoin de s'exécuter dans différents pools d'applications mais peuvent être hébergés sur le même serveur.
N'oubliez pas que le mode intégré et le mode classique n'affectent que la manière dont IIS 7.0 intègre ASP.NET au pipeline de requêtes. Ces modes de pipeline n'ont aucun effet direct sur les applications PHP. Le module FastCgiModule et autres modules natifs se chargent sans aucune condition préliminaire liée au mode du pipeline en mode intégré et en mode classique. FastCGI est l'interface préférée pour l'exécution du moteur de script PHP sur IIS 7.0. Au lieu d'utiliser FastCGI, vous pouvez créer un mappage de gestionnaires pour le moteur de script PHP par le biais de CGI ou utiliser IsapiModule avec PHP-ISAPI (php4isapi.dll).
Je pense, cependant, que ces options de configuration de type IIS 6.0 sont obsolètes maintenant que FastCGI propose des performances et une stabilité considérablement améliorées. CGI est plus lent étant donné qu'IIS doit initialiser un nouveau processus CGI pour chaque requête HTTP tandis que FastCGI réutilise les processus CGI pour plusieurs requêtes. ISAPI nécessite une génération PHP sécurisée au niveau du thread, ce qui implique plus d'efforts que l'exécution d'une génération PHP non sécurisée au niveau du thread.
Ce qui est probablement encore plus important, c'est que les extensions PHP ne sont pas toutes disponibles en version sécurisée au niveau du thread, et il n'est pas conseillé d'exécuter des extensions non sécurisées au niveau du thread avec ISAPI car cela risque de causer des problèmes de stabilité sur le serveur. FastCGI, par contre, est un environnement à simultanéité simple comme CGI. Utilisé pour exécuter un PHP non sécurisé au niveau du thread, FastCGI est stable et rapide et il représente clairement l'option à utiliser avec PHP 5 sur IIS 7.0. Il est également disponible sur IIS 6.0 au cas où vous ne seriez pas encore prêt à effectuer la transition vers IIS 7.0.

Modules et fonctionnalités
IIS 7.0 est doté d'une architecture hautement modularisée ou, comme disent les développeurs IIS, d'un ensemble de fonctionnalités à plusieurs composants. Ceci représente une bonne nouvelle pour les administrateurs Web qui veulent garder l'empreinte mémoire et la surface d'attaque d'IIS 7.0 aussi petites que possible. En activant des modules différents ou peut-être même en remplaçant des modules standard par des modules personnalisés, vous pouvez obtenir le contrôle intégral des fonctionnalités d'IIS 7.0 sur vos serveurs Web.
Pour exécuter ASP.NET en mode intégré ou en mode classique de même que des applications PHP sur le même serveur, vous devez au moins installer le rôle Web Server et les modules de base prenant en charge le traitement de requêtes, la configuration de serveur, ASP.NET, ISAPI et CGI (qui inclut le module FastCGI). Vous pouvez le faire avec la ligne de commande suivante :
start /w pkgmgr /iu:IIS-WebServerRole;
WAS-WindowsActivationService;WAS-ProcessModel;
WAS-ConfigurationAPI;IIS-ASPNET;
IIS-NetFxExtensibility;WAS-NetFxEnvironment;
IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-CGI
En général, je préfère installer IIS 7.0 avec toutes les options disponibles sur mon serveur de transit pour m'assurer que tous les composants et outils d'administration sont disponibles pour m'aider à exécuter mes applications Web aussi rapidement que possible. Ma stratégie est de m'assurer tout d'abord que tout fonctionne normalement avant de réduire la configuration en désinstallant des services de rôle et désactivant des modules. Lorsqu'une application Web commence à éprouver des difficultés, j'ajoute les services de rôle ou les modules que je viens de supprimer.
Vous pouvez également utiliser le Gestionnaire de packages (pkgmgr.exe) ou l'outil de ligne de commande d'IIS 7.0 (appcmd.exe) ou modifier directement la section globalModules du fichier applicationHost.config. Je trouve, toutefois, les outils graphiques très commodes. N'oubliez pas que certains modules, tels que RequestFilteringModule et StaticCompressionModule, sont très utiles bien que, strictement parlant, vous n'en ayez pas besoin pour exécuter vos applications Web. Si vous désinstallez un module qui est nécessaire pour un pool d'applications, vous recevez une erreur HTTP lorsque vous accédez à votre application Web, comme le montre la figure 5.
Figure 5 Une application ASP.NET ne s'exécute pas en mode classique car il manque le module IsapiModule (cliquer sur l'image pour l'agrandir)
Remarque : Assurez-vous que la même série de modules est toujours installée et activée sur tous vos serveurs IIS 7.0. Pour voir les composants installés, allez à HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp\Components\ et vérifiez les clés de registre. Une valeur REG_DWORD de 0000 0001 pour une clé de registre, par exemple pour NetFxEnvironment ou CGI, indique que le composant correspondant est installé.

Migration d'application Web
Assez de théorie maintenant ! Il est temps de passer à la pratique et de migrer des applications Web vers IIS 7.0 ! Comme je l'ai mentionné précédemment, mon serveur de transit exécute IIS 7.0 avec tous les composants disponibles et PHP 5 non sécurisé au niveau du thread enregistrés avec FastCGI. Avant que de commencer, je dois essayer de répondre à quelques questions fondamentales :
  • L'application Web nécessite-t-elle un système de gestion de données tel que SQL Server ou MySQL ?
  • Ai-je besoin d'installer ou configurer des composants supplémentaires tels que les connexions ODBC, les objets COM ou les certificats SSL ?
  • L'application Web nécessite-t-elle des comptes de service spéciaux et des autorisations d'accès local ou à distance élevées vers des partages de fichiers et autres ressources ?
  • Y a-t-il des dépendances sur des fonctionnalités spécifiques aux plates-formes qui ne sont pas disponibles sur IIS 7.0 telles que les dépendances sur le module Apache pour la réécriture d'URL (mod_rewrite) ?
De telles questions vous aideront à exécuter plus rapidement vos applications Web sur IIS 7.0. Par exemple, si vous essayez de migrer une application PHP d'Apache 2.2 qui utilise mod_rewrite (disons, pour une question de convivialité avec les moteurs de recherche ou pour empêcher le détournement de la bande passante à travers les images de type inline), vous connaîtrez des problèmes tant que vous n'avez pas implémenté une solution de réécriture d'URL personnalisée compatible sur IIS 7.0. Fort heureusement, osCommerce ne nécessite pas de fonctionnalités mod_rewrite sur IIS 7.0, mais certains packages d'optimisation de moteur de recherche pourraient les exiger.
À présent que j'ai déterminé et installé les composants supplémentaires requis sur le serveur de transit, je suis prêt à exécuter mes applications Web. Là aussi, je devrais me poser un certain nombre de questions :
  • Quelle est la configuration la plus simple à utiliser pour prendre en charge l'application Web ?
  • Quelle configuration est actuellement utilisée dans l'environnement de production ?
  • Puis-je optimiser la configuration d'application Web sur la nouvelle plate-forme ?
  • Quel est l'ensemble minimal de services de rôle et de modules requis par l'application Web pour fonctionner dans la configuration désirée ?
L'exécution de l'application Web dans la configuration la plus simple est une façon rapide de voir si elle fonctionne. Si tout a l'air normal, il est temps d'appliquer une configuration identique à l'environnement de production existant et d'importer des données de production dans les bases de données de test. Bien sûr, certains problèmes ne pourraient apparaître que dans les configurations avancées.
Vous pourriez également remarquer qu'il existe des possibilités d'amélioration lorsque vous mettez en miroir votre configuration de production dans un laboratoire de test. Un bon moyen de centraliser la configuration de plusieurs serveurs Web est de placer le fichier applicationHost.config sur un partage UNC. Pour augmenter la tolérance aux pannes par le biais de la redondance et de la synchronisation de contenu, pensez à implémenter la réplication de système de fichiers distribués (DFS) qui est un moteur de réplication multi maître basé sur les états, disponible avec Windows Server 2003 R2 et Windows Server 2008. Vous pouvez également réduire les besoins en matière de stockage sur les serveurs Web frontaux en plaçant les fichiers de contenu de vos applications Web sur des partages UNC.
D'autres optimisations potentielles peuvent impliquer la sécurité ou la mise en cache dynamique. Je n'ai pas abordé les questions liées aux optimisations de la sécurité et des performances dans mon laboratoire de test parce qu'elles n'entrent pas dans le cadre de cet article. Je n'ai pas non plus configuré DFS pour éviter d'installer d'autres serveurs. Les instructions détaillées de la documentation associée proposent un exemple simplifié de la manière dont vous pouvez héberger un fichier applicationHost.config et du contenu Web sur les partages UNC. La figure 6 montre comment implémenter une batterie de serveurs Web de type UNC avec DFS.
Figure 6 Déploiement dune batterie de serveurs Web avec un fichier applicationHost.config et du contenu Web sur les partages UNC (cliquer sur l'image pour l'agrandir)

Conclusion
IIS 7.0 est une plate-forme de serveur Web impressionnante. Elle propose une architecture de base reconçue tout en conservant la presque totalité de la compatibilité descendante avec IIS 6.0. Elle devrait être capable d'exécuter la plupart des applications Web ASP.NET existantes sans aucune modification. Toutefois, étant donné l'étendue des modifications architecturales, vous ne pouvez pas supposer que vous ne rencontrez aucun problème de compatibilité.
Si vous migrez des applications Web ASP.NET ou PHP vers IIS 7.0, il est préférable d'adopter une approche échelonnée en mettant l'accent sur la planification, la préparation, le test et la documentation des modifications du code et de la configuration.
IIS 7.0 est un outil d'une grande utilité. Il propose de nombreuses améliorations dans les domaines tels que la sécurité, les performances, la configurabilité et la flexibilité. Il faudrait tout un ouvrage pour les passer en revue. Configuration centralisée et partage de contenu basé sur les partages UNC, configuration déléguée au moyen de fichiers web.config dans les annuaires d'applications, outils de gestion améliorés, informations de diagnostic détaillées et suivi des requêtes en erreur et mise en cache dynamique de la sortie, autant de fonctionnalités qui garantissent une réaction positive de la part des administrateurs Web.
La possibilité de mélanger les modules natifs et les modules gérés dans le pipeline de traitement de requêtes est très utile pour les développeurs ASP.NET. En outre, les améliorations des performances et de la stabilité qui sont proposées avec FastCGI sur IIS 7.0 représentent une excellente nouvelle pour les développeurs d'applications PHP.
Enfin, il existe une autre fonctionnalité importante qui aide les professionnels de l'informatique à réussir avec IIS 7.0 : le portail de la communauté IIS de Microsoft (www.iis.net). Il contient toute les informations dont vous avez besoin, y compris des articles détaillés sur la nouvelle architecture et le code source pour les développeurs C++ et ASP.NET montrant comment créer des modules IIS 7.0 ainsi que des instructions détaillées qui vous aideront à lancer des applications PHP. Ne manquez surtout pas de consulter ce site ! Il vous aidera à trouver des réponses à toutes vos questions sur IIS.

Fergus Strachan est fondateur et directeur de Maestra Ltd London, une entreprise de conseil qui se spécialise dans la conception d'infrastructure informatique et le support de la gestion de projet, dont les clients incluent les banques internationales et les institutions spécialisées dans l'enseignement au Royaume-Uni. Il écrit des articles sur la technologie de serveur de Microsoft et est l'auteur de l'ouvrage Intégration d'ISA Server 2006 à Microsoft Exchange 2007. Il est également coauteur du Kit de ressources Microsoft Exchange Server 2003.

© 2008 Microsoft Corporation and CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.


Communications et collaboration
Planification de la migration vers la messagerie unifiée
Jeff Goodwin
En un coup d'œil :
  • Bref historique de la messagerie vocale
  • Éléments à prendre en compte pour planifier la migration
  • Stratégies de migration
  • Défis posés par des sites multiples

Sommaire
Bref historique de la messagerie vocale
Planification de la migration
Stratégies de migration pratiques
Description d'une migration
Importance d'un plan
Migrer d'un système de messagerie vocale hérité vers une plate-forme de messagerie unifiée peut être un projet difficile. Mais avec une bonne planification, vous pouvez réaliser cette migration assez facilement tout en limitant les interruptions du service subies par les utilisateurs finaux. En fait, minimiser
les interruptions de service devrait être votre principal objectif dans l'exécution d'un projet de migration de ce type.
Pour savoir ce que vous devez planifier pendant votre migration, vous devez commencer par comprendre pourquoi les entreprises considèrent la messagerie vocale comme une application stratégique. Cette information fondamentale vous aidera à comprendre les fonctionnalités que vous devez mettre en œuvre lors d'une migration vers la messagerie unifiée et pourquoi ces fonctionnalités seront importantes pour les administrateurs.

Bref historique de la messagerie vocale
Comme il est impossible de savoir comment arriver à destination sans connaître le point de départ de son voyage, je souhaite revenir en arrière et présenter rapidement les systèmes de messagerie vocale, leur origine et leur élaboration. L'inventeur du premier système de messagerie vocale n'est pas clairement établi. Toutefois, on sait que le premier système de messagerie vocale commercialisé s'appelait VMX, pour Voice Message Exchange (échange de messages vocaux).
VMX a été conçu au départ pour pouvoir communiquer oralement avec d'autres personnes de l'entreprise, tout comme la messagerie électronique aujourd'hui. Le système avait des commandes telles qu'envoyer un message, transférer un message et répondre à un message. L'utilisateur était informé du dépôt d'un message. Il existait plusieurs méthodes de notification, notamment par appel (appeler la personne sur un numéro de téléphone spécifique) ou par un voyant d'attente de message (un voyant s'allumant sur le téléphone de la personne concernée).
Comme la popularité de VMX a continué à progresser, les organisations ont commencé à mettre en réseau leurs systèmes de messagerie vocale. Cela a débouché sur une solution de messagerie vocale à l'échelle de l'entreprise par laquelle les employés pouvaient envoyer des messages de diffusion à des listes de distribution dans toute la société.
Bien entendu, pour pouvoir interagir avec le système de messagerie vocale, une interface utilisateur à touches (TUI) a dû être créée. Ces TUI ont évolué au fil des ans et, malheureusement, il n'existe toujours pas d'interface standard pour la messagerie vocale. Si vous avez une messagerie vocale sur votre téléphone portable, vous êtes probablement habitué à entendre quelque chose du genre « appuyez sur la touche 1 pour la messagerie vocale ». Mais alors que les systèmes de messagerie vocale à reconnaissance vocale, qui utilisent les interfaces utilisateur vocales (VUI), deviennent de plus en plus communs, la TUI elle-même n'est pas aussi importante qu'elle l'était. Cependant, vous ne devriez pas sous-estimer l'attachement que les utilisateurs peuvent avoir à une interface spécifique.
Les systèmes de messagerie vocale d'entreprise actuels reposent sur deux architectures distinctes : distribuée et centralisée. Sur la figure 1, les bureaux de Seattle, New York et Austin ont une architecture de messagerie vocale distribuée, dans laquelle les systèmes de messagerie vocale sont situés au même endroit sur chacun de ces sites. Par opposition, les bureaux de Londres, Paris et Glasgow ont un modèle centralisé, dans lequel l'infrastructure PBX peut être mise en réseau et tous les appels sont réacheminés au site central de Londres. Les deux modèles présentent des avantages et des inconvénients. Mais notez que, même dans un modèle distribué, les systèmes de messagerie vocale peuvent être mis en réseau pour la livraison des messages entre les sites.
Figure 1 Les deux modèles d'architecture de messagerie vocale communs (Cliquer sur l'image pour l'agrandir)
Une entreprise peut choisir d'utiliser un modèle distribué pour trois raisons principales : le besoin d'une disponibilité locale, l'utilisation de systèmes PBX disparates qui ne peuvent pas être mis en réseau et des restrictions de plan de numérotation uniforme.
Certaines organisations ont besoin d'une messagerie vocale pour qu'en cas de défaillance du réseau, le système de messagerie vocale et PBX local fonctionne toujours normalement, assurant la fonctionnalité totale du système du site. Les systèmes à réponse vocale interactive (IVR) fonctionnent toujours et les appelants externes peuvent toujours laisser des messages. En effet, il n'y a pas d'impact sur les utilisateurs finaux et le fonctionnement continue normalement. Cela peut vous sembler familier. C'est la même raison pour laquelle de nombreuses organisations choisissent de localiser leurs serveurs exécutant Microsoft® Exchange Server. Votre organisation peut vouloir réaliser une évaluation des risques pour déterminer si cette survivabilité localisée est nécessaire.
Lorsqu'une organisation se développe par des acquisitions, les sites distants ont souvent des plates-formes PBX qui ne peuvent pas être mises en réseau avec le reste de l'infrastructure. Dans ce cas, les organisations peuvent modifier le PBX, ce qui peut être un projet coûteux, ou laisser le site intact et mettre en réseau la plate-forme de messagerie vocale pour assurer un échange de messagerie vocale continu. Des serveurs tiers sont également disponibles pour vous aider à mettre en réseau vos systèmes de messagerie vocale disparates.
Pour mettre en réseau des PBX, un plan de numérotation uniforme (UDP) est nécessaire. Un UDP dit que les extensions de téléphone et de messagerie vocale ne peuvent pas se chevaucher. Sur la figure 1, vous remarquerez que Seattle, New York et Austin ont des plages d'extension se chevauchant. C'est parce qu'il n'existe pas d'UDP pour les sites situés aux États-Unis. Un UDP peut être créé en étendant les plages d'extension à 7 ou 10 chiffres, mais cela engendre d'autres problèmes.
Il peut être nécessaire de modifier les modèles de numérotation sur chaque téléphone, de modifier toutes les extensions d'utilisateur sur le PBX et de modifier toute application intégrée au système. Cela peut provoquer une certaine frustration chez les employés qui doivent désormais se souvenir de et composer des numéros à 7 ou 10 chiffres pour appeler quelqu'un à l'autre bout du couloir.
Bien que ces caractéristiques fondamentales et ces défis architecturaux aient été améliorés au fil des ans, les principes fondamentaux de la messagerie vocale restent les mêmes. L'échange de messages, la mise en réseau, les méthodes de notification, l'interface utilisateur et l'architecture sont tous des facteurs importants que vous devez garder présent à l'esprit lorsque vous planifiez une migration.

Planification de la migration
La messagerie unifiée s'accompagne de changements dans l'ensemble de l'organisation : de la façon dont les utilisateurs interagissent avec la messagerie vocale à la façon dont l'architecture est conçue, en passant par la façon dont les administrateurs contrôlent la gestion. Toutes ces différences doivent être traitées lorsque vous migrez vers un système de messagerie unifiée. Vous trouverez ci-dessous une liste des choses à prendre en compte pour planifier votre migration.
Mise en réseau des messages Toute organisation passant d'une plate-forme de messagerie vocale héritée à la messagerie unifiée Exchange doit prévoir une période de coexistence. Si votre organisation a déjà déployé la mise en réseau des messages, système permettant l'interaction de différents systèmes de messagerie vocale, ajoutez simplement le système de messagerie unifiée à la liste des systèmes existants. Je recommande fortement la mise en réseau des messages à toute entreprise ayant plusieurs sites avec des systèmes PBX ou de messagerie vocale séparés.
Infrastructure La conception de l'infrastructure pour la messagerie unifiée impose de prendre des décisions concernant les exigences de mise en réseau, l'intégration téléphonique, l'emplacement des serveurs et ainsi de suite. Si vous ne connaissez pas les stratégies fondamentales de déploiement, lisez mon précédent article « Déploiement de messagerie unifiée avec Exchange Server 2007 » (voir technet.microsoft.com/magazine/cc137737).
Standards automatiques De nombreux systèmes contiennent plusieurs standards automatiques, par exemple pour la journée, pour la nuit et pour divers services. Vous devrez travailler avec l'équipe de télécommunications de votre entreprise pour refléter les standards automatiques sur les systèmes de messagerie vocale hérités.
Indication de message en attente Vous pouvez souhaiter vous passer des indicateurs d'attente de message pour votre solution, mais vos utilisateurs exigeront probablement cette fonctionnalité. Ne sous-estimez pas l'attachement des utilisateurs à ce voyant rouge d'information. Heureusement, plusieurs entreprises ont développé des applications d'indication de message en attente pour Exchange Server.
Prise en charge des télécopies De nombreuses plates-formes de messagerie vocale héritées prennent en charge les télécopies entrantes. La messagerie unifiée Exchange prend également en charge les télécopies sortantes. En conséquence, vous pouvez vouloir planifier cette prise en charge dans votre nouveau déploiement.
Réponse vocale interactive Certaines plates-formes de messagerie vocale héritées prennent en charge les applications de réponse vocale interactive (IVR) que la messagerie unifiée Exchange ne peut pas dupliquer. Vous souhaiterez peut-être laisser ces systèmes en place jusqu'à ce qu'une autre solution convenable soit trouvée.
Administration La messagerie unifiée Exchange repose sur Active Directory® et le rôle de serveur de boîtes aux lettres Exchange. Vous devrez prévoir comment l'administration, la configuration requise et autres seront affectées par un déploiement de la messagerie unifiée.
Interface utilisateur Pour déployer une nouvelle interface utilisateur, vous devez former vos utilisateurs. La messagerie unifiée Exchange utilise une interface très similaire à celle de la plupart des fournisseurs de téléphonie portable. Elle devrait donc être assez intuitive pour la plupart des utilisateurs. Elle utilise également la reconnaissance vocale de sorte que les utilisateurs n'ont pas besoin d'utiliser les touches. Dans Exchange Server, il s'agit d'Outlook® Voice Access.
Formation La messagerie unifiée apporte un changement de paradigme dans la façon dont vos utilisateurs communiquent et utilisent la messagerie vocale. Au-delà de l'interface utilisateur, vous devez dispenser une formation à vos utilisateurs pour enseigner les méthodes recommandées et présenter les nouvelles façons plus efficaces dont ils pourront communiquer. Par exemple, les utilisateurs peuvent ne pas savoir comment interagir avec la messagerie vocale dans leur boîte de réception ou comment configurer certains paramètres avancés de la messagerie unifiée.

Stratégies de migration pratiques
Il ne fait aucun doute que faire migrer une grande organisation vers une solution de messagerie unifiée pose de réels défis. Toutefois, je travaille dans les communications unifiées depuis 10 ans et j'ai vu même les organisations les plus complexes, avec des exigences spécifiques, migrer avec succès.
Qu'il s'agisse d'une organisation à un seul ou à plusieurs sites, il sera utile de baser la stratégie de migration autour de ces cinq étapes fondamentales :
  1. Planification et conception de votre solution.
  2. Installation et configuration du rôle de serveur de messagerie unifiée.
  3. Migration d'un groupe pilote.
  4. Révision de votre conception à partir des commentaires du groupe pilote.
  5. Migration de vos utilisateurs.
Bien sûr, les organisations à plusieurs sites font face à certains défis généralement absents des scénarios pour site unique. J'aborde ces défis séparément dans l'encadré « Défis multisites ».
La planification et la conception de votre solution sont les étapes les plus importantes du processus de migration. Je vous recommande d'affecter une équipe Messagerie unifiée au projet. Cette équipe doit inclure des représentants de divers secteurs de votre organisation ayant une expertise dans les domaines suivants : télécommunications, Active Directory, Exchange, mise en réseau, sécurité, formation et gestion de projet. Vous devez également disposer du schéma architectural détaillé des infrastructures PBX, de messagerie vocale et de messagerie électronique existantes de votre société.
Une fois la conception terminée, vous pouvez installer et configurer le rôle de serveur de messagerie unifiée. N'ayez pas peur d'installer un serveur de messagerie unifiée parallèlement à votre système de messagerie vocale hérité existant. Veillez à suivre les méthodes recommandées décrites.
À ce stade, vous êtes prêt à tester votre serveur de messagerie unifiée. Constituez et migrez un petit groupe pilote d'utilisateurs vers le nouveau système. Un groupe composé de 25 à 50 utilisateurs sera parfait. Choisissez ces utilisateurs avec soin, en créant un groupe pilote composé d'utilisateurs travaillant dans les secteurs de l'informatique et des télécommunications, de chefs de service et de commerciaux. En impliquant des personnes aussi variées, vous pouvez mieux déterminer si votre conception atteint sa cible, les exigences spécifiques à prendre en compte, la formation nécessaire pour les utilisateurs, et ainsi de suite.
Après avoir reçu les commentaires du groupe pilote, vous devrez réviser votre conception pour traiter les problèmes découverts pendant le test. En particulier, reprenez les éléments traités à la section « Éléments à prendre en considération » et assurez-vous d'avoir correctement traité ces points pour votre organisation. Notez que les modifications les plus communes apportées à ce stade concernent généralement la formation.
L'étape finale consiste à migrer vos utilisateurs. Il y a de nombreuses opinions et stratégies quant à la migration du système vers une production totale. Les deux principales méthodes sont la migration progressive et la migration rapide.
Si vous choisissez de migrer progressivement votre communauté d'utilisateurs sur plusieurs semaines ou mois, vous créerez des îlots de messagerie vocale entre les utilisateurs du système hérité et de la messagerie unifiée. Cela empêche les utilisateurs de s'envoyer des messages via messagerie vocale. Et si votre conception n'inclut pas de solution de mise en réseau des messages, vous interromprez certaines communications de votre entreprise. Si vous souhaitez procéder ainsi, je vous recommande d'inclure une solution de mise en réseau des messages dans votre conception initiale.
Pour une migration rapide, déplacez tous vos utilisateurs en une seule phase. Les organisations exécutent généralement ce type de migration sur un week-end de sorte à avoir le temps de tester le système, de modifier la configuration si nécessaire et d'annuler la migration en cas de problème important.
Quelle que soit la méthode retenue, veillez à former votre personnel du support technique sur les questions courantes et les réponses collectées auprès de votre groupe pilote. Vérifiez également que le support technique est compétent lorsqu'il s'agit d'exécuter les tâches principales, y compris activer un utilisateur, valider l'activation d'un utilisateur et modifier un mot de passe.

Étapes d'une migration
Alors que je poursuis ma migration exemple, gardez présent à l'esprit que l'objectif principal d'une migration réussie vers la messagerie unifiée est de déplacer la boîte de messagerie vocale de l'utilisateur d'une plate-forme de messagerie vocale héritée vers la messagerie unifiée avec une interruption du service minimale pour les utilisateurs (internes et externes).
La figure 2 détaille l'architecture d'une organisation. Il n'est pas prévu de modifier cette architecture Exchange mixte. Les bureaux basés aux États-Unis ont un centre de données principal situé à Seattle. Toutes les applications informatiques pour Austin sont assurées depuis Seattle et le bureau de New York prend en charge les services Exchange localisés. La messagerie vocale pour les sites américains est distribuée en raison de l'infrastructure PBX disparate. Techniquement, l'infrastructure PBX ne peut pas être mise en réseau pour fournir une messagerie vocale centralisée. Les bureaux européens, au contraire, ont un centre de données centralisé situé à Londres. Toutes les applications informatiques et télécommunications d'Europe sont assurées depuis ce centre de données central.
Figure 2 Architecture exemple avant la migration (Cliquer sur l'image pour l'agrandir)
L'infrastructure de messagerie vocale toute entière est basée sur la plate-forme Octel (maintenant appelée Avaya). Tous les systèmes de messagerie vocale ont été mis en réseau en utilisant la mise en réseau analogique Octel (OAN), qui est un protocole de mise en réseau propriétaire utilisant des lignes téléphoniques analogiques et des appels longue distance pour envoyer des messages de messagerie vocale en réseau. Cette architecture permet une messagerie vocale à l'échelle de l'entreprise entre les sites.
Défis multisites
Les entreprises multisites sont confrontées à plusieurs défis lors du déploiement de la messagerie unifiée. Heureusement, les réponses trouvées par d'autres organisations peuvent vous aider. Je ne peux pas tout couvrir dans cet article, mais je peux vous parler des défis les plus communs que j'ai rencontrés en travaillant avec diverses organisations.
« J'ai une architecture Exchange Server centralisée et un environnement de téléphonie mixte ».
Un environnement distribué est facile à concevoir. Vous placez un serveur de messagerie unifiée et l'intégrez avec le PBX local sur chaque site. Mais que faire si vous avez un environnement centralisé, voire mixte ? La question à vous poser est de savoir si vous avez besoin d'une survivabilité locale de la messagerie unifiée sur le site. Avec la survivabilité locale de la messagerie unifiée, cet emplacement peut perdre sa connexion au serveur Exchange centralisé mais toujours assurer la fonctionnalité de standard automatique et permettre aux appelants extérieurs (très probablement des clients) de laisser des messages. La réponse dépend probablement du niveau stratégique de cet emplacement et de la facilité de gestion de la solution.
Si vous avez besoin d'une survivabilité locale pour votre site, un serveur de messagerie unifiée distant sur le site peut être une bonne option. S'il ne s'agit pas d'une exigence, vous pouvez installer une passerelle SIP sur le site local. Grâce à la flexibilité de la messagerie unifiée Exchange, il n'est pas indispensable de mettre en réseau l'infrastructure PBX, ni de créer un plan de numérotation uniforme.
« Je suis en train de mettre à niveau mon architecture Exchange ».
Beaucoup de clients hésitent à lancer une migration vers la messagerie unifiée pendant qu'ils mettent à niveau leur infrastructure Exchange. Mon conseil est que si vous avez déjà décidé de passer à la messagerie unifiée, continuez et migrez pendant la mise à niveau du serveur Exchange. Suivez simplement vos plans de mise à niveau. Aucune complexité importante ne devrait être ajoutée au projet.
« J'ai plusieurs petits sites avec moins de 10 employés et certains de ces sites n'ont pas de PBX ».
Sur les petits sites qui disposent d'un PBX sur place, il suffit d'installer une passerelle SIP sur le site local. Pour les sites sans PBX sur place, il est possible d'utiliser des techniques de téléphonie pour transférer les téléphones au PBX central pour le routage d'appel vers le système de messagerie unifiée. En bref, vous pouvez déployer des services de messagerie unifiée vers les petits sites distants de votre organisation pour un coût très réduit.
Il est important de noter que ces petits sites constituent en fait un super banc d'essai pour votre migration. Une stratégie de migration commune consiste à commencer au bord du réseau puis à se rapprocher du centre. Vous migrez les petits sites en premier puis établissez un compte-rendu avec l'équipe Messagerie unifiée pour savoir ce qui s'est bien passé et quels problèmes ont été rencontrés. Vous pouvez ensuite mettre en œuvre les leçons apprises en migrant le site suivant.
L'équipe Messagerie unifiée a décidé de migrer du bord du réseau vers le centre. Pour tous les sites, l'emplacement du serveur de messagerie unifiée suit la méthode recommandée consistant à suivre l'architecture Exchange Server. L'équipe crée sa propre documentation de planification pour chaque site, en gardant présents à l'esprit les articles abordés à la section « Éléments à prendre en considération ». La documentation est utilisée pendant l'installation et la configuration des serveurs, pendant la formation des utilisateurs et pendant la planification des stratégies de migration.
Pour chaque site, l'équipe planifie la migration rapide des utilisateurs vers le système de messagerie unifiée et l'abandon de la plate-forme héritée en place pour prendre en charge les applications IVR qui restent utilisées jusqu'à ce qu'une autre solution puisse être trouvée. L'équipe a décidé d'attendre 30 jours après la migration avant de passer au site suivant. La période d'attente permet de garantir que chaque site s'est adapté à la nouvelle plate-forme avant de faire migrer d'autres utilisateurs et d'ajouter d'autres appels au support technique.
L'organisation décide de migrer le site d'Austin en premier. Comme la messagerie électronique d'Austin est gérée depuis Seattle, l'équipe installe le rôle de serveur de messagerie unifiée à Seattle et assure une intégration PBX en installant une passerelle SIP à Austin. Et comme la plate-forme de messagerie vocale héritée est mise en réseau, l'équipe doit traiter la nécessité d'une mise en réseau de la plate-forme de messagerie unifiée en installant un serveur de mise en réseau des messages. Les utilisateurs sont formés au nouveau système et la migration se passe sans problème. Ensuite, l'équipe décide de migrer New York.
Le site de New York a ses propres serveurs de boîtes aux lettres et de transport Hub. En conséquence, les méthodes recommandées prévoient qu'un serveur de messagerie unifiée soit installé à New York. L'équipe installe le serveur, en suivant les documents de planification de la migration. Le serveur est ajouté à la liste de nœuds dans le serveur de mise en réseau des messages pour être inclus au réseau de messagerie vocale. Les utilisateurs sont formés et migrés sans problème vers la messagerie unifiée.
Le site de Seattle a déjà un serveur de messagerie unifiée déployé depuis la phase de migration d'Austin. L'équipe détermine que le serveur contient assez de ports de messagerie vocale pour prendre en charge les sites de Seattle et d'Austin. Les utilisateurs de Seattle sont formés et migrés vers la messagerie unifiée.
L'architecture en Europe est beaucoup plus facile à concevoir. L'infrastructure PBX est mise en réseau et Exchange est centralisé. Un serveur de messagerie unifiée est déployé à Londres et chaque site est migré, en commençant par le plus petit site. La figure 3 illustre l'architecture finale.
Figure 3 Architecture exemple après la migration (Cliquer sur l'image pour l'agrandir)

Importance d'une planification
On m'a demandé de résoudre de nombreuses migrations ratées vers la messagerie unifiée. Beaucoup de ces organisations n'avaient pas respecté une ou plusieurs règles de base.
Tout d'abord, n'oubliez jamais qu'il ne s'agit pas seulement d'un système de messagerie vocale. C'est une application stratégique, qui doit être traitée comme telle. Les utilisateurs comptent sur les technologies de la messagerie vocale pour échanger des informations. Gardez présent à l'esprit qu'il s'agit d'une application professionnelle et planifiez votre migration pour tenir compte de tous les éléments abordés dans cet article.
Vous devez absolument impliquer l'équipe de télécommunications dans toute migration vers la messagerie unifiée. L'équipe de télécommunications comprend le mieux les applications de téléphonie intégrées à l'infrastructure de l'entreprise.
En migrant vers la messagerie unifiée, planifiez la solution d'entreprise. Même si vous ne vous occupez que d'un seul site au début, vous devez toujours garder l'image globale à l'esprit. Par exemple, mettre en œuvre un seul site sans fournir de mise en réseau des messages à vos autres sites affectera les communications entre les utilisateurs. Bien entendu, il peut s'agir d'un travail important. N'ayez pas peur de consulter un spécialiste pour concevoir une architecture tenant compte de l'intégralité de vos applications informatiques.
Enfin, ne sous-estimez pas l'importance de la formation. La messagerie unifiée apporte un changement de paradigme dans la façon dont les utilisateurs communiquent et interagissent avec la messagerie vocale. Ce qui vous semble intuitif, peut ne pas l'être pour d'autres. Une bonne formation est indispensable pour créer la meilleure transition possible.

Jeff Goodwin est technicien senior chez The VIA Group, spécialisé dans la conception et le déploiement d'Exchange et de messagerie unifiée. Vous pouvez le contacter à l'adresse suivante : jgoodwin@theviagroup.com.

© 2008 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.


Communications et collaboration
Pilotage vocal d'OCS 2007
Rajesh Ramanathan
En un coup d'œil :
  • Appels avec OCS 2007
  • Mode de sécurisation des appels
  • Conversations multimodales dans OCS
  • Intégration avec la messagerie unifiée d'Exchange pour la messagerie vocale

Sommaire
Appels vocaux de base
Utilisation des numéros de téléphone
Appels sécurisés
Franchissement des NAT et pare-feu
Routage des numéros de téléphone
Routage entrant
Rapports qualité et résolution des incidents
Vue d'ensemble
Comportement multimodal et conversations
Messagerie vocale
Conclusion
La première partie de cette série sur Microsoft Office Communication Server (OCS) 2007 expliquait comment OCS reprenait les points forts de Live Communication Server (LCS) 2005 pour mettre en place
une messagerie instantanée améliorée pour les entreprises et des fonctionnalités de présence, ainsi que des supports avancés et une fonctionnalité téléphonique (voir l'édition de février 2008 de TechNet Magazine sur technet.microsoft.com/magazine/cc194409). Le présent article permet d'approfondir l'aspect VoIP (Voice over IP). J'expliquerai comment de simples appels vocaux sont passés dans le système OCS et je présenterai la technologie couche par couche, de façon à ajouter chaque composant à la fonctionnalité correspondante.
Comme mentionné dans l'article précédent, OCS peut être configuré pour fournir des services de téléphonie sous plusieurs configurations :
Enterprise Voice Cette solution de communications unifiées complète a recours à OCS, ainsi qu'au serveur Microsoft® Mediation sans nécessiter de PBX. La messagerie unifiée d'Exchange apporte des fonctionnalités de messagerie vocales à ce système. Je ferais référence aux utilisateurs de ce service sous la forme « utilisateurs UC » dans le reste de cet article. J'utiliserai également le terme « point de terminaison UC » pour faire référence à un client dans cette configuration.
Enterprise Voice avec intégration de PBX Cette configuration permet aux utilisateurs de bénéficier de tous les avantages des communications unifiées tout en conservant les téléphones PBX existants sur leur bureau. Elle permet de configurer OCS et les PBX en parallèle de façon à ce que les appels entrants puissent atteindre les points de terminaison Office Communicator et PBX de façon simultanée. Le PBX possède toujours le routage d'appel et fournit les services de messagerie vocale.
Contrôle distant des appels Cette fonctionnalité utilise le téléphone PBX en tant que téléphone principal et permet de contrôler le téléphone via le client Office Communicator.

Appels vocaux de base
La section suivante porte sur le traitement des utilisateurs d'Enterprise Voice. Les appels vocaux simples sont configurés dans le système OCS à l'aide du mécanisme SIP INVITE, tel qu'il est décrit dans RFC 3261. Le serveur OCS tient le rôle d'un proxy similaire à un administrateur qui relaie des messages entre les clients (ou des points de terminaison). Les nouveaux SIP INVITE proviennent de clients lorsqu'une session en temps réel, telle qu'un appel ou une session de messagerie immédiate, est créée. Si INVITE est validé avec une réponse (dans ce cas, le point de terminaison distant envoie une réponse 200 OK), l'appel est établi (voir figure 1).
Figure 1 Format INVITE et 200 OK
INVITE sip:bob@example.com SIP/2.0
To: <sip:bob@example.com>
From: <sip:alice@example.com>;tag=5c5ffe5428;epid=d793aff63a
Call-ID: 3522acd5acd349b4855871e3100a5f4f
CSeq: 2 INVITE
Contact: sip:alice@xyz.example.com
Content-Type: application/sdp
Content-Length: 156

**Note: Alice Audio SDP payload not shown**

SIP/2.0 200 OK
To: <sip:bob@example.com>;tag=f5c728454a;epid=e73443245
From: <sip:alice@example.com>;tag=5c5ffe5428;epid=d793aff63a
Call-ID: 3522acd5acd349b4855871e3100a5f4f
CSeq: 2 INVITE
Contact: sip:bob@xyz.example.com
Content-Type: application/sdp
Content-Length: 160

**Note: Bob Audio SDP payload not shown**
Dans la figure 2, Alice appelle Bob en choisissant Communicator Call dans Office Communicator (OC) 2007 et OC 2007 envoie un signal INVITE à l'URI SIP de Bob (sip:bob@exemple.com). Le signal INVITE comporte le descripteur de session audio (appelé SDP, pour le protocole SDP - Session Description Protocol) des points de terminaison multimédia où Alice peut recevoir les données audio. OCS transmet le signal INVITE aux points de terminaison SIP enregistrés de Bob (par exemple, Communicator Phone Edition et Communicator Desktop). Le signal INVITE contient un en-tête De provenant de sip:alice@exemple.com. Ces informations sont utilisées par les points de terminaison client de Bob lors d'une recherche de nom inversée, RNL (Reverse Name Lookup), portant sur (Alice) et à afficher dans la notification d'appel entrant.
Figure 2 Routage d'un appel vers plusieurs points de terminaison (cliquer sur l'image pour l'agrandir)
Le GRUU (Globally Routable User Agent URI) s'affiche pour chaque point de terminaison. Le GRUU identifie de façon unique le point de terminaison SIP et s'obtient pendant le processus d'enregistrement du serveur OCS. L'adresse GRUU permet de router des messages SIP. Ainsi, lorsque l'appel est pris par un point de terminaison, les signalisations SIP suivantes pour les autres opérations en cours d'appel peuvent être transmises entre les points de terminaison à l'aide de l'adresse GRUU.
La figure 3 poursuit le processus, dans lequel Bob répond depuis le bureau Communicator. La session OC de Bob envoie un message 200 OK indiquant qu'il peut recevoir des données audio. Dès que le proxy OCS détecte la réponse d'un point de terminaison, il annule l'appel aux autres points de terminaison Communicator Phone Edition. Lorsque la réponse 200 OK atteint le point de terminaison Communicator d'Alice, les deux points de terminaison Communicator disposent d'informations suffisantes (ports IP, paramètres de chiffrement, et ainsi de suite) pour lire le média.
Figure 3 Réponse à partir d'un point de terminaison (cliquer sur l'image pour l'agrandir)

Utilisation des numéros de téléphone
Jusqu'à présent l'utilisateur cliquait sur Communicator Call (Appel Communicator) pour créer une invitation. Le processus est un peu différent lorsque l'utilisateur sélectionne ou tape un numéro de téléphone :
  • Le client normalise en premier lieu le numéro de téléphone et le représente sous forme d'URI TEL, qui décrit les ressources identifiées par les numéros de téléphone comme indiqué dans RFC 3966.
  • Dans la mesure où le serveur OCS reconnaît uniquement les URI SIP, les clients convertissent l'URI TEL sous forme d'URI SIP en ajoutant le suffixe de domaine et une balise user=phone.
  • Si le numéro correspond à un utilisateur interne, OCS route l'invitation de façon directe. Si le numéro est externe, l'invitation est routée vers la passerelle SIP-PSTN la plus proche.
Certains appels vers le réseau public commuté (RTC) nécessitent la mise en place du chemin multimédia avant de répondre à l'appel, de façon à ce que les annonces distantes puissent être lues ou que des chiffres supplémentaires soient rassemblés pour compléter l'appel. Dans ce genre de scénario, la passerelle RTC envoie l'indicateur 183 de progression de session avec un SDP audio. Communicator utilise ces informations pour configurer un chemin multimédia bidirectionnel avec un point de terminaison de destination avant la prise d'appel par l'utilisateur distant.
Une fois le chemin multimédia initial configuré, Communicator active la tonalité de signalement du téléphone (DTMF - Dual-Tone Multi-Frequency, multifréquence en code) de façon à permettre à l'utilisateur d'entrer les chiffres supplémentaires requis par le système à distance. Les chiffres DTMF entrés sont envoyés sur le chemin multimédia sous forme de paquets RFC 2833. La passerelle RTC se charge de générer les signaux DTMF nécessaires côté RTC.
Si Bob a activé la sonnerie simultanée sur son téléphone cellulaire, le proxy OCS route l'appel vers la passerelle et fait sonner tous les points de terminaison Communicator de Bob en même temps. Dans ce type de scénario, le proxy OCS indique que la bifurcation est active dans la réponse 183 de progression de session, et ceci permet force Communicator à établir un canal multimédia dédié aux réponses vers la passerelle RTC.

Appels sécurisés
L'une des principales fonctionnalités des appels vocaux configurés par OC est que le support est chiffré par défaut au moyen du protocole SRTP (Secure Real-Time Transport Protocol), comme défini dans RFC3711. Le protocole SRTP assure au trafic RTP la confidentialité, l'authentification de messages et la protection contre les répétitions. Lors de la configuration des appels, les clients négocient les fonctionnalités de sécurité entre eux et échangent des clés cryptographiques dans le cadre du mécanisme INVITE.
Le paramètre de chiffrement par défaut pour OC est « optional » (facultatif), ce qui permet à deux points de terminaison OC de configurer un canal multimédia chiffré. Ce paramètre peut être réglé par l'administrateur en fonction des besoins de mise en conformité de l'organisation. Par exemple, vous pouvez le rendre plus strict de façon à imposer le chiffrement sur tous les appels ou il peut être désactivé.

Franchissement des NAT et pare-feu
Les clients du système OCS ont recours à la technologie ICE (Interactive Connectivity Establishment) pour assurer une connectivité multimédia aux utilisateurs derrière les périphériques de conversion réseau (NAT) et les pare-feu, sans modifier les composants NAT existants. La technologie ICE est en cours de standardisation par Internet Engineering Task Force (IETF). Chaque client a connaissance du serveur audio/vidéo (A/V) Edge qui le dessert par l'intermédiaire d'un mécanisme d'attribution de privilèges d'accès et maintient un lien authentifié vers le serveur A/V Edge pendant l'ouverture de session.
Avant de téléphoner, le client alloue des ressources aux emplacements de connectivité possibles (les adresses et les ports, également appelés des candidats) sur le serveur Edge A/V (pour le relais multimédia), sur le NAT, voire sur le client hôte. Lorsque la commande INVITE du protocole SIP (Session Initiation Protocol) est envoyée, il inclut ces informations de connectivité dans la commande INVITE. La réponse 200 OK contient des informations similaires sur l'homologue. Lorsque chaque point de terminaison comporte une liste de candidats homologues, un mécanisme complexe de classement et de vérification sélectionne le chemin optimal entre les deux homologues et avec lequel le média est sûr d'aboutir.

Routage de numéros de téléphone
Le routage des numéros de téléphone rend plus complexe le mécanisme d'appel de base en raison des facteurs suivants :
  • Les entreprises peuvent adopter différents plans de numérotation en interne pour la numérotation abrégée.
  • Les numéros peuvent être enregistrés sous des formats non standard (par exemple, les utilisateurs peuvent avoir enregistré des chaînes à sept chiffres dans Microsoft Office Outlook®).
  • Différentes stratégies peuvent être associées à différents numéros sortants. Par exemple, la numérotation de numéros internationaux peut être bloquée pour certains utilisateurs.
Le système OCS nécessite des numéros de téléphone au format RFC 3966 TEL URI afin de les router correctement. Les numéros qui ne sont pas à ce format peuvent être convertis avant que le client envoie une commande INVITE. Le diagramme de la figure 4 indique comment ceci se produit dans le système OCS.
Figure 4 Routage des numéros de téléphone (cliquer sur l'image pour l'agrandir)
Les numéros mis à la disposition du client peuvent provenir de sources diverses. Les numéros prénormalisés proviennent du service de carnet d'adresses et peuvent comporter des règles de normalisation définies par l'administrateur pour la conversion des numéros au format normalisé E.164. Lorsqu'un client envoie une commande INVITE SIP au numéro normalisé, OCS applique un processus de conversion pour mapper le numéro à un utilisateur interne.
  • L'étape 1 indique que les numéros qui entrent dans le système sont uniques (normalisés suivant le plan de numérotation E.164) ou avec un contexte téléphonique qui identifie l'emplacement. Ces numéros sont envoyés au serveur au sein du paramètre INVITE SIP. OCS route INVITE vers le processus de conversion.
  • Le processus de conversion (étape 2) tente de mapper le numéro de téléphone avec un point de terminaison UC au moyen d'un RNL côté serveur. La conversion permet d'identifier la voie de routage sortant ou vers un utilisateur UC ou de faire échouer l'appel avec un code 4xx si le numéro ne peut pas être converti correctement.
  • Si le numéro est converti en un numéro non UC ou externe, il est envoyé au composant de routage sortant, qui redirige le paramètre INVITE vers la passerelle SIP-RTC appropriée pour y effectuer des traitements supplémentaires, après avoir appliqué des stratégies au numéro correspondant à l'appelant (étape 3A). Le routage sortant se charge de l'équilibrage de la charge de l'appel sur les différentes passerelles ou d'employer des passerelles différentes si nécessaire. Le processus de routage sortant peut faire échouer ou refuser l'appel et renvoyer un code de réponse SIP 403 si l'accès est interdit pour un numéro donné. Le routage sortant ne s'applique que lorsque l'appelant est un utilisateur UC. Lorsque ce n'est pas le cas, OCS tente d'utiliser les voies statiques vers les passerelles configurées pour cet URI.
  • Si le numéro est converti en un numéro d'utilisateur UC, le paramètre INVITE est routé vers l'URI SIP de cet utilisateur (étape 3B). Le routage entrant est une fonction OCS qui s'applique uniquement aux utilisateurs UC et à tous les appels ciblés vers l'URI SIP. Comme vous pouvez le constater, le routage entrant applique des règles d'expiration des sonneries, de transfert d'appel et de transfert des messages vocaux pour l'utilisateur UC.
Le numéro qui résulte du processus de normalisation peut varier en fonction de l'emplacement du client. Les administrateurs peuvent configurer les profils d'emplacement et appliquer des règles de conversion de numéros spécifiques à un emplacement donné, telles que le fonctionnement d'un code à quatre chiffres à cet emplacement. Chaque utilisateur UC est associé à un profil d'emplacement et tous les clients du système téléchargent les règles spécifiques propres à leurs profils d'emplacement au moyen de l'attribution de privilèges d'accès. Nous allons voir plus en détails le routage entrant.

Routage entrant
Les règles de routage entrant spécifient la façon dont les appels vers un utilisateur doivent être routés en présence ou en l'absence de clients inscrits dans le système. Le composant de routage entrant prend également en charge l'application de règles de présence en fonction de l'appel entrant. Par exemple, il peut transférer les appels entrants vers la messagerie vocale si l'utilisateur a défini l'état de présence sur Ne pas déranger. Le routage entrant tient compte des niveaux du conteneur de présence et refuse automatiquement les appels de rejet des utilisateurs figurant dans les conteneurs bloqués. La figure 5 affiche le résumé des options prises en charge par le composant de routage entrant d'OCS.
Figure 5 Fonctionnalités de routage entrant
Fonctionnalité | Commentaire
Durée de sonnerie | La valeur par défaut est de 20 secondes. L'utilisateur peut sélectionner une valeur maximale de 60 secondes. Les appels sont détournés vers la destination d'appel non répondus à l'issue de ce délai.
Routage des appels non répondus vers la messagerie vocale | Utilisé par défaut si la messagerie vocale est activée pour l'utilisateur. L'appel est routé en fonction des règles de routage entrantes.
Génération de notification d'appel non pris lorsque le correspondant raccroche avant d'atteindre la messagerie vocale | Notification de la messagerie unifiée d'Exchange pour ces appels.
Call blocking (Blocage d'appels) | Les appels refusés des visiteurs bloqués (seuls les appels provenant des utilisateurs avec une identité SIP peuvent être bloqués).
Do Not Disturb (Ne pas déranger) | Route les appels vers la messagerie vocale. Les destinations de sonnerie simultanées ne sont pas utilisées lorsque l'utilisateur a activé ce mode.
Allow Interrupt List (Autoriser la liste d'interruptions) | Autorise les appels lorsque l'appelant figure dans le conteneur Team, même si l'utilisateur a sélectionné Do Not Disturb.
Simultaneous Ring (Sonnerie simultanée) | Fait sonner les appels entrants sur un numéro RTC en même temps que sur les clients Communicator et Communicator Phone Edition.
Call Forwarding Immediate (Transfert d'appels immédiat) | Transfère un appel entrant immédiatement vers un autre utilisateur, un numéro de téléphone RTC ou la messagerie vocale.
Call Forwarding Unanswered (Transfert d'appels sans réponse) | Transfère un appel sans réponse vers un autre utilisateur, un numéro de téléphone RTC ou la messagerie vocale.
Working Hours (Heures ouvrables) | Utilise les heures de travail configurées sur le calendrier Outlook pour activer les paramètres de transfert d'appels d'un utilisateur.
Les règles de routage entrant sont chargées sur le serveur sous forme de schéma XML, parmi les informations de type « self-provisioning » de l'utilisateur. La figure 6 présente le fonctionnement du routage entrant. Un appel entrant destiné à un utilisateur du système OCS sonne sur le poste de l'utilisateur par défaut (ici, « Moi »). Si l'appel n'est pas pris pendant la période de sonnerie, il est transféré vers la messagerie vocale par défaut. L'utilisateur peut alors modifier la configuration par défaut en procédant au transfert immédiat vers un numéro, une autre personne ou directement vers la messagerie vocale.
Figure 6 Routage d'appels (pendant les heures ouvrables) (cliquer sur l'image pour l'agrandir)
Tout appel transféré immédiatement à une autre personne ou un autre numéro entraîne l'application des règles de routage entrantes à cette personne ou ce numéro. L'utilisateur peut également définir des transferts d'appels restés sans réponse vers un autre numéro ou une autre personne.
Lorsque l'utilisateur sélectionne l'option Appliquer uniquement durant mes heures ouvrables Outlook des règles de transfert, les règles qui s'affichent dans la figure 6 s'appliquent uniquement pendant les heures ouvrables et le comportement par défaut, à savoir l'appel des points de terminaison enregistrés, s'applique en dehors de ces heures. Ce comportement implique que l'organisation a déployé Microsoft Exchange Server 2007 et les clients Outlook 2007, car Communicator reprend les définitions d'heures ouvrables du service Web d'Exchange 2007 et la prise en charge de la découverte automatique d'Outlook 2007 pour déterminer l'emplacement sur le serveur.

Rapports qualité et résolution des incidents
Les clients du système OCS 2007 utilisent RTAudio, qui est un codec audio de nouvelle génération qui peut tolérer les réseaux présentant des défauts, tels que l'instabilité, la perte de paquets, etc. Cependant, il reste indispensable de le superviser, de façon à ce que les administrateurs puissent rechercher et corriger les zones à problème. Les clients du système OCS 2007 indiquent la qualité de chaque appel et fournissent des statistiques détaillées notamment sur la bande passante, les pertes de données, l'instabilité, l'opinion moyenne (mesure de la perception des utilisateurs), les périphériques utilisés et bien plus encore à un serveur de mesure de la qualité de l'environnement utilisateur à la fin de chaque appel. Pour ce faire, la charge est transmise par la requête SERVICE de SIP au serveur de mesure de la qualité de l'environnement utilisateur, dont l'adresse est programmée à l'aide du mécanisme d'attribution de privilèges d'accès.
Tous les points de terminaison client indiquent la qualité des appels au serveur de mesure de la qualité de l'environnement utilisateur de manière indépendante. Lorsqu'un appel échoue en raison d'une erreur de signalisation, les clients signalent la même OCS, ce qui permet de constituer un référentiel des erreurs créées par les clients.﻿

Vue d'ensemble
Après avoir passé en revue plusieurs aspects de configuration des appels, ce qui inclut la saisie de numéros, le routage entrant ou sortant et les vérifications de connectivité, nous allons examiner le processus dans son ensemble. La figure 7 permet de visualiser ce qui se produit après qu'un utilisateur passe un appel. Les clients du système OCS jouent un rôle essentiel lors de la mise en place d'un appel et gèrent l'ensemble du processus de configuration des appels. OCS est impliqué dans le routage initial de l'appel et les serveurs Edge permettent aux clients d'optimiser le routage multimédia. Nous allons aborder le stade suivant, la conversation.
Figure 7 Flux d'appels de bout en bout (cliquer sur l'image pour l'agrandir)

Comportement multimodal et conversations
Le concept de conversation est au centre du système OCS. Une conversation est une session multimodale entre deux ou plusieurs personnes, ce qui peut inclure la voix, la vidéo et la messagerie instantanée en même temps, de même que les composants, tels que les transferts de fichiers pendant la session, la messagerie dans Outlook ou les remarques enregistrées dans Microsoft Office OneNote®.
Les conversations présentent différents aspects qui peuvent avoir un impact sur la conception des systèmes client OCS :
  • Toutes les modalités impliquées dans une conversation utilisent la même fenêtre. Si un message instantané est ajouté à une conversation audio, il est associé à la même fenêtre.
  • Les conversations peuvent avoir lieu sur plusieurs périphériques. Les utilisateurs peuvent choisir d'activer la fonction audio sur Communicator Phone Edition et la messagerie instantanée sur le bureau Communicator.
  • Tous les modes peuvent converger vers une conférence : En cas de convergence, toutes les modalités d'une conversation doivent être réunies, indépendamment du périphérique exécutant cette modalité. Par exemple, si un mode audio est disponible sur Communicator Phone Edition et si un mode messagerie instantanée est disponible pour la même conversation sur le bureau Communicator, la convergence vers la conférence garantit que les fonctionnalités audio et de messagerie instantanée disposent de la même série de participants pour cette conversation.
  • Les conversations et non pas les différentes sessions sont consignées. Les journaux d'appels contiennent des informations complètes sur la conversation, ce qui inclut des détails sur les notes prises lors de la conversation, les échanges de messages instantanés, la durée du message audio, et ainsi de suite. L'utilisateur dispose ainsi des éléments essentiels de la conversation lorsqu'il ouvre le journal d'appels dans Outlook.
  • Les conversations peuvent se poursuivre à partir des journaux de conversation. Les clients OCS lient les conversations à l'aide d'une référence de conversation (un numéro qui identifie de façon unique la conversation sur les périphériques et les applications). Un mécanisme élaboré permet de calculer les deltas des conversations lorsque de nouvelles conversations sont démarrées à partir de l'historique d'une ancienne conversation. Cette même référence de conversation est également enregistrée en tant que référence du message électronique dans Outlook.
La référence de conversation transite avec la requête INVITE de SIP en tant que propriété personnalisée, Ms-Conversation-Id. La figure 8 affiche une transaction où la voix est ajoutée en premier, suivie par un message instantané. À la fin de la conversation multimodale, l'historique qui est enregistré dans Outlook conserve la même référence de conversation.
Figure 8 Conversations multimodales et référence de conversation (cliquer sur l'image pour l'agrandir)

La messagerie unifiée d'Exchange correspond au système de messagerie vocale d'OCS 2007. OCS achemine uniquement les appels destinés aux utilisateurs UC vers la messagerie unifiée d'Exchange. OCS fournit plusieurs fonctionnalités d'intégration avec la messagerie unifiée d'Exchange :
  • L'option de messagerie vocale de l'interface utilisateur de Communicator Phone (voir figure 9) permet à l'utilisateur de gérer la boîte aux lettres de messagerie unifiée, de modifier les messages d'accueil, et ainsi de suite, sans avoir à entrer le code confidentiel dans la mesure où il est déjà identifié.
  • L'indicateur de message en attente de l'interface utilisateur de Communicator (voir figure 10) permet à l'utilisateur d'ouvrir le dossier de messagerie vocale dans Outlook tandis que celui de Communicator Phone Edition permet de lire les messages vocaux directement à partir du téléphone.
  • Les appels peuvent être transférés vers la messagerie vocale de l'interface utilisateur de Communicator.
  • Les appels refusés sont routés de façon automatique vers la messagerie vocale.
  • La lecture sur un téléphone de l'élément de messagerie vocale dans Outlook permet d'appeler les clients Office Communicator directement.
Figure 9 Option de messagerie vocale dans Communicator
Figure 10 Voyant de message en attente dans Communicator
Le mécanisme de réception des notifications de messages vocaux d'OC est différent de celui de Communicator Phone Edition. OC s'abonne aux notifications de nouveaux messages dans le dossier de recherche de messages vocaux d'Outlook et signale tous les nouveaux messages de ce dossier. Communicator dispose également de journaux des conversations auxquelles vous n'avez pas participé et d'appels.

Conclusion
J'ai présenté ici le mode de fonctionnement des appels vocaux dans OCS 2007, un système qui repose sur SIP et qui exploite plusieurs RFC. Les points de terminaison clients jouent un rôle essentiel dans la gestion des appels au sein d'OCS. Tous les appels vocaux sont chiffrés de façon sûre par défaut. OCS offre des composants souples permettant de manipuler des numéros et de gérer leur flux sur le système.
Les conversations constituent un aspect central d'OCS, ce qui implique la voix, la messagerie instantanée et la vidéo. OCS s'intègre à la messagerie unifiée d'Exchange et permet de notifier les points de terminaison Communicator lors de la réception de messages vocaux et d'accéder à la messagerie vocale au moyen d'Outlook, voire directement à partir du serveur.

Rajesh Ramanathan a travaillé dans le secteur de la communication pendant 14 ans et a conçu des protocoles vocaux, des environnements utilisateur, ainsi que des modules vocaux ou de conférence pou Office Communicator 2007. Il travaille actuellement en tant que responsable de programme de l'équipe Office Communicator de Microsoft. Vous pouvez le joindre à l'adresse suivante : rajeshra@microsoft.com.


Communications et collaboration
Créez des connexions puissantes avec Groove et SharePoint
Alan Maddison
En un coup d'œil :
  • Création d'une bibliothèque de documents SharePoint
  • Création d'un espace de travail Groove
  • Synchronisation de Groove et SharePoint
  • Autorisation de l'accès à l'espace de travail

Sommaire
Association de Groove et SharePoint
Prise en main
Mise en place du contrôle d'approbation
Création de l'espace de travail Groove
Synchronisation de Groove et SharePoint
Autorisation de l'accès à l'espace de travail
Conclusion
Les informaticiens s'interrogent souvent au sujet de l'apparente similarité entre Microsoft Office Groove 2007 (Groove) et Microsoft Office SharePoint Server 2007 (SharePoint) et se demandent dans quelles
circonstances l'un ou l'autre doit être retenu. À première vue, les deux produits sont très similaires, puisqu'ils disposent tous les deux de fonctionnalités de collaboration. Cependant, lorsque vous regardez l'architecture de plus près, vous commencez à voir émerger des différences.
SharePoint® offre une structure de gestion du contenu robuste et évolutive, ainsi que des outils de collaboration qui prennent en charge les flux de travail structurés. Groove™, par opposition, est un ensemble d'outils de collaboration qui permet de mettre rapidement en place un espace de travail avec peu, voir aucune, contrainte informatique. La prise en charge de la collaboration de documents, les fils de discussion et les fonctions de calendrier, entre autres, fait de Groove la structure idéale pour la collaboration dynamique, sécurisée et contextuelle. En bref, la plupart des utilisateurs finissent par utiliser naturellement ces produits de façon différente.
De plus, la version Groove 2007 ajoute la prise en charge intégrée de l'intégration de SharePoint à l'aide de l'outil Fichiers SharePoint. Cet outil permet aux espaces de travail Groove de se synchroniser avec les bibliothèques de documents SharePoint et, comme nous allons le voir, l'intégration incorporée signifie que vous pouvez facilement bénéficier du meilleur de ces deux produits. En fait, l'association de la souplesse et de la nature dynamique de Groove à la profondeur et à la puissance de SharePoint débouchent sur des avantages significatifs pour la plupart des utilisateurs.
Association de Groove et SharePoint
Le monde de l'informatique exige une collaboration toujours renforcée entre les entreprises et leurs partenaires et fournisseurs. Cependant, les solutions puissantes de collaboration qui sont généralement implémentées à l'aide de produits tels que SharePoint ont tendance à se reposer de façon quasi exclusive sur des équipes internes et l'impératif de mise à disposition des informations à l'échelle de l'entreprise. Dans de tels cas, les défis, aussi bien d'un point de vue administratif que de sécurité, d'aménagement d'un accès aux utilisateurs externes sont souvent considérables. Pour y faire face, l'objectif est de permettre aux utilisateurs de contacter les partenaires externes en fonction des besoins.
La combinaison de Groove et SharePoint offre précisément cette solution. SharePoint permet de mettre en place la collaboration au sein de l'entreprise, de rechercher du contenu et de mettre en place une structure de flux de travail. Groove, quant à lui, permet aux entreprises d'étendre ces fonctionnalités pour inclure une collaboration inter-entreprises simple. Avec Groove, les utilisateurs peuvent mettre en place rapidement des espaces de travail de collaboration à tous les niveaux de l'entreprise. De plus, la prise en charge des clés symétriques AES (Advanced Encryption Standard) de 192 bits garantit la sécurisation de la collaboration. En fait, la sécurité Groove est intégrée et toujours activée. Par conséquent, les utilisateurs n'ont pas à se préoccuper de sa configuration.
L'architecture de sécurité de Groove fournit un niveau élevé de protection pour ces espaces de travail et leurs contenus, qui sont stockés de façon locale et pendant la transmission réseau. L'outil Fichiers SharePoint permet de rendre ces informations synchronisées de façon bidirectionnelle avec une bibliothèque de documents SharePoint pour garantir que les informations soient disponibles de façon centralisée pour un accès interne facile. Nous allons utiliser un exemple concret pour voir comment ce processus fonctionne.
Mise en route
Les organisations collaborent souvent avec de nombreuses entreprises pendant les activités métier quotidiennes. Ceci implique non seulement les entreprises externes, mais également les individus provenant de services qui ne travaillent pas nécessairement ensemble de façon régulière, tels que la finance, les communications d'entreprise et le secteur juridique. Ces entreprises doivent créer une équipe interne en fonction du contexte qui est capable de collaborer et de mettre le produit de cette collaboration à la disposition de ceux qui ne sont pas impliqués dans le processus de collaboration, mais qui doivent avoir accès au produit final à mettre sur le marché. SharePoint et Groove mettent ces objectifs à notre portée.
Si vous ne disposez pas déjà d'une bibliothèque de documents SharePoint à synchroniser avec votre espace de travail Groove, la première étape consiste à en créer un. Pour ce faire, connectez-vous à SharePoint, puis sélectionnez le lien View All Content (Afficher tout le contenu). Une fois cette page chargée, sélectionnez Créer, puis, comme indiqué dans la figure 1, choisissez Bibliothèque de documents dans la colonne Bibliothèques.
Figure 1 Création d'une bibliothèque de documents SharePoint (cliquer sur l'image pour l'agrandir)
Un certain nombre de paramètres doivent être configurés sur la nouvelle page de la bibliothèque de documents, tels que le nom et la description de la bibliothèque, l'inclusion ou non de la bibliothèque dans la section Liens rapides, l'activation éventuelle du contrôle de la version et le format par défaut des nouveaux documents créés directement dans la bibliothèque. La sélection de l'historique de la version de document est désactivée par défaut. Cependant, vous devez activer cette fonctionnalité si le contrôle de la version est requis dans votre environnement. Vous devez également prendre en comptes certaines des fonctionnalités avancées qui sont disponibles avec SharePoint et peuvent être utilisées dans le cadre de votre mise en œuvre de Groove et SharePoint. Ces fonctionnalités améliorées incluent :
  • Historique des versions
  • Contrôle de l'approbation
  • Procédures d'extraction
  • Contrôle du flux de travail
  • Stratégies de rétention des documents
  • Audit
  • RSS
Ces fonctions supplémentaires disponibles par l'intermédiaire de SharePoint se révèlent particulièrement précieuses lorsque vous travaillez avec Groove. Dans mon exemple, cette fonctionnalité supplémentaire, notamment le contrôle d'approbation, se révèle très utile. Par exemple, supposons que les membres de l'équipe collaborent par l'intermédiaire de Groove pour esquisser un document. Lorsque le brouillon final est prêt pour la révision, il peut être synchronisé avec SharePoint, puis subir le processus d'approbation.

Mise en place du contrôle d'approbation
Pour configurer cette fonctionnalité, sélectionnez le menu Paramètres de la bibliothèque de documents, puis choisissez l'élément Paramètres. Vous pouvez alors afficher l'ensemble des options de configuration et de personnalisation. Pour configurer l'approbation, cliquez sur le lien Paramètres du flux de travail dans la section Autorisations et gestion pour afficher la page Ajouter un flux de travail. Sélectionnez ensuite le modèle de flux de travail, qui, dans notre exemple, est le modèle d'approbation puis entrez un nom pour le flux de travail. Vous devez ensuite décider si utiliser une liste existante de tâches ou en créer une nouvelle. Une nouvelle liste de tâches offre davantage de la confidentialité, mais dans la mesure où ceci n'est pas un problème dans notre exemple, sélectionnez simplement la valeur par défaut.
Après avoir choisi la liste de tâches, vous devez fixer le mode de lancement du processus d'approbation. Nous allons en faire un processus manuel en autorisant l'utilisateur authentifié, disposant des autorisations adaptées, à démarrer le processus. Les autres options vous permettent d'automatiser ce processus en fonction de la version, s'il est activé sur la bibliothèque de documents, ou lorsqu'un nouveau document est ajouté ou un document existant est modifié.
Après avoir appuyé sur Suivant pour accepter ces options de configuration, vous devez entrer des informations de configuration finale. La première option consiste à configurer la façon dont les tâches doivent être attribuées. Dans la mesure où le processus d'approbation peut comporter plusieurs personnes, vous pouvez attribuer les approbateurs en série, avec par exemple une personne qui approuve l'élément puis le transfère à la personne suivante, ou en parallèle, où n'importe qui peut l'approuver à tout moment. Vous devez ensuite décider si les approbateurs sont autorisés à attribuer des tâches aux autres personnes et s'ils peuvent demander une modification avant que la tâche soit terminée.
L'étape suivante consiste à sélectionner les véritables approbateurs, puis à décider quand la tâche doit être terminée. Enfin, vous devez décider quand le flux de travail peut être considéré comme terminé. L'option par défaut est que le flux de travail est terminé lorsque toutes les tâches sont accomplies. Dans l'option de configuration finale, vous spécifiez si l'état d'approbation doit être mis à jour lorsque le flux de travail est terminé. Lorsque vous appuyez sur le bouton OK, le processus d'approbation est créé et vous pouvez lancer le processus d'approbation de documents.

Création de l'espace de travail Groove
Après avoir créé la bibliothèque de documents SharePoint, l'étape suivante consiste à créer un espace de travail Groove. Pour se faire, assurez-vous que vous disposez d'un compte Groove et d'au moins une identité. Les identités forment la base de la présence et de la communication dans Groove. Tout compte Groove peut être associé à plusieurs identités, et chaque identité est associée à un fichier de contact unique ce qui permet de personnaliser vos informations de contact pour chaque identité utilisée. Vous pouvez également exporter votre compte Groove et les identités associées de façon à les utiliser sur plusieurs ordinateurs.
Après avoir créé un compte et une identité, ouvrez la barre de lancement de Groove en double-cliquant sur l'icône Groove dans la barre d'état système. Cliquez sur l'option Nouvel espace de travail, entrez un nom approprié pour ce dernier et choisissez un type standard. L'espace de travail standard de Groove facilite la présence, les alertes et l'attribution de rôles aux membres de l'espace de travail. Lorsque vous cliquez sur OK, Groove crée l'espace de travail et l'ouvre. La figure 2 affiche un nouvel espace de travail avec des fichiers supplémentaires ajoutés à l'outil Fichiers. À ce stade, l'espace de travail est fonctionnel et vous pouvez compléter son installation en configurant des alertes ou en ajoutant les outils de votre choix.
Figure 2 Nouvel espace de travail Groove (cliquer sur l'image pour l'agrandir)
Les alertes peuvent être configurées au niveau de l'outil, de l'espace de travail ou du fichier. Les quatre niveaux d'alertes sont aucune, moyenne, élevée et auto. La sélection de medium met en avant le nouveau contenu, tandis que élevée ou auto permettent de lire un fichier audio. Vous pouvez également configurer des alertes de façon à être prévenu lorsqu'un utilisateur pénètre dans un espace de travail donné. Pour configurer les alertes, sélectionnez Set Alerts (Définir les alertes) dans le menu Options. Les alertes relatives à des fichiers spécifiques sont définies sur les propriétés du fichier. Cliquez avec le bouton droit sur un fichier de l'espace de travail et sélectionnez Propriétés.
E compléments des outils Fichiers pour la collaboration sur des documents et de l'outil Discussion pour les fils de discussion qui font partie de l'espace de travail Standard par défaut, vous disposez de plusieurs outils, tels que Calendrier, Formulaires, Suivi des problèmes, Réunions, Bloc-croquis et, naturellement, l'outil Fichiers SharePoint. Chacun de ces outils apporte des fonctionnalités de collaboration supplémentaires précieuses. Pour ajouter un outil, sélectionnez le bouton Ajouter un outil à cet espace de travail dans la partie inférieure droite de l'espace de travail, choisissez alors celui que vous souhaitez ajouter, comme indiqué à la figure 3. Il est également facile de supprimer un outil à la demande.
Figure 3 Ajout d'un outil à l'espace de travail Groove (cliquer sur l'image pour l'agrandir)

Synchronisation de Groove et SharePoint
Après avoir ajouté l'outil Fichiers SharePoint, vous devez définir l'URL du site SharePoint qui contient la bibliothèque de documents avec laquelle vous souhaitez procéder à une synchronisation. Pour ce faire, appuyez simplement sur le bouton Configurer dans l'espace de travail de Groove, comme indiqué à la figure 4, après avoir sélectionné l'onglet Fichiers SharePoint en bas de l'écran de l'espace de travail.
Figure 4 Configuration de l'outil Fichiers SharePoint (cliquer sur l'image pour l'agrandir)
Lorsque vous entrez une URL, l'ensemble des bibliothèques disponibles sur ce site SharePoint s'affichent. Comme indiqué à la figure 5, vous devez sélectionner la bibliothèque à utiliser. Groove se connecte et lance la synchronisation automatique. Ainsi, tout document figurant dans la bibliothèque SharePoint est téléchargé sur l'espace de travail Groove et mis à disposition sur ce dernier. La figure 6 en propose un exemple.
Figure 5 Après avoir défini l'URL, votre bibliothèque SharePoint devient disponible dans Groove (cliquer sur l'image pour l'agrandir)
Figure 6 Synchronisation de Groove et SharePoint (cliquer sur l'image pour l'agrandir)
Les documents s'affichent comme non lus dans l'espace de travail de Groove, car ils viennent d'être téléchargés. Tous les fichiers qui sont synchronisés avec SharePoint peuvent bénéficier de la fonctionnalité Archiver/Extraire de SharePoint. De plus, lorsque vous verrouillez un fichier, vous garantissez qu'aucun autre utilisateur ne peut apporter de modifications pendant que vous modifiez le document.
Il est également important de rappeler que l'outil Fichiers SharePoint permet la synchronisation bidirectionnelle. Ainsi, si vous ajoutez des fichiers à l'outil Fichiers SharePoint avec Groove, ces derniers sont synchronisés dans la bibliothèque de documents de SharePoint. La synchronisation par défaut est configurée de façon à se produire de façon automatique. Cependant, vous pouvez établir des synchronisations manuelles en appuyant sur le bouton Synchroniser maintenant. Dans ce cas, vous obtenez un résumé des modifications pour l'ensemble des fichiers qui nécessitent une synchronisation et une action associée, obtenir (de SharePoint) ou envoyer (à SharePoint), comme indiqué à la figure 7.
Figure 7 Suite à la synchronisation manuelle, la synthèse des modifications s'affiche (cliquer sur l'image pour l'agrandir)
Un point important à rappeler est que l'outil Fichiers qui est déployé avec l'espace de travail standard de Groove est différent de l'outil Fichiers SharePoint. L'outil Groove Files ne se synchronise pas avec SharePoint et, selon vos besoins, peut être supprimé. Cependant, dans la mesure où il ne se synchronise pas avec SharePoint, cet outil peut être utilisé en tant qu'emplacement de stockage pour les fichiers temporaires auxquels l'équipe doit accéder pendant un projet. Les fichiers stockés ici resteront synchronisés entre les membres de l'espace de travail.

Autorisation de l'accès à l'espace de travail
Une fois l'infrastructure de collaboration de base déployée, vous pouvez commencer à autoriser les utilisateurs à accéder à l'espace de travail. Tout d'abord, cependant, vous devez les inviter, ce que vous pouvez faire par l'intermédiaire de la messagerie électronique ou de la messagerie instantanée de Groove. En outre, Groove vous permet d'exporter l'invitation vers un fichier. Ce fichier, avec une extension .grv, est associé par défaut à l'application Groove, peut ensuite être livré d'une autre façon, notamment en le plaçant sur un site Web et en permettant au destinataire de télécharger l'invitation.
La messagerie instantanée de Groove inclut les vérifications de sécurité pour garantir que l'invitation est lisible seulement par le destinataire. En procédant à l'invitation par message électronique ou en utilisant un fichier d'invitation, assurez-vous que l'option Demander confirmation de l'acceptation est activée, de façon à pouvoir vous assurer que la personne utilisant votre espace de travail est bien la personne prévue. Vous disposez ainsi d'une couche supplémentaire de sécurité pour l'espace de travail. Vous devez également tenir compte du fait que vous pouvez annuler des invitations en attente.
Lors de l'invitation d'utilisateurs dans l'espace de travail, vous devez sélectionner un rôle pour chaque destinataire. Les rôles incluent Gestionnaire, Participant et Invité et la désignation par défaut est Participant. Chaque rôle dispose de droits spécifiques dans l'espace de travail, et, en règle générale, vous devez limiter le rôle Gestionnaire aux personnes qui nécessitent de façon incontournable de toutes les autorisations dans l'espace de travail, telles que la suppression d'outils. Les créateurs d'espace de travail emploient le rôle Gestionnaire par défaut et les rôles attribués peuvent être modifiés à tout moment.
Étant donné la nature ponctuelle du projet dans cet article, une dernière tâche consiste à supprimer l'espace de travail Groove une fois que tout est prêt. Après avoir synchronisé l'espace de travail avec la bibliothèque SharePoint, ouvrez l'espace de travail, accédez au menu Fichier et choisissez Supprimer l'espace de travail. Vous disposez ensuite de deux options, De cet ordinateur ou Pour tous les membres. (Chaque utilisateur obtient une copie de l'espace de travail sur son ordinateur. Cette copie est permanente. Vous devez en supprimer tous les membres si vous souhaitez le supprimer).
Le point culminant du projet constitue une autre possibilité d'exploitation de la nature complémentaire de Groove et SharePoint. Une fois la synchronisation finale des documents effectuée, vous pouvez profiter du paramètre une position idéale de profiter des paramètres de stratégie de gestion de l'information dans SharePoint. Notamment, l'expiration de données peut être activée pour mettre en place une méthode de gestion automatique des données archivées.
L'activation de l'expiration permet de spécifier une période pendant laquelle conserver les données. À la fin de cette période de rétention, SharePoint peut supprimer de façon automatique les données ou démarrer un processus de flux de travail. Cette fonctionnalité offre une excellente façon d'incorporer les données Groove dans la stratégie de gestion du cycle de vie des informations de votre entreprise. Vous pouvez configurer la stratégie de conservation des données à tout moment. D'ailleurs, si vous n'avez pas effectué cette opération lorsque vous avez configuré la bibliothèque, vous pouvez l'effectuer maintenant.
Pour activer les paramètres d'expiration, sélectionnez le menu Paramètres dans la bibliothèque de documents, puis sélectionnez l'élément paramètres de la bibliothèque de documents. Vous pouvez alors afficher l'option de menu Paramètres de stratégie de gestion de l'information dans la section Autorisations et gestion de la page. Après avoir cliqué sur le lien Paramètres de stratégie de gestion de l'information, vous pouvez spécifier une nouvelle stratégie personnalisée que vous définissez ou vous pouvez activer la bibliothèque de documents pour utiliser la stratégie définie au niveau du site.
Si vous définissez une stratégie personnalisée, vous devez entrer des informations de configuration. Par conséquent, dans mon exemple, vous devez activer l'expiration, puis sélectionner une période de rétention et une action à exécuter une fois cette période de rétention expirée.
Groove est un client de collaboration riche conçu pour fournir une structure dynamique, intuitive et sécurisée pour les besoins de collaboration ponctuels. Grâce à son ensemble riche d'outils, Groove offre une plate-forme légère et adaptable de collaboration qui peut être facilement utilisée au sein d'une organisation ou parmi des organisations différentes.
Si SharePoint offre déjà une infrastructure de gestion du contenu robuste et puissante, ainsi qu'un ensemble d'outils de collaboration pour votre entreprise, vous pourrez constater que son association à Groove est une solution engageante. Ces deux produits sont parfaitement complémentaires et lorsqu'ils sont utilisés ensemble, les gains de productivité deviennent significatifs pour les équipes qui travaillent en collaboration.﻿

Alan Maddison est consultant sénior chez Strategic Business Systems, une division de Brocart.


Administration de Windows
Présentation du clustering avec basculement Windows Server 2008
Chuck Timon
En un coup d'œil :
  • Composant logiciel enfichable de gestion de cluster de basculement
  • Nouvelles fonctionnalités et améliorations
  • Fonctionnalités de sauvegarde et restauration
  • Migration depuis Windows Server 2003

Sommaire
Nouvelle interface de gestion
Processus de configuration améliorés
 Procédure de validation intégrée
Nouveau modèle de quorum
Composants de sécurité améliorés
Fonctionnalités réseau étendues
Fiabilité améliorée lors de l'interaction avec le stockage
Processus de récupération intégrés
Nouvelle fonctionnalité de sauvegarde et de restauration
Migration depuis les clusters de serveurs Windows Server 2003
Depuis que le clustering a été introduit dans Windows NT 4.0 Enterprise Edition, les utilisateurs se plaignent du fait qu'il est trop compliqué à configurer et encore plus difficile à maintenir. L'administration d'un cluster exigeait de la part d'un
administrateur plus qu'une simple compréhension de l'élément de clustering lui-même : il devait également avoir une connaissance intime des technologies de stockage et de l'interaction du service de cluster avec une variété de solutions de stockage. Les capacités nécessaires pour exécuter une solution de haute disponibilité puis la maintenir n'étaient pas faciles à trouver dans beaucoup d'entreprises.
Le clustering s'est amélioré au cours des années, mais il laissait toujours à désirer lorsque Microsoft a commencé à travailler sur Windows Server® 2008. Consciente de cette situation, l'équipe Microsoft s'est mise à reconcevoir le clustering avec, comme objectif principal, la simplicité. Dans Windows Server 2008, Microsoft® Cluster Services (MSCS) a entièrement été remanié et est maintenant appelé Clustering avec basculement.
Cela ne veut pas dire que la simplicité est la seule chose à être introduite par la nouvelle implémentation du clustering avec basculement. Au fil des années, Microsoft a appris de nombreuses leçons à mesure que les entreprises lui fournissaient des commentaires précieux sur ce qu'elles aimeraient voir dans une bonne solution de clustering. Les nouvelles fonctionnalités du clustering avec basculement résolvent plusieurs des nombreux problèmes soulevés par les utilisateurs et introduisent également de remarquables fonctions qui rendent cet outil irrésistible. Dans cet article, j'aimerais donc vous présenter certaines des remarquables fonctionnalités que vous trouverez dans le clustering avec basculement de Windows Server 2008.

Nouvelle interface de gestion
Après avoir installé le clustering avec basculement, vous pouvez accéder à l'interface de gestion de cluster de basculement dans Outils d'administration ou en exécutant Cluadmin.msc. Le composant logiciel enfichable de gestion de cluster de basculement, à l'instar des autres interfaces de gestion de Windows Server 2008, est une console de gestion Microsoft 3.0. Pour les vétérans des clusters, l'ouverture du composant logiciel enfichable de gestion de cluster de basculement pour la première fois semblera étrange, un peu comme quelqu'un qui est parachuté dans un pays étranger sans aucune carte.
La nouvelle interface est divisée en trois volets distincts, comme le montre la figure 1. Le volet de gauche répertorie tous les clusters de basculement de Windows Server 2008 de votre organisation. Le volet central fournit des détails sur la partie d'une configuration de cluster que vous avez sélectionnée dans le volet de gauche, tandis que le volet de droite vous montre les actions qui peuvent être exécutées.
Figure 1 Composant logiciel enfichable de gestion de cluster de basculement (cliquer sur l'image pour l'agrandir)
Supposons que vous sélectionniez Stockage dans le volet de gauche. Le volet central détaille alors le stockage qui a été configuré dans le cluster et le stockage actuellement disponible, le cas échéant. Comme l'indique la figure 1, le cluster renferme un élément de stockage prenant en charge un disque témoin, le stockage qui a été configuré pour un serveur de fichiers et le stockage disponible. Le volet de droite répertorie des actions pertinentes telles que l'ajout de stockage. Notez que le composant logiciel enfichable de gestion de cluster de basculement ne peut pas être utilisé pour administrer des versions précédentes des services de cluster Microsoft.

Processus de configuration améliorés
La configuration d'un cluster de basculement est très simple. Plusieurs des actions visant à configurer, reconfigurer et maintenir un cluster utilisent des assistants. Grâce à ces assistants, l'administrateur n'a plus à vérifier si les ressources sont correctement configurées ou si elles arriveront en ligne dans le bon ordre.
La figure 2 montre l'Assistant de haute disponibilité. Dans cet exemple particulier, un serveur de fichiers a été configuré. À gauche se trouve la liste des étapes à travers lesquelles l'assistant a guidé l'administrateur. Une fois le processus terminé, une page de résumé est affichée et vous avez accès à un rapport.
Figure 2 Assistant de haute disponibilité (cliquer sur l'image pour l'agrandir)

Procédure de validation intégrée
Pour être considérées comme des solutions de cluster prises en charge dans les versions précédentes de Windows Server, les configurations matérielles devaient être répertoriées comme Solution de cluster dans le catalogue Windows Server. Étaient inclus les clusters à plusieurs sites qui étaient indiqués séparément dans la catégorie Géographiquement dispersé. Pour être répertoriés dans le catalogue, les fournisseurs de matériel devaient exécuter une série de tests WHQL (Windows Hardware Quality Lab) et en envoyer les résultats à Microsoft. Pour le fournisseur, il s'agissait là d'une opération onéreuse et la base de données du catalogue Windows Server était difficile à maintenir.
Dans Windows Server 2008, un processus de validation intégré est inclus dans le clustering avec basculement. Ce processus consiste en une série de tests regroupés dans quatre catégories principales, comme le montre la figure 3.
Figure 3 Catégories de tests de validation de cluster de basculement (cliquer sur l'image pour l'agrandir)
Vous pouvez voir que la catégorie Réseau a été développée pour monter les tests qui sont exécutés. Chaque catégorie contient une série de tests. La catégorie Stockage, qui est peut-être la plus importante parmi les quatre catégories, inclut des tests qui veillent à ce que les solutions de stockage soient conformes aux nouvelles exigences mises en place pour les clusters de basculement de Windows Server 2008.
En particulier, les fournisseurs de matériel doivent désormais utiliser des pilotes basés sur le pilote Storport de Microsoft et ils doivent prendre en charge les réservations persistantes SCSI-3. En outre, les modules spécifiques aux périphériques des logiciels avec plusieurs chemins d’accès, lorsqu'ils sont utilisés, doivent être basés sur la norme Multipath I/O (MPIO) de Microsoft.
Avec l'intégration du processus de validation, le modèle de prise en charge a changé. Tout matériel doit avoir un logo Windows Server 2008 et tous les tests de validation doivent réussir. Les seules exceptions sont les clusters à plusieurs sites qui ont deux clôtures de stockage séparées et distinctes, une à chaque site, et l'implémentation de la réplication continue en cluster Exchange Server 2007 qui n'utilise pas de stockage partagé.

Nouveau modèle de quorum
Le modèle de quorum a également changé dans le clustering avec basculement de Windows Server 2008. Dans les anciens systèmes, lorsqu'un administrateur entendait le mot quorum, il pensait à un disque partagé dans lequel résidaient la configuration de cluster et quelques fichiers répliqués. Il s'agissait d'un point de défaillance unique dans le cluster. Si le disque de quorum connaissait une défaillance, le service de cluster était interrompu et la haute disponibilité était perdue.
Les clusters de serveurs de Windows Server 2003 proposaient un deuxième type de quorum appelé le quorum de jeu de nœud majoritaire. Ce type de quorum a été implémenté dans les clusters multisites et ne nécessitait pas de stockage partagé. Le quorum de jeu de nœud majoritaire consistait en un partage de fichiers qui résidait sur le lecteur système de chaque nœud de cluster. Les connexions à ce type de quorum se faisaient par le biais de connexions SMB. Là aussi, pour que le cluster fonctionne, une majorité de nœuds devait participer.
Ensuite, avec l'introduction de la réplication continue en cluster (CCR) d'Exchange Server 2007, la capacité de Témoin de partage de fichiers a été ajoutée aux clusters de serveurs de Windows Server 2003. Ceci permettait à un seul nœud de cluster de la réplication continue en cluster d'Echange 2007 (ou à n'importe quel cluster multisites) de continuer à fournir des services tant qu'une connexion au Témoin de partage de fichiers permettait d'atteindre une majorité.
Dans le clustering avec basculement de Windows Server 2008, le concept de quorum signifie désormais consensus. Le quorum, ou consensus, est maintenant réalisé lorsqu'il existe suffisamment de votes pour mettre le cluster en service. Ces votes peuvent être obtenus de plusieurs façons, selon la configuration du quorum. Quatre modes de quorum sont disponibles dans un cluster de basculement de Windows Server 2008. Ils sont indiqués à la figure 4. Parmi les quatre modes répertoriés, seuls les deux premiers (Nœud majoritaire et Nœud et disque majoritaires) peuvent être automatiquement sélectionnés durant le processus de création du cluster. La logique suivante devrait être utilisée :
  • Si un nombre de nœuds impair est configuré dans le cluster, sélectionnez le mode Nœud majoritaire.
  • Si un nombre de nœuds pair est configuré dans le cluster et que le stockage partagé est connecté et accessible, sélectionnez alors Nœud et disque majoritaires.
Figure 4 Modes de quorum dans l'Assistant Configurer le cluster du quorum (cliquer sur l'image pour l'agrandir)
Pour sélectionner un disque témoin du stockage disponible, sélectionnez le premier disque d'une capacité d'au moins 500 Mo et doté d'une partition NTFS configurée. Les modes de quorum restants peuvent être sélectionnés manuellement uniquement en exécutant l'Assistant Configurer le cluster du quorum. L'option Nœud et partage de fichiers majoritaires est généralement utilisée dans une configuration de cluster multisites ou dans un cluster CCR d'Exchange 2007. La dernière option, le mode Pas de majorité : disque uniquement, est équivalent au modèle de quorum partagé dans les clusters hérités. Ceci est un point de défaillance unique et ne devrait généralement pas être utilisé.
Il existe seulement deux types de ressources témoin, un disque physique et un partage de fichiers, qui peuvent être configurés dans le cluster pour aider à atteindre un consensus.
Un disque témoin est un élément de stockage que le service de cluster peut mettre en ligne. Ce disque est situé dans le groupe de ressources principales du cluster, avec le nom de réseau du cluster et les ressources d'adresses IP qui lui sont associées. Lorsque le disque témoin est configuré, un dossier Cluster est placé sur le disque et une copie complète de la configuration du cluster (une ruche de clusters ou réplica) est placée sur le disque.
Un témoin de partage de fichiers est un partage réseau qui est situé, dans l'idéal, sur un serveur, sur le réseau qui ne fait pas partie du cluster. Une connexion SMB au témoin de partage de fichiers est effectuée et le témoin de partage de fichiers maintient une copie du fichier journal témoin qui contient des informations de versions liées à la configuration du cluster.
Une seule ressource témoin peut être configurée dans un cluster. Cette ressource fournit un vote supplémentaire, au cas où le cluster en aurait besoin pour atteindre le quorum. En d'autres termes, si le cluster est à un vote (et donc un nœud) d'un consensus, la ressource témoin est placée en ligne afin que le quorum puisse être atteint. Si le cluster est à plus d'un vote du quorum, la ressource témoin n'est pas touchée et le cluster reste dans un état dormant et attend qu'un autre nœud de cluster se joigne.

Composants de sécurité améliorés
Le cluster de basculement propose de nombreuses améliorations de sécurité. La plus importante réside probablement dans le fait que le compte de service de cluster n'est plus exigé. Dans les versions précédentes du service de cluster Microsoft, un compte d'utilisateur de domaine était nécessité durant le processus de configuration. Ce compte, qui était utilisé pour démarrer le service de cluster, a été ajouté au groupe d'administrateurs locaux sur chaque nœud du cluster et s'est vu attribuer les droits d'utilisateur locaux requis pour permettre au service de cluster de fonctionner correctement. En tant que compte d'utilisateur de domaine, le compte de service de cluster était lié à un certain nombre de stratégies au niveau du domaine qui pourraient être appliquées à des nœuds de cluster. Ces stratégies pouvaient avoir une influence négative sur la haute disponibilité en provoquant l'échec du service de cluster.
Le service de cluster s'exécute désormais sous un compte de système local avec une série de droits spécifique sur le nœud du cluster local qui lui permet de fonctionner correctement. Le contexte de sécurité du cluster est passé à l'objet nom de cluster (CNO) qui est l'objet ordinateur qui est créé, par défaut, dans le conteneur Ordinateurs d'Active Directory® la première fois que le cluster est créé. Une fois un cluster créé et que le CNO existe dans Active Directory, le compte utilisateur qui a été utilisé pour installer et configurer le cluster n'est plus nécessaire.
Les autres objets ordinateur créés dans Active Directory dans le conteneur Ordinateurs sont associés à un cluster de basculement. Ces objets, appelés objets d'ordinateurs virtuels (VCO), correspondent à des ressources de nom de réseau du cluster qui sont créées dans le cadre des points d'accès client (CAP) du cluster. Le CNO, qui est chargé de créer tous les VCO d'un cluster, est ajouté à la liste de contrôle d'accès système (SACL) de l'objet dans Active Directory (voir figure 5).
Figure 5 Sécurité sur un VCO dans Active Directory (cliquer sur l'image pour l'agrandir)
Le CNO est également chargé de synchroniser les mots de passe de domaine de tous les VCO qu'il a créés. Ce processus est accompli conformément à la stratégie de domaine configurée pour la rotation des mots de passe. En outre, puisque le CNO est chargé de créer tous les objets ordinateur associés aux VCO d'un cluster, il doit avoir le droit de niveau de domaine de créer des objets ordinateur sur le conteneur dans lequel sont créés les VCO (par défaut, le conteneur Ordinateurs).
Autre changement, Kerberos est désormais utilisé comme méthode d'authentification par défaut. L'existence de comptes d'ordinateur dans Active Directory permet d'obtenir cette fonctionnalité de sécurité améliorée. Le cluster a, toutefois, la possibilité d'utiliser l'authentification NTLM (NT LAN Manager) si une application qui n'est pas capable d'utiliser Kerberos pour l'authentification venait à avoir besoin d'accéder aux ressources du cluster.
La communication entre les nœuds du cluster qui sont directement liés au processus du cluster est également plus sécurisée. Toutes les communications à l'intérieur du cluster sont signées par défaut. À l'aide de l'interface CLI cluster.exe, vous pouvez modifier la propriété de ce cluster afin que toutes les communications entre les nœuds soient chiffrées pour renforcer la sécurité.

Fonctionnalités réseau étendues
Les nouvelles capacités de mise en réseau dans les clusters de basculement offrent plus de flexibilité dans la conception de solutions de haute disponibilité et de récupération après incident. En même temps, ces améliorations proposent une connectivité plus fiable au sein des nœuds du cluster.
La fonctionnalité cliente la plus demandée a probablement été la capacité à localiser des nœuds de cluster sur des réseaux séparés. Ceci est désormais possible. Le pilote de réseau de cluster a été complètement réécrit et offre une communication extrêmement fiable et à tolérance de panne parmi les nœuds d'un cluster, à condition que chaque nœud soit connecté à au moins deux réseaux séparés et distinctement routés.
Le pilote de réseau de cluster construit sa propre table de routage interne en fonction des informations de connectivité fournies durant le processus de démarrage du cluster. Ceci inclut les informations sur la connectivité locale de même que les informations qui sont fournies dans la base de données de configuration du cluster (ruche du registre de cluster).
Une partie du processus de validation de cluster inclut un processus de découverte de connectivité réseau. La possibilité de repérer des nœuds de clusters sur différents réseaux routés a contribué à minimiser les exigences concernant la mise en réseau des clusters multisites. Les organisations pourront ainsi déployer ces derniers plus facilement et à un coût moindre. En outre, l'utilisation du stockage iSCSI devient une solution de stockage plus attrayante dans les clusters de basculement.
Les nœuds de cluster peuvent également obtenir des informations sur les adresses IP via DHCP (Dynamic Host Configuration Protocol). Ceci peut faciliter la tâche des administrateurs réseau s'ils sont prêts à accepter d'utiliser l'adressage dynamique pour les serveurs de leur environnement.
La configuration des interfaces réseau d'un nœud de cluster détermine les réseaux qui utiliseront des adresses IP statiques ou dynamiques. Même si une ressource d'adresse IP d'un cluster est obtenue d'un serveur DHCP, elle peut être transformée en adresse IP statique dans le composant logiciel enfichable de gestion de cluster de basculement.
Par le passé, les communications de cluster utilisaient toutes la diffusion UDP et quelquefois la multidiffusion. La fonctionnalité de multidiffusion a été interrompue et les communications de cluster utilisent désormais la monodiffusion UDP. (Le port 3343 demeure le port le plus communément utilisé par les clusters Microsoft). De nombreux administrateurs réseau seront très contents d'apprendre que la diffusion n'est plus utilisée. Le vrai avantage d'un cluster, cependant, réside dans les nouveaux processus de messagerie qui sont internes au service de cluster lui-même. (Ceci, toutefois, n'entre pas dans le cadre de cet article). Les communications à l'intérieur du cluster disposent à présent de caractéristiques de communications TCP plus fiables bien qu'UDP soit utilisé comme mécanisme de transport.

Fiabilité améliorée lors de l'interaction avec le stockage
La façon dont les clusters de basculement interagissent avec le stockage est radicalement différente. Le pilote du disque de cluster (clusdisk.sys) a été entièrement réécrit et est maintenant un vrai pilote Plug-and-play. Et la manière dont il interagit avec le stockage a changé.
Dans Windows Server 2003, le pilote du disque de cluster se trouvait dans un chemin direct vers le stockage. Dans Windows Server 2008, toutefois, le pilote du disque de cluster communique avec le pilote du gestionnaire de partition (partmgr.sys) pour interagir avec le stockage. Ces deux approches sont illustrées à la figure 6.
Figure 6 Comment la pile de stockage a changé dans Windows Server 2008 (cliquer sur l'image pour l'agrandir)
Le gestionnaire de partition est chargé de protéger les ressources disque du cluster. Tous les disques se trouvant sur un bus de stockage partagé sont automatiquement placés dans un état hors connexion lorsqu'ils sont mappés à un nœud de cluster pour la première fois. Ceci permet de mapper le stockage simultanément à tous les nœuds d'un cluster avant même que ce cluster ne soit créé. Les nœuds n'ont plus à être lancés l'un après l'autre, les disques préparés sur un nœud puis ce nœud fermé, un autre nœud lancé, la configuration disque vérifiée, et ainsi de suite.
Il y a toujours, cependant, les tests de stockage qui sont exécutés dans le cadre du processus de validation de cluster et nécessitent l'initialisation des disques. Ceci peut être accompli sur l'un des nœuds du cluster avant l'exécution du processus de validation. Une fois le stockage ajouté à un cluster, les disques affichent un état Réservé dans l'interface Gestion des disques et ne sont jamais laissés dans un état non protégé.
Un autre changement concerne les commandes SCSI. Dans Windows Server 2003, les commandes SCSI-2 Reserve\Release ont été utilisées avec le pilote du disque de cluster qui écrivait sur des secteurs du disque lui-même. Dans Windows Server 2008, les commandes SCSI-3 de réservation persistante sont nécessaires. Les nœuds de cluster doivent s'inscrire avant de pouvoir placer une réservation sur le stockage, et les nœuds de cluster défendent périodiquement leurs réservations en utilisant le protocole de réservation et défense.
L'un des tests de stockage du processus de validation vérifie cette fonctionnalité. Si une solution de stockage ne prend pas en charge les commandes SCSI-3 (réservation persistante), elle n'est pas prise en charge dans un cluster de basculement.
Beaucoup d'entreprises utilisent des logiciels à plusieurs chemins d'accès pour la redondance lorsqu'elles se connectent au stockage. Cette opération est prise en charge et même encouragée en tant que méthode recommandée. Cependant, les solutions de logiciel à plusieurs chemins d'accès tierces ou les modules spécifiques aux périphériques doivent être réécrits en utilisant la norme Multi-Path Input\Output de Microsoft qui doit être prise en charge dans un cluster de basculement. Toutes les commandes SCSI-3 PR sont ainsi simultanément envoyées à tous les chemins vers le stockage, que ces chemins soient actifs ou non. Cette fonctionnalité est également vérifiée dans le cadre du processus de validation.
Les autres améliorations du stockage incluent un meilleur processus de disque de vérification (chkdsk.exe), une fonctionnalité de réparation de disque intégrée qui était auparavant la partie de l'utilitaire de récupération de Cluster Server et les disques à réparation automatique. Dans les clusters de basculement, la signature de disque et l'ID du LUN sont tous deux utilisés lors de l'identification d'une ressource disque du cluster. Si l'un ou l'autre change, la configuration de cluster est mise à jour. Les erreurs sont ainsi réduites en raison, tout simplement, d'un changement d'attribut sur une ressource disque physique ayant pour résultat une plus haute disponibilité.

Processus de récupération intégré
La réparation de disque précédemment mentionnée est évidemment l'une des capacités de récupération intégrées. Une autre capacité est la capacité de réparation Active Directory. Si l'objet ordinateur qui représente le CNO est supprimé, vous ne pourrez plus créer d'objets ordinateur associés aux CAP de cluster. Toutefois, le premier problème que vous risquez de rencontrer est lorsque des applications ou utilisateurs hautement disponibles ne peuvent pas accéder aux ressources à l'extérieur du cluster parce qu'un jeton de sécurité ne peut pas être obtenu.
Le processus de récupération d'un CNO supprimé comporte deux étapes. Tout d'abord, vous devez engager un administrateur de domaine pour récupérer l'objet ordinateur supprimé du conteneur DeletedObjects dans Active Directory. Ensuite, une fois l'objet restauré et réactivé, vous devez exécuter le processus de réparation de l'objet Active Directory dans le composant logiciel enfichable de gestion de cluster de basculement.
Dans les clusters de serveurs de Windows Server 2003, il y avait toujours un risque que le fichier de configuration de cluster situé dans le sous-répertoire %systemroot%\cluster pouvait se corrompre et devait alors être remplacé. Dans les clusters de basculement, la capacité de réparation automatique est très utile. Si le service de cluster démarre sur un nœud et que la base de données de configuration est corrompue, un modèle de configuration minimal sera chargé à l'aide des informations contenues dans la clé de registre HKLM\System\CCS\Services\ClusSvc\Parameters. Le nœud tentera de joindre un cluster déjà formé et, si cette tentative réussie, une nouvelle copie de la ruche du registre de cluster sera envoyée au nœud. Si un nœud ne peut pas joindre un cluster, le service de cluster sera interrompu.

Nouvelle fonctionnalité de sauvegarde et restauration
Le clustering avec basculement est fourni avec son propre rédacteur VSS. Il joue un rôle clé dans la sauvegarde et restauration d'une base de données de cluster et des données qui résident sur les ressources disque physiques. La sauvegarde de la configuration de cluster est simple. Tant que l'état du système fait partie d'une sauvegarde, la configuration de cluster peut être restaurée. Notez, toutefois, qu'un cluster ne devrait être sauvegardé que s'il a un quorum. Ceci signifie que la configuration du cluster la plus à jour sera sauvegardée.
Il existe deux types de restauration de cluster distincts : la restauration faisant autorité et la restauration ne faisant pas autorité. Une restauration ne faisant pas autorité utilise la Sauvegarde Windows Server ou une application de sauvegarde tierce pour exécuter une restauration d'une sauvegarde sélectionnée. Une restauration faisant autorité d'un nœud de cluster, d'autre part, ne peut être accomplie qu'à l'aide du CLI de Sauvegarde Windows Server (wbadmin.exe).
Une restauration faisant autorité renvoie essentiellement la configuration de cluster « en arrière », au moment où la sauvegarde a été effectuée. Pour effectuer une restauration faisant autorité, le service de cluster est arrêté sur tous les nœuds, à l'exception de celui sur lequel la restauration est exécutée. Une fois la restauration terminée et le service de cluster démarré sur le nœud restauré, la configuration restaurée du cluster devient la nouvelle configuration de cluster. Ainsi, lorsque le service de cluster est redémarré sur les nœuds restants dans le cluster, la configuration restaurée est transférée durant le processus de jointure.
Ceci peut vous faire économiser du temps et de l'argent dans certains scénarios. Supposons que vous ayez un cluster d'impression qui héberge plusieurs ressources de spouleur d'impression, chacun prenant en charge 1 500 imprimantes et que vous supprimiez accidentellement l'une de ces ressources. De nombreux utilisateurs ne peuvent pas imprimer. Au lieu de rajouter manuellement toutes ces imprimantes dans la configuration de cluster, il serait beaucoup plus facile d'effectuer une restauration faisant autorité de la configuration de cluster. Ceci, suppose, bien sûr, que vous ayez mis en place une solide stratégie de sauvegarde et restauration.

Migration des clusters de serveurs Windows Server 2003
En raison de toutes ces modifications architecturales dans le clustering avec basculement de Windows Server 2008, les mises à niveau existantes ou simultanées de Windows Server 2003 ne sont pas prises en charge. Durant une mise à niveau des clusters de Windows Server 2000 à Windows Server 2003, beaucoup d'organisations choisissent d'expulser systématiquement chaque nœud du cluster, de faire une installation propre du système d'exploitation et de rajouter ensuite le nœud dans le cluster. Cette approche ne peut pas être utilisée pour migrer vers Windows Server 2008, étant donné que les nœuds de cluster de Windows Server 2003 et Windows Server 2008 ne peuvent pas faire partie du même cluster.
Fort heureusement, un processus de migration basé sur un Assistant a été inclus pour faciliter la migration. La migration vers un cluster de basculement Windows Server 2008 nécessite, toutefois, une certaine planification. Il existe trois principaux scénarios de migration :
  • la migration qui utilise les mêmes serveurs et le même stockage
  • la migration qui utilise les mêmes serveurs mais avec un nouveau stockage
  • la migration qui utilise de nouveaux serveurs et un nouveau stockage.
Pour chacun de ces scénarios, vous devez vous assurer que le matériel a été certifié sous le programme de logo de Windows Server 2008 et que le processus de validation du cluster de basculement a été exécuté et que tous les tests ont été positifs. Une fois ces étapes terminées, le processus de migration peut continuer.
Les ressources d'un cluster de serveur Windows Server 2003 ne peuvent pas toutes être migrées. Vous pouvez migrer les noms de réseau, les adresses IP, les disques physiques, les partages de fichiers, les racines DFS, DHCP et WINS. Vous pouvez également migrer, dans une certaine mesure, des services génériques, des applications génériques et des ressources de script génériques.
Les applications telles que Microsoft Exchange et SQL Server®, quant à elles, possèdent leurs propres procédures de migration vers un cluster de basculement. Les imprimantes peuvent être migrées vers Windows Server 2008 en utilisant le composant logiciel enfichable Gestion de l'impression (qui est installé avec le rôle serveur d'impression) pour tout d'abord exporter puis importer des imprimantes vers un serveur d'impression récemment configuré et hautement disponible. Aucun type de ressource tiers ne peut faire l'objet d'une migration.
Le processus de migration ne migre pas de données. Il migre les paramètres de configuration de cluster de Windows Server 2003 à Windows Server 2008.
Toutes les ressources migrées sont initialement placées dans un état hors connexion à la fin du processus de migration. La raison en est que d'autres étapes supplémentaires peuvent s'avérer nécessaires. Il est donc important de consulter le rapport de post-migration pour voir quelles étapes supplémentaires (à l'exclusion de la migration de données si vous migrez vers un nouveau stockage) sont nécessaires avant de mettre le cluster en service. Par exemple, si un serveur DHCP est migré, le rôle de serveur DHCP doit être installé sur tous les nœuds du cluster. Si vous migrez un serveur WINS, ses fonctionnalités doivent être installées sur tous les nœuds du cluster.

Chuck Timon est ingénieur support à Microsoft, spécialisé dans les technologies de cluster et d'installation. Il a écrit le cours de formation au cluster de basculement de Windows Server 2008 et s'occupe, à présent, de la formation Hyper-V.

© 2008 Microsoft Corporation and CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.


Le mot du rédacteur en chef L'impression est morte
Joshua Hoffman

L'impression est morte. Ou pas loin de l'être, pensez-vous. À l'ère de l'information illimitée, disponible sous toutes les formes, à tout moment, depuis tout lieu, sur une multitude d'appareils fantastiques, quelle place occupe réellement une pile de feuilles de papier collées ensemble ? Son heure est-elle venue ? Les magazines et les journaux devraient-ils être relégués aux musées, afin qu'un jour nous puissions nous rappeler avec nostalgie du bon vieux temps, lorsque nous nous promenions avec des morceaux d'arbres et de l'encre compressés ?
Vous me trouvez mélodramatique ? Oui. Mais je suis certain que vous avez deviné que je suis en total désaccord avec cette hypothèse (et pas seulement pour préserver mon poste car je pourrais faire plein d'autres choses chez Microsoft !). Je suis intimement convaincu que le mot imprimé implique une expérience incroyablement profonde et riche, malgré (ou peut-être à cause de) sa simplicité. Lorsque je m'assieds pour lire un long article, je préfère toujours avoir le support papier entre les mains plutôt que mon ordinateur. Je trouve cela tout simplement plus agréable. Est-ce un point de vue vieillot ? Peut-être, mais notre dernière enquête sur notre lectorat indique que vous êtes 90% à ressentir exactement la même chose.
Mais attention, je ne suggère pas de nous cacher la tête dans le sable. Je suis aussi accro que les autres et j'aime la technologie. Mais une publication comme la nôtre peut, et devrait, être une expérience holistique et prendre de nombreuses formes, en ligne, hors ligne et en personne. Bien entendu, pour lire un long article très technique écrit par Mark Russinovich, je veux qu'il soit sur support papier. Mais je veux également écouter la lecture faite par Mark et le regarder démontrer la technique dont il parle.
Cette notion est devenue un principe directeur pour TechNet Magazine. Tout en restant fiers de la publication que nous confions à l'imprimeur chaque mois, tout le contenu imprimé est également disponible en ligne. Et dans un proche avenir, la plate-forme unique qu'Internet met à notre disposition profitera à encore plus de contenu. Par exemple, dans notre dernier numéro, nous avons lancé notre série de screencasts avec Don Jones et sa rubrique Windows PowerShell. Vous pouvez désormais regarder la vidéo de Don vous guidant dans la rubrique de ce mois-ci. Notre site Web compte également une nouvelle rubrique Informatique durable, entièrement dédiée à l'impact sur l'environnement de l'informatique et à ce que nous pouvons faire, en tant que professionnels du secteur, pour nous comporter comme des citoyens du monde responsables.
Comme toujours, vos commentaires sont essentiels alors que nous continuons à faire de TechNet Magazine une expérience multimédia riche. Envoyez un petit mot à tnmag@microsoft.com.
—Joshua Hoffman

Merci aux experts techniques Microsoft suivants : Ed Banti, Avronil Bhattacharjee, Nino Bilic, Mai-lan Tomsen Bukovec, Eric Charran, Elden Christensen, Trina Gorman, Scott Landry, Michael Murgolo, Sanjeev Nair, Hugh Pyle, Amritansh Raghav, Jez Sadler et Jim Truher.


Lettres Les lecteurs ont la parole

Services de domaine Active Directory
J'ai vraiment apprécié le numéro de mars 2008 de TechNet Magazine. Je pense que je l'ai lu environ 12 fois ! En particulier, j'ai vraiment apprécié l'article « Nouveautés des services de domaine Active Directory » de Gil Kirkpatrick. Dans l'article, Gil mentionne un produit appelé Microsoft® Audit Collection Services. Ce produit est-il disponible aujourd'hui et fonctionne-t-il comme une application autonome ?
—Erasmo M.

Microsoft Audit Collection Services (ACS) fait partie de System Center Operations Manager (SCOM), le logiciel de gestion autrefois appelé Microsoft Operations Manager (MOM). Il n'est pas disponible comme produit autonome, mais uniquement en tant que partie de SCOM.
—Gil Kirkpatrick, auteur de NetPro CTO et TechNet Magazine

Signatures
Dans le deuxième paragraphe de l'article Windows PowerShell d'avril 2008 de TechNet Magazine (« Signez ici, s'il vous plaît » technet.microsoft.com/magazine/cc434702), l'auteur Don Jones déclare, « Le mot signature est le terme technique correct pour ce dont je vais parler, bien qu'il ne constitue pas en soi une bonne description de ce qui se produit ici. Signer un script ne signifie pas que vous l'approuvez ou l'autorisez, comme cela serait le cas avec un contrat ou un bordereau de carte de crédit. »
Je dirais que, signer un contrat ou une carte de crédit n'approuve pas ou n'autorise pas nécessairement ces éléments non plus. L'opération effectuée n'est significative que dans le contexte d'une plus large vision de l'environnement. Par exemple, lorsque j'étais plus jeune, je jouais avec les bordereaux de cartes de crédit de la station service de mon père, personne n'a jamais essayé de collecter les dettes que j'ai contractées dans ces transactions.
Dans le contexte d'une implémentation de réseau Active Directory® « correctement configurée », la signature est précisément ce qui autorise le script à fonctionner. La présence de la signature indique que la personne qui signe accepte la responsabilité de la chose signée et la présence de la signature peut déclencher ensuite d'autres activités, la facturation par la société de carte de crédit ou l'acceptation de code comme authentique par le réseau.
Continuez comme ça, TechNet Magazine nous apporte beaucoup.
—Jeremy P.

Merci pour les commentaires, Jeremy. C'est agréable de savoir que nos lecteurs portent une attention si proche et critique aux articles de TechNet Magazine.

SharePoint Services
Lors de l'exécution de Windows® SharePoint® Services (WSS), pas Microsoft Office SharePoint Server, est-ce que des licences CAL supplémentaires sont requises pour les utilisateurs y accédant via l'interface/URL d'un site Web ?
—Douglas M.

Il y a quelques documents disponibles sur ce sujet. Voici quelques liens utiles : msmvps.com/blogs/cgross/archive/2005/04/02/40723; microsoft.com/windowsserver2003/howtobuy/licensing/extconnector.mspx; et windowsserver/sharepoint/bb684457.
—Pav Cherny, chroniqueur, Au cœur de SharePoint, TechNet Magazine

Idée Au cœur de SharePoint
Je lisais récemment la rubrique de SharePoint dans le numéro de mai 2008 de TechNet Magazine (technet.microsoft.com/magazine/cc462809). Vous avez demandé aux lecteurs des suggestions de sujets. Un grand article sur l'intégration de SharePoint avec Project/Project Server serait merveilleux.
—Phil H.

Project/Project Server est une idée intéressante ! Nous allons sans aucun doute envisager ce sujet pour une rubrique future. Merci pour votre réponse.

Autres idées Au cœur de SharePoint
Le Web dans l'ensemble dispose de nombreux documents sur la personnalisation de site utilisant soit l'interface utilisateur standard de SharePoint soit SharePoint Designer, mais il existe très peu de documents sur les définitions de sites (et les articles qui existent sont si basiques qu'ils sont peu utiles lorsqu'on est confronté à un problème réel). Comme c'est un domaine que beaucoup de gens commencent à explorer, une multitude d'articles de procédures ne peuvent qu'aider à adopter SharePoint. En particulier, dans mon entreprise nous avons été confrontés aux sujets suivants :
  1. la définition d'autorisations personnalisées pour des listes dans une définition de site.
  2. les formulaires personnalisés d'éléments de liste dans une définition de site.
  3. les connexions de composants WebPart dans une définition de site.
  4. comment une définition de site peut être livrée de manière incrémentielle
—Adam C.

Merci pour vos suggestions. C'est exactement le type de commentaires que nous prendrons en compte à mesure que continuons à développer ce contenu.


Boîte à outils Nouveaux produits pour les professionnels de l’informatique
Greg Steen

Automatisation des tâches d'administration
Automise 2
automise.com/automise.aspx
Les tâches répétitives qui ne nécessitent aucune réflexion sont ennuyeuses, laborieuses et sources d'erreurs. L'automatisation de ces types de tâche est essentiel pour la bonne administration et permettent d'améliorer la satisfaction au travail. En dehors de l'utilisation de fichiers de commande impossibles et de scripts VBS d'automatisation des tâches, vous disposez d'un certain nombre d'utilitaires de type macro pour Windows® et quelques utilitaires qui vont jusqu'à vous forcer à apprendre un langage de script personnalisé. Heureusement, il existe une autre option. Automise 2, de VSoft Technologies, permet de générer des routines d'automatisation par l'intermédiaire d'une interface utilisateur graphique personnalisable avec des opérations de type glisser/déposer.
L'interface de l'application est très proche d'une IDE de programmation simple, ce qui offre des options familières. Vous bénéficiez ainsi d'une boîte à outils dans laquelle vous faites glisser des éléments sur votre surface de conception, des commandes de débogage qui permettent de parcourir votre code, une vue de vos différents projets, des journaux d'exécution des sorties, un historique et les fenêtres de propriétés. Mais avec Automise, votre « code » constitue une véritable représentation visuelle du flux de travail de la tâche automatisée.
La boîte à outils d'Automise comprend des actions, chacune exécutant une étape simple du processus d'automatisation. 380 actions sont incluses avec l'application, ce qui couvre toute la gamme d'opérations possibles, de la création de fichiers zip au redémarrage d'IIS.
Lorsque vous concevez votre tâche, vous pouvez structurer ces actions de façon hiérarchique pour couvrir la plupart des processus administratifs que vous exécutez normalement. Par ailleurs, vous pouvez connecter vos actions par des actions de contrôle du flux, tels que les blocs try/catch, le renvoi d'exceptions, les instructions if-then-else, les boucles, les options, les retards et les groupes d'actions asynchrones.
Chaque projet d'automatisation permet également d'inclure d'autres projets, de façon à séparer le flux professionnel du contrôle par ses sous-tâches. Vos disposez également d'actions pour manipuler des chaînes et des données XML, définir des variables, attendre des processus et des commandes et bien plus encore. Avec tous ces flux d'options de contrôle, les opérations les plus complexes peuvent être automatisées.
Automise permet de créer, exécuter, modifier et supprimer des tâches planifiées. Ceci signifie que vous pouvez utiliser Automise pour gérer également vos processus existants. Je n'ai pas assez de place pour donner la liste de toutes les actions, mais certaines méritent d'être mentionnées : actions d'enregistrement d'une DLL dans le cache GAC (Global Assembly Cache), reconstitutions d'index SQL Server®, exécution de chkdsk, modification du registre, sauvegarde du journal des événements, modification des utilisateurs d'Active Directory®, montage de volumes, création de points de restauration et création d'un répertoire virtuel. Et, si les actions intégrées ne permettent pas de faire tout ce que vous voulez, Automise dispose également d'action de création de script personnalisé, de commandes et d'exécution SQL en fonction du contexte.
Il s'agit donc d'un outil pratique à conserver à portée de la main. Et si vous vous contentez d'automatiser votre propre poste de travail Windows, par opposition à l'automatisation de l'infrastructure du réseau, essayez Automise Lite, qui filtre un certain nombre de fonctionnalités tout en offrant la plupart des besoins d'un utilisateur avancé.
Prix : La licence utilisateur unique commence à 195 $ (direct).
Automatisez vos tâches de façon visuelle avec Automise 2 (cliquer sur l'image pour l'agrandir)

Consultez vos journaux en temps réel
BareTailPro
baremetalsoft.com/baretailpro
Des fichiers journaux dans tous les sens ! Mais c'est leur utilisation qui est la plus contraignante. C'est formidable de disposer d'une application qui produit un journal de ses transactions. Mais en supplément des outils d'agrégation de journaux, comment pouvez-vous vraiment suivre ce que se passe en temps réel ? L'une des solutions est BareTailPro, une solution solide et fiable de Bare Metal Software. La dernière mise à jour date de 2006, mais cet utilitaire simple reste une version Windows améliorée semblable à l'ancienne commande *nix de console 'tail-f'.
Avec son interface utilisateur graphique simple, vous pouvez regarder des fichiers journaux multiples de n'importe quelle taille, en analysant de façon transparente ce qui est écrit dedans en temps réel. Pour parcourir les différents fichiers, il suffit de cliquer sur un onglet. Et, une excellente fonctionnalité, chaque onglet affiche une icône pour signaler l'état de chaque fichier journal, indiquant si le fichier est en cours d'écriture ou si la file d'attente a été arrêtée.
La plupart des applications ont recours à des journaux, mais leurs modes de consignation sont différents. Heureusement, BareTailPro peut lire les fichiers en Unicode, UTF-8, ANSI et ASCII et peut déterminer si leurs lignes doivent se terminer par des paires retour de chariot/saut de ligne, saut de ligne uniquement ou rien. Vous pouvez facilement configurer les retours à la ligne et l'expansion des onglets pour bénéficier de la vue la plus adaptée au type de fichier journal. Par ailleurs, vous pouvez améliorer la lisibilité du fichier journal en configurant la taille de la police, son type, l'espacement et la hauteur de ligne.
Une autre excellente idée est la possibilité de personnaliser les options de surlignement des fichiers journaux. Vous pouvez définir autant de règles de codage de la coloration en premier plan/arrière-plan en fonction d'une chaîne de texte. Par exemple, vous pouvez souligner n'importe quelle erreur en rouge et un avertissement en jaune, ou vous pouvez choisir de sélectionner toutes les lignes qui ont une adresse IP spécifique ou une référence d'hôte. Vous pouvez spécifier les lignes en gras ou en italique et vous pouvez choisir de ne pas tenir compte des majuscules et des minuscules.
Le meilleur surlignage du monde peut surcharger un journal et rendre difficile l'identification des événements que vous recherchez. BareTailPro offre une autre fonctionnalité qui peut vous aider. La fonctionnalité d'expressions régulières et de recherche de texte permet de réduire la taille des vues de vos fichiers journaux et de rassembler ainsi les instances de ligne qui vous intéressent dans un seul sous-ensemble maniable. La syntaxe des expressions régulières utilisée par BareTailPro est composée d'un sous-ensemble de la notation standard utilisée par Java, Perl et PHP. Si vous n'êtes pas familier avec cette pratique, le site Web de produits fournit une référence rapide.
L'utilitaire présente les résultats filtrés sous forme de tableau et ajoute quelques colonnes utiles, telles que la date et l'heure, le numéro de ligne et les résultats des groupes de capture qui auraient pu être définis avec la source de ligne d'origine. Dans la vue filtrée, ces colonnes peuvent également être triées.
Je ne me souviens jamais de la syntaxe de l'expression régulière « magique » qui m'a obtenu les résultats dont j'ai besoin. C'est pourquoi j'apprécie la fonctionnalité d'enregistrement de modèle de cet outil. Vous pouvez ainsi nommer, modifier et enregistrer des modèles réutilisables. Après avoir filtré les lignes importantes de votre vue, BareTailPro permet également d'exporter ces résultats dans un fichier ou dans le presse-papiers à un format personnalisé, ce qui permet de définir des éléments tels que la largeur, l'alignement, le préfixe et le suffixe des colonnes de résultat.
Le plus impressionnant est que ce petit utilitaire est contenu dans un seul petit exécutable, ce qui le rend portable et limite les impacts sur votre environnement. Cependant, si vous souhaitez simplement parcourir vos fichiers journaux et ne nécessitez pas de filtre par expression régulière, l'enregistrement de modèles de recherche et l'exportation de résultats de recherche et de filtres, vous pouvez vous contenter de la version gratuite, appelée BareTail.
Prix : À partir de 35 $ pour une licence individuelle.
Contrôlez votre réseau avec BareTailPro (cliquer sur l'image pour l'agrandir)

Inventaire de vos systèmes
Inventaire réseau total
softinventive.com
L'aménagement d'un accès rapide à des informations détaillées sur les ordinateurs de votre environnement est un élément clé pour une bonne gestion des systèmes. Les feuilles de calcul et les listes relatives à ces informations sont faciles à perdre de vue, difficile à gérer de façon exhaustive et rapidement obsolètes.
Il peut être très pratique d'utiliser un outil dynamique qui présente les informations « à la demande » en rassemblant des données sur ce qui a été installé et le type de matériel utilisé pour l'exécution. Un outil de ce type est également très pratique pour suivre tous les suppléments ajoutés par les utilisateurs sur leur ordinateur. (Ceci, bien sûr, ne vous concerne que si votre stratégie de groupe ne limite pas déjà les droits d'installation ou fournit des comptes rapides sur le nombre de licences autorisées par rapport à la base d'installation d'un logiciel donné). Un outil qui remplit ce critère est Total Network Inventory de Softinventive Lab.
Après avoir installé Total Network Inventory, vous pouvez démarrer le processus d'inventaire avec l'Assistant Scan, qui vous permet d'identifier les nœuds de votre réseau. Vous pouvez procéder à une numérisation immédiate, via une plage d'adresses d'IP spécifiée ou en parcourant les emplacements réseau, ou vous pouvez utiliser une analyse de script d'ouverture de session, qui permet de recueillir des informations lorsqu'un ordinateur ouvre une session dans le domaine.
Total Network Inventory repose sur WMI (Windows Management Instrumentation), IPC$\ADMIN$ ou RPC/DCOM, et le partage classique pour les comptes locaux afin d'exécuter son analyse. Par conséquent, vous devez l'exécuter dans le contexte d'un compte Administrateur.
Une fois l'analyse terminée, vous pouvez parcourir les ordinateurs ou rechercher des ordinateurs spécifiques pour procéder à l'inventaire de leurs actifs. Total Network Inventory regroupe les informations d'inventaire dans trois catégories : matérielles, logicielles et autres informations. La partie matérielle inclut des détails du processeur, la carte mère et le chipset, la mémoire, le sous-système vidéo, le stockage (ce qui inclut les périphériques physiques et logiques), les types de carte réseau et les configurations, les périphériques et tout autre périphérique installé sur le système.
La catégorie logicielle fournit des informations sur le système d'exploitation, ce qui inclut les clés de produit, les répertoires système et les Service Pack installés. Vous disposez également de détails sur les correctifs (ainsi que le numéro correspondant dans la base de connaissances) et toutes les applications antivirus et de base de données installées. Vous obtenez ainsi la liste des programmes qui sont installés (ainsi qu'une vue du répertoire Program Files, de façon à voir les applications qui pourraient être masquées dans la liste Ajout/suppression de programmes standard), ainsi que la liste des applications à exécution automatique.
Enfin, la catégorie « autres informations » rassemble des détails sur l'environnement système, tels que les variables utilisateur et système, les ressources partagées, les processus en cours d'exécution, les services installés et les comptes utilisateur locaux.
Total Network Inventory apporte toutes les informations nécessaires pour procéder à des audits de biens, à la vérification des licences, à la mise à niveau des calculs et aux évaluations de performances. L'un des meilleurs aspects de cet outil est le composant Report Builder. Cette fonctionnalité permet de bénéficier de rapports multiples, bien organisés et détaillés pour tout, de la référence rapide à un audit papier. De plus, les rapports peuvent être sous forme synthétique ou porter sur un seul ordinateur. L'une des fonctionnalités que je trouve particulièrement utile est l'onglet Software and Licenses Accounting (Comptabilisation des logiciels et des licences). Il affiche de façon synthétique le décompte de chaque type de logiciel installé dans votre environnement afin d'assurer la conformité avec vos contrats fournisseur.
Prix : À partir de 95$ pour une licence de 25 nœuds.
L'assistant d'analyse facilite la découverte des nœuds réseau (cliquer sur l'image pour l'agrandir)

Critique
Mastering Microsoft Exchange Server 2007
sybex.com
On peut s'en féliciter ou s'en affliger, mais le message électronique est devenu un composant essentiel du fonctionnement d'une entreprise. (Ce qui ne m'empêche pas de penser que bien des personnes bénéficieraient d'un cours de communication écrite efficace avant de se lancer dans la rédaction de messages électroniques.) Au fil des années, la tendance qui consiste à intégrer les communications vocales, les applications de calendrier, la planification de ressources, l'accès uniforme aux clients et le filtrage du courrier (contre le spam, les virus et autres inconvénients du même type) s'est affirmée. Et c'est ici que Microsoft® Exchange Server 2007 intervient.
La dernière version d'Exchange intègre de façon transparente tous ces composants en une solution évolutive et robuste. Mais avec tous ses fonctionnalités et caractéristiques, l'administrateur, l'architecte et personnel de support nécessitent de bons livres de référence pour les aider à prévoir, déployer, gérer et maintenir une solution de messagerie électronique aussi dynamique.
Dans la dernière édition de la rubrique Boîte à outils, j'ai passé en revue Microsoft Exchange Server 2007 Administrator's Companion. Parmi les autres ressources dignes d'intérêt, citons Mastering Microsoft Exchange Server 2007 par Barry Gerber et Jim McBee (Sybex, 2007). Ce guide écrit dans un style limpide permet de parcourir le cycle de vie d'Exchange Server.
Les trois premiers chapitres du livre forment la section « Understanding and Planning » et présente les composants de base et les critères de mise en œuvre d'Exchange Server 2007. Les personnes familières avec les versions précédentes d'Exchange apprécieront la section relative aux fonctions qui ne sont plus signalées ou mises en œuvre. Et tout le monde appréciera la définition des différents rôles serveur et des composants qui entrent en jeu lors du déploiement d'Exchange Server 2007. Le déploiement d'un serveur aussi complexe nécessite une réflexion préalable et il est recommandé de porter une attention toute particulière aux sections relatives à la planification de la croissance, aux exigences d'espace disque et à l'intégration d'Active Directory.
La section suivante porte sur l'installation et couvre à la fois les nouvelles installations et les mises à jour, que ce soit à partir d'Exchange Server 2000 ou Exchange Server 2003 (vous ne pouvez pas procéder directement à la mise à niveau à partir d'Exchange Server 5.5). Vous trouverez ici davantage de détails sur les différents rôles que chaque serveur Exchange peut lire, ce qui inclut le transport Edge, l'accès client, le transport Hub, la boîte aux lettres, la messagerie unifiée et les outils de gestion.
Le livre passe ensuite à l'aspect évolutif, en indiquant comment contrôler les performances, ajouter des boîtes aux lettres, et ainsi de suite. Ici, vous explorez la superbe nouvelle fonctionnalité, Réplication continue locale, qui permet de conserver une sauvegarde locale à jour de votre magasin de courrier. Si la base de données principale subit un problème, vous pouvez basculer rapidement vers la sauvegarde sans avoir à restaurer les données à partir de supports de sauvegarde de moins en moins à jour.
La section suivante du livre présente de façon détaillée les différentes tâches de gestion et les outils fournis lors du déploiement d'Exchange Server 2007. Ceci inclut des outils tels que Management Shell (fondé sur Windows PowerShell™) et la GUI de la console de gestion Exchange (qui repose également sur le moteur Windows PowerShell). Dans cette section, vous apprendrez à gérer des boîtes aux lettres, des listes d'adresses et les comptes utilisateur. Vous trouverez également des informations sur la gestion des enregistrements de messagerie, ainsi que la classification de messages, la journalisation et les règles de transport.
La quatrième section donne des informations plus détaillées sur la disponibilité et la fiabilité. À une époque où les entreprises sont de plus en plus dépendantes de la messagerie électronique, cette section est devenue particulièrement importante.
Ici, vous découvrirez comment équilibrer la charge, la redondance du serveur, la redondance de stockage, la redondance réseau et la mise en cluster. Les meilleurs pratiques de maintenance planifiée, d'exécution de sauvegardes et les scénarios de récupération en cas de désastre font partie des choses à savoir pour faire fonctionner les systèmes de messagerie électronique de votre entreprise de façon efficace, y compris en cas d'imprévus.
Les deux sections suivantes portent sur l'accès client, ce qui inclut Microsoft Office Outlook® 2007, l'accès Web d'Outlook, IMAP et POP3. Enfin, le livre se termine par une section, particulièrement importante pour l'administrateur Exchange, concernant la sécurité et l'audit, qui présente vos pratiques de sécurité de base, ainsi que les précautions à suivre avec les différents outils à votre disposition. En résumé, ce document de référence permet de se mettre à la page et de mettre le déploiement d'Exchange sur la bonne voie.
Prix : 49,99 $ (direct).

Greg Steen est un professionnel de l’informatique, dynamique et enthousiaste. Il est constamment à la recherche d’outils innovants destinés à faciliter les opérations, l'assurance qualité et le développement pour les professionnels de l’informatique.
© 2008 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. La reproduction partielle ou totale sans autorisation est interdite.


Présentation d'utilitaire Microsoft SharedView
Greg Steen

Je travaille fréquemment avec des collègues qui se trouvent à l'autre bout de la planète et je rencontre constamment des situations où, si chacun pouvait visualiser le même bureau et interagir avec celui-ci, il pourrait illustrer et communiquer ses opinions beaucoup plus efficacement.
Supposons que votre équipe de vente soit en déplacement et doive se réunir rapidement pour partager des informations, vérifier des devis et réduire les efforts redondants. Imaginez comment ce serait plus productif si tous les membres de l'équipe pouvaient visualiser et modifier la même feuille de calcul Microsoft® Office Excel® ou le même document Word presque simultanément, au lieu d'envoyer par message électronique un « document actif » qui peut être rapidement désynchronisé. Maintenant il existe un outil de collaboration léger qui permet cette fonctionnalité, Microsoft SharedView 1.0.
Microsoft SharedView vous permet de réunir jusqu'à 15 personnes et de partager simultanément le bureau de l'hôte de la réunion tout comme si vous visualisiez le même bureau. Votre première pensée peut être que si 15 personnes avaient un contrôle simultané sur le même bureau, cela n'entraînerait rien d'autre que le chaos, mais ce qui se passe réellement, c'est que le contrôle du bureau peut être passé d'un membre à un autre.
Lorsque vous avez le contrôle, vous voyez les mouvements de souris de vos collaborateurs (chacun d'eux dispose d'un pointeur personnalisé), par conséquent; ils peuvent désigner des éléments dans un document ou une application. Malheureusement, SharedView n'a pas de capacités audio intégrées, mais vous pouvez utiliser Windows Live™, le client audio de Messenger ou votre client VoIP préféré pour participer aux conférences pendant que vous partagez le bureau.
Microsoft SharedView vous permet de partager simultanément le bureau d'un hôte de réunion (cliquer sur l'image pour l'agrandir)
L'installation de SharedView est simple et le client est assez intuitif pour que même les utilisateurs moins expérimentés techniquement puissent être rapidement et facilement opérationnels. Après la connexion avec votre compte Windows Live, vous pouvez démarrer une session SharedView à l'aide de quelques clics. Participer à une session est tout aussi simple, il suffit de taper le nom de la session (généralement l'identifiant Windows Live ID de l'hôte) à laquelle vous souhaitez vous connecter ainsi qu'un mot de passe. Les invitations sont envoyées via un message électronique ou en collant le texte d'invite généré dans votre client de messagerie instantané.
Les autres options de SharedView incluent l'activation ou la désactivation des fonctions copier et coller à distance (ainsi les utilisateurs de session peuvent ajouter du texte à partir de leur station de travail locale vers la machine de l'hôte), l'activation directe du suivi des modifications dans Word pour que vous puissiez voir comment les gens modifient le document partagé et une liste rouge explicite pour exclure certains identifiants Windows Live ID de la participation. L'application dispose également d'une fonctionnalité de document pratique qui vous permet de mettre à la disposition des participants de sessions des fichiers supplémentaires. Vous pouvez avoir jusqu'à 25 fichiers ou un total de 200 Mo par session.
Par ailleurs, vous pouvez taper des messages de diffusion pour les participants qui sont affichés en haut de leur session connectée. Vous pouvez choisir de tout partager si vous souhaitez ou, si vous préférez garder certaines choses privées au cours de la réunion, vous pouvez démarrer et arrêter rapidement et facilement le partage des fenêtres à partir de votre ordinateur hôte. En résumé, si vous cherchez un outil de collaboration rapide et simple, Microsoft SharedView répondra sans doute à vos besoins.
Pour commencer, vous pouvez déjà télécharger Microsoft SharedView dans la section de téléchargements de codes du site Web de TechNet Magazine à l'adresse technetmagazine.com.

Greg Steen est un professionnel de l’informatique, dynamique et enthousiaste. Il est constamment à la recherche d’outils innovants destinés à faciliter les opérations, l'assurance qualité et le développement pour les professionnels de l’informatique.


Au cœur de SharePoint Intégration d'applications Office
Pav Cherny

Sommaire
Intégration d'applications Office
Extension de l'interface utilisateur SharePoint
Utilisation du contrôle Office OpenDocuments
Communication avec SharePoint
Implémentation d'une solution OpenControl personnalisée
Résumé
Microsoft Windows SharePoint Services (WSS) 3.0 et Microsoft Office SharePoint Server (MOSS) 2007 s'intègrent de manière transparente à des applications de bureau dans Microsoft Office System 2007, ce qui facilite la collaboration sur les documents, les tableurs, les calendriers, les informations de contacts et bien plus encore. En fait, l'intégration est tellement transparente que l'on
peut dire qu'Office System 2007 est une plate-forme de solutions Office unifiée.
C'est formidable pour les entreprises qui se concentrent sur la technologie Microsoft® Office pour augmenter la productivité des spécialistes de l'information. Cependant, les organisations ayant un portefeuille varié d'applications Office ne peuvent pas apprécier le même niveau d'interopérabilité dès le départ. Office System 2007 fournit les capacités d'intégration nécessaires, cependant les interfaces et composants sont très peu documentés et ne fonctionnent pas en toutes circonstances. Ainsi, il est difficile pour les fournisseurs tiers d'intégrer la technologie SharePoint® à leurs applications et encore plus dur pour leurs clients de fournir une expérience unifiée aux spécialistes de l'information.
Dans cet article, je vais vous montrer comment les applications Office s'intègrent et communiquent avec SharePoint et comment vous pouvez intégrer des applications autres que Microsoft avec SharePoint selon sur les mêmes principes. Mais tout d'abord, je vais parler brièvement des paramètres de configuration du serveur, des composants côté client et des protocoles de communication utilisés pour obtenir une intégration transparente.
Une fois que ces détails sont clairs, je peux aborder l'intégration d'applications ne s'accompagnant pas d'une prise en charge SharePoint intégrée. Dans cet effort, j'irai plus loin que le niveau habituel qui porte généralement sur l'implémentation de composants IFilter pour étendre les capacités de recherche et j'ajouterai des icônes personnalisées sur des serveurs SharePoint. L'extension de la recherche et le renvoi de résultats avec des icônes correctes ne permettent pas d'obtenir une intégration d'application complète. Les utilisateurs risquent de vouloir également ouvrir ces documents directement depuis l'interface utilisateur SharePoint.
C'est là que ça se complique. Vous avez besoin d'un composant côté client qui ne soit pas facilement disponible si vous n'avez pas déployé Office sur vos postes de travail. Mais, même si vous avez déployé Office, vous trouverez peut-être que ce composant ne fonctionne pas de manière fiable, en fonction de votre topologie et configuration de site SharePoint.
Pour résoudre ce problème, j'ai créé une solution personnalisée qui vous permet d'intégrer n'importe quelle application, telle que le Bloc-notes, Adobe Reader ou Autodesk AutoCAD, sans qu'il soit nécessaire de déployer Office. Cette solution personnalisée montre également pourquoi l'intégration d'applications fondée sur des composants Office standard échoue dans certaines situations. Vous trouverez cette solution, ainsi que des instructions de déploiement et de configuration détaillées, dans les ressources associées à cet article, disponibles dans la section Téléchargement de code de Microsoft.com.

Intégration d'application Office
Du point de vue de l'utilisateur, les menus SharePoint semblent fonctionner comme le menu Démarrer de Windows®. Il est facile de créer un nouveau document dans une bibliothèque de documents : cliquez sur Nouveau, puis sur Nouveau Document et Microsoft Office Word 2007 démarre. Il est tout aussi facile de modifier un document existant. Passez le curseur sur le document, puis ouvrez le menu déroulant Edit Control Box (ECB) et cliquez sur Edition dans Word. Il vient rarement à l'esprit que vous avez lancé Word 2007 depuis une page Web via JavaScript, que vous exécutez l'application localement tandis que le document se trouve loin, dans une base de données SQL Server® et qu'un serveur Web existe dans le chemin d'accès aux données, comme illustré à la figure 1.
Figure 1 Utilisation d'un document Word dans SharePoint (cliquer sur l'image pour l'agrandir)
Malgré cette complexité, l'expérience utilisateur sur un poste de travail Windows avec Office System 2007 est continue. L'utilisation de documents dans une bibliothèque SharePoint fonctionne à peu près comme l'utilisation de fichiers locaux ou de fichiers sur un partage réseau.
Cependant, sur un poste de travail Windows non doté d'Office 2003 ou Office 2007, l'interface utilisateur est différente. Lorsque vous cliquez sur Nouveau document ou Edition dans Word, une boîte de dialogue vous informant qu'une application compatible avec Windows SharePoint Services n'est pas disponible s'affiche.
Ceci n'est pas vraiment surprenant. Plusieurs éléments doivent être présents pour fournir l'expérience unifiée des utilisateurs Office. SharePoint doit être conscient des types de contenus présents dans la bibliothèque de documents pour afficher les commandes désirées dans les menus Nouveau et BCE. Lorsque l'on clique sur ces commandes avec la souris, le code JavaScript doit s'exécuter pour lancer l'application associée, en utilisant le chemin menant au document. Cette partie n'est pas indépendante de la configuration des postes de travail parce que le code JavaScript s'exécute localement. En outre, l'application associée doit communiquer avec SharePoint pour lire, voire écrire, des fichiers. Il s'agit là des éléments que vous devez réunir si vous souhaitez intégrer vos applications avec SharePoint.
D'autre part, la communication entre SharePoint et le serveur de base de données est transparente pour l'application, de même que les processus d'indexation sur le serveur Web pour faciliter les recherches. C'est pour cette raison que je n'aborderai pas davantage ces aspects dans cet article, mais je vous recommande de consulter le Microsoft Filter Pack décrit dans l'article de la Base de connaissances Microsoft « Comment enregistrer Microsoft Filter Pack avec Windows SharePoint Services 3.0, » disponible à l'adresse support.microsoft.com/kb/946338. Portons à présent notre attention sur l'ajout de commandes, l'implémentation de composants côté client nécessaires et la simplification de la communication entre applications.

Extension de l'interface utilisateur SharePoint
De nombreuses options sont disponibles pour étendre l'interface utilisateur et les fonctionnalités SharePoint. Vous pouvez modifier la conception de vos sites, personnaliser les pages ASP.NET, développer des composants WebPart ou modifier le code JavaScript inclus dans WS et MOSS pour démarrer vos applications directement.
Rien ne vous empêche d'ouvrir le fichier Ows.js dans un éditeur de texte (le fichier se trouve dans le dossier COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\Template\Layouts\1033 sur vos serveurs frontaux SharePoint) et de modifier le fonctionnement des fonctions createNewDocumentWithProgIDCore, editDocumentWithProgIDNoUI et DispDocItem. Mais il y a une meilleure méthode qui ne nécessite pas la modification de la base de code WSS par des moyens non pris en charge : l'utilisation de types de contenus et de mappages de types de documents.
Dans mon article « Normalisez la gestion des données grâce aux types de contenu personnalisés » (voir TechNet Magazine, février 2008, technet.microsoft.com//fr-fr/magazine/cc194408.aspx), j'ai expliqué comment créer des types de contenu globaux et spécifiques pour gérer des documents et d'autres contenus dans des bibliothèques de documents et des listes SharePoint. Vous pouvez également consulter la feuille de travail Text Content Type.pdf dans les ressources associées à cet article, qui illustre comment créer un nouveau type de contenu pour des fichiers .text et associer ce type de contenu à une bibliothèque de documents. Résultat : vous pouvez sélectionner la commande Contenu de texte du menu Nouveau tout comme vous pouvez sélectionner la commande Document pour les documents Word (voir la figure 2).
Figure 2 Un type de contenu personnalisé dans l'interface utilisateur SharePoint (cliquer sur l'image pour l'agrandir)
Le menu BCE est également extensible. Vous vous attendiez peut-être à ce que le menu BCE reconnaisse les types de contenus, mais ce n'est pas comme ça que la version WSS actuelle implémente ce menu. En fait, vous devez enregistrer votre type de document dans Docicon.xml, qui se trouve dans le dossier %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\Template\Xml sur chaque serveur frontal SharePoint.
En ajoutant le mappage de type de document suivant à la section <ByExtension> de Docicon.xml, par exemple, vous pousserez SharePoint à afficher la commande Edition du Bloc-notes (voir le fichier Text Content Type.pdf pour des instructions plus détaillées) :
<Mapping Key="text" Value="ictxt.gif"
  EditText="Notepad"
  OpenControl="SharePoint.OpenDocuments"/>
Le paramètre Key identifie l'extension de nom de fichier, le paramètre Value définit l'icône du document à afficher dans l'interface utilisateur, le paramètre EditText définit la chaîne que SharePoint ajoute à la commande « Editer dans » et le paramètre OpenControl spécifie le ProgID d'un composant COM côté client. Il s'agit du ProgID que les fonctions JavaScript SharePoint transmettent vers un appel ActiveXObject (voir Ows.js pour plus de détails) pour instancier l'objet COM, qui peut être l'application elle-même ou un contrôle d'assistance qui démarre l'application en fonction du type de fichier associé.
Site Web des technologies et produits SharePoint

  • Site Web des technologies et produits SharePoint
  • TechCenter Windows SharePoint Services
  • Centre de développement Windows SharePoint Services
  • Blog de l'équipe Produits et technologies Microsoft SharePoint
Notez que l'OpenControl appelé SharePoint.OpenDocuments se rapporte à un contrôle ActiveX® fourni avec des versions récentes d'Office (%PROGRAMFILES%\Microsoft Office\Office12\Owssupp.dll). Si ce fichier existe sur vos postes de travail et que l'icône de document spécifiée (paramètre Valeur) se trouve dans le dossier %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\Template\Images sur vos serveurs SharePoint, vous aurez peut-être déjà accompli le plus gros du travail d'intégration nécessaire.
Le kit de développement logiciel Windows SharePoint Services 3.0 inclut des API côté client fournies avec Office 2007, y compris le contrôle OpenDocuments. Consultez la section « Références API côté client » à l'adresse msdn2.microsoft.com/ms440037.

Utilisation du contrôle Office OpenDocuments
Le contrôle OpenDocuments s'adresse aux besoins d'intégration d'application les plus essentiels, mais il nécessite Office 2003 ou Office 2007 et ses capacités sont un peu limitées. Les commandes du menu Nouveau ne marchent pas toujours et elles affichent parfois ce qui risque d'être des notifications d'utilisateur trompeuses.
Comme illustré à la figure 3, le contrôle OpenDocuments informe l'utilisateur que l'application requise n'est pas installée correctement ou que le fichier modèle ne peut pas être ouvert, mais aucun des deux n'est le cas. La fonctionnalité Editer dans pose également des problèmes. Le deuxième message d'erreur affiché au premier plan de la figure 3 est fréquent. C'est mon chouchou car il trompe même les experts SharePoint, mais je vous en dirai plus sur lui dans un moment.
Figure 3 Messages d'erreur trompeurs du contrôle OpenDocuments (cliquer sur l'image pour l'agrandir)
Néanmoins, le contrôle OpenDocuments est utile dans les environnements où des versions récentes d'Office sont installées sur tous les postes de travail. Entre autres choses, vous pouvez masquer vos types de contenu dans le menu Nouveau (affichez les Paramètres de la bibliothèque de documents, cliquez sur Modifier l'ordre et le type de contenu par défaut pour les nouveaux boutons et décochez la case Visible pour tous les types de contenus en question) pour que les utilisateurs n'obtiennent pas le premier message d'erreur. Vous pouvez également avoir une topologie de site simple afin d'éviter des problèmes de communication WebDAV, ceci élimine le second message d'erreur.

Communication avec SharePoint
Jusqu'ici, j'ai réussi à étendre l'interface utilisateur SharePoint et peut-être à lancer une application au moyen du contrôle OpenDocuments, mais mon application a toujours besoin d'une façon de communiquer avec SharePoint pour accéder aux données. Comme toujours, SharePoint prend en charge plusieurs méthodes pour y parvenir, telles que les extensions serveur pour Microsoft Office FrontPage®, les appels de procédure distante WSS, WebDAV et des services Web. En fait, des applications Office, notamment Word 2007, pourraient utiliser l'ensemble ou une partie de ces méthodes de communication, selon la façon dont vous accédez à un document, que ce soit par exemple via des dossiers Web, des périphériques réseau connectés ou l'interface utilisateur SharePoint.
Les méthodes de communication client/serveur SharePoint reposent toutes sur le protocole HTTP. Par exemple, Frontpage et les appels de procédure distante WSS utilisent tous des requêtes HTTP POST et HTTP GET dirigées vers des extensions ISAPI qui résident sur des serveurs SharePoint au sein du dossier %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\ISAPI et de tous ses sous-dossiers.
L'une des extensions ISAPI les plus importantes est Owssvr.dll, qui implémente, entre autres choses, la fonctionnalité nécessaire pour travailler avec des listes et des bibliothèques de documents. La figure 4 montre la boîte de dialogue Enregistrer de SharePoint dans Word 2007 (à gauche) et dans un navigateur (à droite) ouvert directement par l'intermédiaire de la requête http://sharepoint/HR/Administration/_vti_bin/owssvr.dll?dialogview=FileSave&location=Shared%20Documents&FileDialogFilterValue=*.docx. Les similarités entre les deux captures d'écran sont évidentes.
Figure 4 La boîte de dialogue Enregistrer de SharePoint dans Word 2007 et dans Internet Explorer (cliquer sur l'image pour l'agrandir)
Autres extensions ISAPI importantes : Author.dll, qui implémente FrontPage et les appels de procédure distante WSS pour les opérations de modification côté client, telles que le téléchargement, le changement de nom et la suppression de documents ; Admin.dll pour gérer des sites et exécuter plusieurs autres tâches administratives ; et Shtml.dll pour prendre en charge les envois de formulaires HTML.
Il est généralement impossible d'ajouter la prise en charge de FrontPage et des appels de procédure distante WSS dans des applications existantes, telles que le Bloc-notes ou Adobe Reader, sans avoir accès au code source. Mais vous pourriez fournir l'installation de communication nécessaire au moyen de la fonctionnalité Client Web incluse dans Windows.
SharePoint prend également en charge WebDAV via Httpext.dll, qui réside dans le dossier %WINDIR%\System32\Inetsrv\, mais restons du côté client. Sur les ordinateurs exécutant Windows Server® 2008 ou Windows Vista®, la fonctionnalité Client Web est installée par défaut. Vous trouverez un service WebClient correspondant dans l'applet Services des Outils d'administration du Panneau de configuration. Sur Windows XP et Windows Server 2003, vous devez installer le Client Web de façon explicite. Dans tous les cas, assurez-vous que le service WebClient est lancé et que le type de démarrage est défini sur Automatique.
La figure 5 illustre l'architecture du Client Web. Le service WebClient est implémenté dans une DLL en mode utilisateur (Webclnt.dll) que le Gestionnaire de contrôle des services charge dans un processus hôte Svchost.exe. Webclnt.dll fournit l'interface Fournisseur de réseau pour les opérations autres que E/S (telles que l'authentification de l'utilisateur pour l'accès à WebDAV, le montage de sites SharePoint en tant que périphériques réseau, l'énumération de sites SharePoint, les listes et les bibliothèques de documents comme ressources réseaux et la déconnexion de lecteurs installés).
Figure 5 L'architecture du redirecteur client WebDAV (cliquer sur l'image pour l'agrandir)
Pour exécuter ce travail, Webclnt.dll communique avec un pilote du système de fichiers en mode noyau qui fournit la véritable fonctionnalité de redirecteur. Le pilote du redirecteur client WebDAV (Mrxdav.sys) est fondé sur le RDBSS, qui s'intègre avec le Gestionnaire d'E/S et d'autres composants du noyau pour fournir les services d'un système de fichiers distant. Mrxdav.sys implémente la fonction de communication WebDAV pour prendre en charge l'accès au niveau du système de fichiers à des sites et bibliothèques de documents SharePoint.
Le fait d'avoir accès à des sites et des bibliothèques de documents SharePoint par l'intermédiaire d'un redirecteur réseau élimine la nécessité d'une prise en charge de Frontpage et des appels de procédure distante WSS dans les applications utilisateur. Vous pouvez associer des périphériques réseau à des bibliothèques de documents (ex : net use x: http://wss/doclib/Shared%20Documents) et vous pouvez également accéder à des ressources SharePoint par des chemins UNC.
L'URL http://wss/doclib/Shared%20Documents correspond à \\wss\doclib\Shared%20Documents. Vous disposez donc de choix pour ouvrir un document dans une application. Vous pouvez par exemple ouvrir un document dans le Bloc-notes avec le chemin HTTP http://wss/doclib/Shared%20Documents/New%20Text%20Document.txt ou le chemin UNC \\wss\doclib\Shared%20Documents\New%20Text%20Document.txt.
Malheureusement, la fonctionnalité Client Web a plusieurs restrictions. Vous ne pouvez pas accéder à des propriétés personnalisées ou des applications Web qui utilisent des ports TCP personnalisés. Le Client Web fourni avec Windows Vista échoue également si l'utilisateur n'a pas accès à un site parent dans la hiérarchie, comme illustré dans WebDAV Access.pdf (voir les documents d'accompagnement).
Le chemin http://sharepoint/HR/Administration/Shared%20Documents/ inclut un site racine non existant (http://sharepoint). Pourtant, sans accès à la racine, le Client Web ne peut pas déterminer les fonctionnalités du serveur Web. Le serveur Web rejette la requête OPTIONS du Client Web avec le code d'état 401, qui établit que l'accès est non autorisé et, par conséquent, le Client Web continue de demander les informations d'identification de l'utilisateur, comme illustré à la figure 6, bien que l'utilisateur ait un accès administratif à l'ensemble des sites sharepoint/HR et tous les sites à l'intérieur.
Figure 6 Échec d'accès à WebDAV (cliquer sur l'image pour l'agrandir)
Lorsque vous utilisez le contrôle OpenDocuments, vous recevez le message d'erreur affiché à la figure 3 si le Client Web n'ouvre pas un document. L'application est disponible et le mappage de type de document est correct. C'est le document qui n'est pas accessible via le redirecteur WebDAV.

Implémentation d'une solution OpenControl personnalisée
En général, vous avez deux options pour résoudre les lacunes du Client Web. Vous pouvez attendre que Microsoft fournisse une version de Client Web mise à jour ou vous pouvez implémenter une solution OpenControl personnalisée qui peut gérer la situation actuelle. L'implémentation d'une solution OpenControl personnalisée n'est pas une tâche facile, mais elle élimine la nécessité d'avoir Office sur vos postes de travail, elle vous permet de gérer la commande Nouveau en plus de la commande Editer dans de façon pertinente et elle vous permet de traiter les situations dans lesquelles le Client Web échoue.
Si un de ces problèmes vous concerne, examinez le code source AppStart inclus dans les ressources associées. Il vous montre comment exposer les interfaces COM OpenControl dans un assembly Microsoft .NET Framework, que le code SharePoint JavaScript peut appeler. Le code source AppStart montre également une façon possible de vérifier l'accessibilité aux fichiers et de télécharger un fichier sur l'ordinateur local via HTTP si l'accès direct par WebDAV n'est pas possible. Enfin, le code source AppStart répond à la commande Nouveau en téléchargeant le modèle associé au type de contenu sur l'ordinateur local pour que l'utilisateur puisse commencer à traiter le document. Les feuilles de travail Text Content Type.pdf et Adobe Reader Support.pdf expliquent comment déployer cette solution OpenControl.
Le diagramme illustré à la figure 7 affiche l'architecture AppStart. Mon composant OpenControl personnalisé (appelé Biblioso.dll) expose deux interfaces COM identiques que SharePoint JavaScript appelle pour créer de nouveaux documents ou ouvrir des documents existants afin de les modifier (Biblioso.AppStart.2 et Biblioso.AppStart.3).
Figure 7 L'architecture AppStart (cliquer sur l'image pour l'agrandir)
Si un document est ouvert pour modifications, Biblioso.dll vérifie que le fichier existe et démarre l'application associée avec le chemin vers le document si le fichier est accessible directement par WebDAV. Si le fichier n'est pas accessible, Biblioso.dll démarre un serveur COM hors processus qui charge OpenDocsUtility.dll pour télécharger le fichier via HTTP et lancer l'application avec le chemin vers le document téléchargé.
Le serveur COM hors processus permet à la solution de sortir du processus Internet Explorer®, ce qui limite les téléchargements vers le dossier Fichiers Internet temporaires en mode protégé. Les utilisateurs doivent pouvoir télécharger des fichiers sans les restrictions de mode protégé et un serveur COM hors processus fonctionnant comme un broker d'application fournit cette option.
Le développement de serveurs COM hors processus dans .NET n'est pas pris en charge, donc j'ai basculé vers C/C++ pour cet exécutable. J'ai implémenté uniquement la boîte de dialogue Enregistrer sous minimale en C++. Pour que la solution reste la plus simple possible et pour garder une surcharge de développement basse, j'ai placé le code de téléchargement dans un assembly .NET (OpenDocsUtility.dll), que j'ai ensuite appelé par le biais d'une autre interface COM.
Pour faciliter le déploiement, j'ai ajouté un projet d'installation à la solution. Entre autres choses, la routine d'installation enregistre tous les composants COM et écrit des paramètres spécifiques à l'application dans HKEY_LOCAL_MACHINE\SOFTWARE\Biblioso\AppStart. Les paramètres les plus importants sont AllowedApps et AllowedFileTypes. La solution AppStart fonctionnera uniquement avec ces applications et types de fichiers que vous devez spécifier explicitement dans ces paramètres.
La routine d'installation crée également une stratégie d'élévation pour le serveur COM hors processus afin que Biblioso.dll dans le processus Internet Explorer puisse démarrer AppBrokerEngine.exe sans déclencher des avertissements de sécurité. Si vous aimeriez en savoir plus sur Internet Explorer en mode protégé et savoir comment le gérer dans le développement d'applications, je vous recommande vivement l'article de Marc Silbey et Peter Brundrett « Explication et utilisation du mode protégé dans Internet Explorer » disponible à l'adresse msdn2.microsoft.com/bb250462.
Lorsque vous examinez les composants AppStart, souvenez-vous que cette solution a été développée simplement pour montrer ce que l'on peut faire. Elle n'est pas encore prête pour les environnements de production. Le temps manquait pour optimiser le code et tester la solution à fond, ou pour documenter les fonctionnalités, en dehors des commentaires sur le code source.
Vous utilisez cette solution à vos risques et périls. Si vous aimeriez étudier le code source pour créer votre propre solution, commencez par AppStart.cs dans le projet de code Biblioso. Ce fichier implémente l'interface COM OpenControl et les points d'entrée pour les appels JavaScript depuis Ows.js.
Conclusion
WSS 3.0 et MOSS 2007 fournissent des fonctionnalités d'intégration d'applications étendues pour une expérience utilisateur transparente lorsque vous travaillez avec des documents et d'autres éléments dans des bibliothèques de documents et des listes SharePoint. Les applications de bureau dans Microsoft Office System 2007 l'illustrent très bien et il est possible d'atteindre le même niveau d'intégration et d'utilisabilité avec des applications autres qu'Office également.
Au cœur de l'architecture d'intégration d'applications se trouvent les composants COM, que les fonctions SharePoint JavaScript utilisent, avec le chemin du document, pour démarrer l'application. Microsoft Office System 2007 fournit plusieurs de ces composants COM, optimisés pour des besoins d'applications Office spécifiques, bien qu'il soit également possible de réutiliser le contrôle OpenDocuments d'Office pour intégrer des applications autres que Microsoft. Le contrôle OpenDocuments répond aux besoins les plus fondamentaux. Pour les exigences d'intégration d'applications plus avancées, vous pouvez implémenter un contrôle personnalisé.
L'intégration complète d'une application avec SharePoint signifie non seulement installer des composants IFilter et des icônes de documents pour étendre les capacités de recherche et d'affichage, mais elle implique également la création de types de contenus personnalisés et de mappages de types de documents sur les serveurs SharePoint pour fournir des commandes Nouveau et Editer dans appropriées dans l'interface utilisateur SharePoint. Ces commandes appellent des fonctions JavaScript qui appellent des méthodes exposées par un composant OpenControl. Le composant OpenControl doit également être disponible sur le poste de travail.
Autre pièce important du puzzle : le Client Web, inclus et installé par défaut sur Windows Vista. Le Client Web implémente un redirecteur WebDAV et un pilote du système de fichiers distants afin que n'importe quelle application puisse accéder à des ressources dans des listes et des bibliothèques de documents SharePoint, un peu comme les partages de fichiers sur le réseau. Bien que le Client Web fourni avec Windows Vista ait des défauts, il joue un rôle essentiel dans l'intégration d'applications.
La prise en charge WebDAV comble également les fossés entre des applications exécutées sur des postes de travail autres que Windows et SharePoint. La technologie de contrôle COM et ActiveX n'est généralement pas disponible sur ces systèmes d'exploitation, donc vous ne pouvez pas utiliser les composants OpenControl pour démarrer des applications automatiquement, mais la plupart des systèmes d'exploitation incluent des redirecteurs WebDAV pour que les utilisateurs puissent au moins accéder à des documents directement dans des bibliothèques de documents sans avoir à télécharger les fichiers sur les postes de travail locaux.
WSS 3.0 et MOSS 2007 sont les pierres angulaires de la réussite de Microsoft Office System 2007 et les utilisateurs d'applications Office tierces peuvent tirer parti de SharePoint de la même façon. Les capacités d'intégration s'étendent bien au-delà d'Office. En tirant pleinement parti de SharePoint, vous pouvez générer une plate-forme de solutions Office unifiée qui fournit la même expérience utilisateur pour Office et des logiciels tiers et, par conséquent, augmenter la productivité des professionnels de l'informatique.

Pav Cherny est un expert informatique et auteur spécialisé dans les technologies Microsoft pour la collaboration et la communication unifiée. Ses publications incluent des livres blancs, des manuels de produits et des livres avec un intérêt particulier pour les opérations informatiques et l'administration système. Pav est le président de Biblioso Corporation, une entreprise spécialisée dans la documentation gérée et les services de localisation.

© 2008 Microsoft Corporation and CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.


Windows PowerShell La boîte
Don Jones

Sommaire
Soyez l'applet de commande
La fonction de filtrage
Pensez physique
Applications pratiques
Prenez le temps de jouer
Dans un des cours Windows PowerShell que je donnais récemment, certains étudiants avaient du mal à visualiser le rôle du pipeline du shell. J'admets que le pipeline n'est pas totalement intuitif dans la conception, par conséquent cela peut être très difficile pour les étudiants d'imaginer ce qui se passe exactement. Lorsque je suis arrivé au
concept des fonctions de filtrage, qui fonctionne directement dans le pipeline, les choses obtenues vraiment permanentes, et en regardant leurs visages, je pouvais dire que je perdais quelques étudiants.
Pour essayer de les aider, je suis arrivé le lendemain avec une boîte, des autocollants de noms et des balles de ping-pong. (Personne n'a dit qu'on ne peut pas s'amuser en faisant du Windows PowerShell®). J'ai décidé de faire une démonstration en utilisant la ligne de commande suivante :
Get-Process | Where { $_.VM –gt 1000 } | Sort VM
–descending | Export-CSV C:\Procs.csv

Soyez l'applet de commande...
L'utilisation des autocollants de noms, vous savez, les autocollants « Bonjour, je m'appelle …» que vous devez toujours porter aux réunions d'école et à des événements similaires redoutés, j'ai attribué un nom de cmdlet à chaque étudiant. J'ai expliqué que les balles de ping-pong représentaient les objets de processus Windows® (plus précisément, les objets de type System.Diagnostics.Process), puis j'ai demandé aux étudiants de me dire quel nom de cmdlet semblait plus susceptible de générer des objets de processus.
En regardant les balises des autres, ils se sont décidés pour le choix évident de Get-Process. Cela démontre l'une des principales raisons pour lesquelles j'aime vraiment les noms de cmdlet utilisés dans Windows PowerShell : ils sont généralement très évidents.
Donc l'étudiant présentant Get-Process a pris toutes les balles de ping-pong et les a déposées dans le carton. La boîte représente le pipeline du shell et ce que l'étudiant a fait est à peu près ce que fait une cmdlet. Une cmdlet génère un ou plusieurs objets et les dépose dans le pipeline.
La cmdlet suivante dans le pipeline prend ensuite le relais. Dans cet exemple, l'étudiant représentant la cmdlet Where-Object a pris toutes les balles de ping-pong et les a examinées une par une, vérifiant si une propriété VM d'une balle donnée était supérieure à 1 000. Dans le shell, « VM » correspond à mémoire virtuelle et, pour cet exercice, j'avais écrit avec un marqueur les différentes quantités de mémoire virtuelle sur chaque balle de ping-pong.
Chaque balle (processus) ayant une VM de 1 000 ou supérieure est retournée dans la boîte (parfois appelée pipeline), alors que celles ayant une valeur inférieure étaient déposées dans une corbeille, pour ne jamais les revoir. (En fait, cela n'est pas vrai, je les ai récupérées pour les utiliser dans mes futurs cours).
Ensuite, l'étudiant représentant Sort-Object a examiné la boîte de balles de ping-pong et les a mis dans l'ordre, en fonction de leurs propriétés VM. Je dois admettre que cette partie de l'exercice n'a pas été bien pensée, car empêcher les balles de rouler partout était un peu difficile ! Je dois trouver des cubes de ping-pong pour mon prochain cours ou avoir des boîtes d'œufs à portée de main.
Enfin, l'étudiant jouant avec Export-CSV a pris les balles et a écrit les informations dans un fichier CSV. Physiquement, cela se traduit par l'écriture des propriétés du processus sur un tableau à feuilles mobiles qui représentait un fichier CSV.

La fonction de filtrage
Le pipeline étant traité, nous avons décidé d'examiner les fonctions de filtrage, qui sont un peu plus compliquées. J'ai proposé la fonction de filtrage et la ligne de commande illustrée à la figure 1.
Figure 1 Exemple de fonction de filtrage et de ligne de commande
Function Do-Something {
 BEGIN { }
 PROCESS {
  $obj = New-Object PSObject
  $obj | Add-Member NoteProperty "TimeStamp" (Get-Date)
  $obj | Add-Member NoteProperty "ProcessName" ($_.Name)
  Write-Output $obj
 }
 END {}
}
Get-Process | Do-Something | Format-Table *
Tout d'abord, je souhaite passer rapidement en revue ce que les fonctions de filtrage sont susceptibles de faire. L'idée est que cette fonction contient trois blocs de script, nommés BEGIN, PROCESS et END.
Lorsque la fonction est utilisée dans le pipeline, le bloc de script BEGIN est exécuté en premier, Ce script peut effectuer n'importe quelle tâche de configuration, comme l'ouverture d'une connexion de base de données.
Ensuite, le bloc de script PROCESS s'exécute une fois pour chaque objet qui a été transmis dans cette fonction. Dans le bloc de script PROCESS, la variable $_ est automatiquement peuplée avec l'objet de pipeline actuel. Donc, si 10 objets sont transmis, le bloc de script PROCESS s'exécute 10 fois.
Donc, après l'exécution de tous les objets transmis, le bloc de script END s'exécute et effectue toutes les tâches de nettoyage nécessaires, comme la fermeture d'une connexion de base de données.
Dans n'importe lequel de ces blocs de script, tout ce qui est écrit à l'aide de Write-Output se retrouve dans le pipeline pour la cmdlet suivante. Tout ce qui n'est pas écrit à l'aide de Write-Output est rejeté.
Puisque notre commande a démarré avec Get-Process, notre premier étudiant a rassemblé toutes les balles de ping-pong (nous avions fait une courte pause et les balles avaient été lancées avec espièglerie à travers la pièce, imaginez un peu) et les a déposées dans la boîte de pipeline. À la fin de cette tâche, l'étudiant représentant la fonction de filtrage Do-Something a ensuite pris le relais.
Il a d'abord exécuté son bloc de script BEGIN. Comme c'était vide, cela n'a pas nécessité beaucoup d'effort. Puis il a pris tous les objets pipeline (les balles de ping-pong) et a commencé à les examiner un par un. C'était assez amusant, car il y avait une douzaine de balles et il essayait de les garder en équilibre sur ses genoux, il fallait être là pour voir ça !
En tout cas, il a pris les objets de processus un par un et a exécuté son bloc de script PROCESS. Ce bloc de script lui a permis de créer un objet personnalisé tout neuf. (J'ai utilisé les balles de ping-pong jaunes spéciales pour cela, et ne croyez pas qu'elles étaient faciles à trouver dans le magasin d'articles de sport local). Sur ces nouvelles balles de ping-pong, il a inscrit la date et l'heure actuelle avec le nom de l'objet de processus qu'il examinait actuellement.
Ce nouvel objet personnalisé a ensuite été écrit dans le pipeline, ce qui signifie que la balle de ping-pong jaune a été placée dans la boîte et que la balle de ping-pong d'objet de processus original a été rejetée. Il a fait de même pour chaque balle de ping-pong d'objet de processus qui était dans la boîte, environ 12 au total. Lorsque c'était terminé, chaque balle de ping-pong blanche a été remplacée par une balle de ping-pong d'objet personnalisé jaune. Enfin, il a exécuté son bloc de script END, qui était vide et n'a pas pris de temps.
Pour terminer, notre étudiant Format-Table a pris le relais. Elle a tout pris dans la boîte, des objets « personnalisés » jaunes à ce stade et a commencé à construire une table, utilisant les deux propriétés écrites sur chaque balle. Le résultat était une table, écrite sur notre tableau à feuilles mobiles, avec deux colonnes, TimeStamp et ProcessName et d'une douzaine de lignes.

Pensez physique
Cet exercice a vraiment facilité les fonctions de filtrage et de pipeline pour tous les étudiants du cours. Les balles de ping-pong ont permis de représenter les objets, qui ont tendance à être un peu abstraits lorsque vous parlez simplement du shell.
Tout le monde pouvait voir comment les cmdlets ont manipulé ces objets, comment les résultats ont été placés dans le pipeline et comment la cmdlet suivante a pris ces résultats et a encore manipulé les objets. La séquence d'événements dans une fonction de filtrage était plus évidente, comme l'était la technique du bloc de script PROCESS permettant de fonctionner avec un objet d'entrée à la fois.
Cela a démontré également les moyens par lesquels un nouvel objet personnalisé peut être créé et placé dans le pipeline. De plus, il aide à démontrer les avantages de produire des objets personnalisés par opposition au texte simple, les nouveaux objets de coutume pouvaient être utilisés par d'autres cmdlets, comme Format-Table, offrant beaucoup de souplesse dans la manière dont les données pouvaient être ensuite utilisées et représentées.

Applications pratiques
La question évidente des étudiants était comment le pipeline et ces fonctions de filtrage que nous venons de présenter peuvent-ils être utilisés dans les applications pratiques. La réponse était facile pour moi, car j'avais créé plusieurs exemples pour une session de conférences récente (vous pouvez télécharger les exemples à l'adresse scriptinganswers.com/essentials/index.php/2008/03/25/techmentor-2008-san-francisco-auditing-examples).
Un des exemples a pour objectif de répertorier plusieurs propriétés de la classe Win32_UserAccount dans Windows Management Instrumentation (WMI) à partir de plusieurs ordinateurs. En supposant que les noms d'ordinateur sont répertoriés dans C:\Computers.txt, cette commande simple effectuera la tâche :
Gwmi win32_useraccount –comp (gc c:\computers.txt)
Le problème est que la classe Win32_UserAccount n'inclut pas de propriété qui indique de quel ordinateur provient chaque instance, donc la liste résultante sera un mélange inutile de comptes provenant de nombreux ordinateurs. Je résous le problème en créant un nouvel objet personnalisé qui inclut le nom de l'ordinateur d'origine et sélectionne les propriétés de classe qui m'intéressent. Le code de cet objet personnalisé est illustré à la figure 2.
Figure 2 Utilisation d'un objet personnalisé pour collecter des noms d'ordinateur et sélectionner des propriétés
function Get-UserInventory {
  PROCESS {
    # $_ is a computer name
    $users = gwmi win32_useraccount -ComputerName $_
    foreach ($user in $users) {
      $obj = New-Object
      $obj | Add-Member NoteProperty Computer $_
      $obj | Add-Member NotePropertyPasswordExpires ($user.PasswordExpires)
      $obj | Add-Member NoteProperty Disabled ($user.Disabled)
      $obj | Add-Member NotePropertyFullName ($user.FullName)
      $obj | Add-Member NoteProperty Lockout ($user.Lockout)
      $obj | Add-Member NoteProperty Name ($user.Name)
      $obj | Add-Member NotePropertyPasswordRequired ($user.PasswordRequired)
      $obj | Add-Member NotePropertyPasswordChangeable ($user.PasswordChangeable)
    }
  }
}

Get-Content c:\computers.txt |
  Get-UserInventory |
  where { $_.PasswordRequired -eq $False } |
  selectComputer,Name |
  Export-Csv c:\BasUsersBad.csv
La ligne de commande finale transmet tous les noms d'ordinateur à la fonction de filtrage, ce qui génère des objets personnalisés. Ensuite j'ai éliminé tous les utilisateurs sauf ceux dont la propriété PasswordRequired est False (l'idée est de générer un rapport d'audit de comptes à problèmes). Alors je garde simplement les propriétés Computer et Name, donc le rapport final est une liste de noms d'ordinateur et de noms de compte qui nécessitent de l'attention car ils ont des mots de passe sans délai d’expiration. La fonction de filtrage permet d'obtenir un rapport multi-ordinateur car il ajoute le nom d'ordinateur d'origine aux résultats tout en ne laissant que les propriétés que je souhaite voir.
Même s'il existe des façons similaires de réaliser cette tâche, cette approche est peut-être la plus directe. Elle permet également d'illustrer des techniques et des concepts importants.

Prenez le temps de jouer
Même si vous êtes à l'aise avec le pipeline, il y a une leçon à tirer ici. Penser en termes d'objets physiques peut vous aider à déterminer ce que vous essayez de faire.
Donc la prochaine fois que vous aurez des difficultés avec un concept Windows PowerShell, essayez de vous écarter de l'ordinateur et de copier la tâche en utilisant des objets de tous les jours comme illustration. Je recommande humblement que vous gardiez à portée de main un petit sac de balles de ping-pong (ou des cubes, si vous pouvez en trouver) uniquement dans ce but.
Applet de commande du mois Out-File
Combien de fois avez-vous dirigé le résultat d'une cmdlet vers un fichier à l'aide du symbole > ? C'est quelque chose comme Get-Process > Processes.txt. Savez-vous que vous utilisez en réalité la cmdlet Out-File ? Voici une commande qui exécute la même fonction : Get-Process | Out-File Processes.txt.
Bien sûr, cela nécessite de taper un peu plus, alors pourquoi s'ennuyer à taper la cmdlet Out-File en entier ? Une raison est que Out-File est beaucoup plus clair lorsqu'il est lu. Quelqu'un venant dans, disons, six mois peut regarder un de vos scripts et se demander ce que signifie > (c'est, après tout, une sorte d'héritage).
Par contre, avec Out-File, il est assez évident qu'un fichier sera créé et écrit. De plus, Out-File vous donne le paramètre -append (à peu près identique à >>), ainsi que les paramètres -force et -noClobber, vous permettant de contrôler si les fichiers existants sont remplacés. Enfin, taper Out-File vous donne également accès au paramètre -whatif. Ce paramètre pratique affichera ce que Out-File fera, sans le faire réellement ! C'est un bon moyen de tester une ligne de commande sans danger.
Une vidéo
Regardez Don Jones mettre ces cmdlets en action.

Don Jones est coauteur de Windows PowerShell: TFM et donne des cours Windows PowerShell (www.ScriptingTraining.com).


Hé, vous le scripteur ! La poussée d'adrénaline
Les scripteurs Microsoft

Il ne fait aucun doute qu'écrire pour TechNet Magazine est le plus prestigieux et le plus gratifiant travail qui soit. (Bien sûr, il serait encore plus gratifiant si nous étions réellement payés, mais c'est une autre histoire). Mais quel est exactement le prestige de ce travail ? Disons cela comme ça : à ce moment même, partout dans le monde, les enfants qui sont mis au lit regardent leur mère et disent « Maman, lorsque je serai grand, je veux participer chaque mois à la rubrique des scripteurs de TechNet Magazine ».
Remarque Bien sûr, partout dans le monde, certaines personnes pensent que cette rubrique est déjà écrite par des enfants. Mais ça, c'est également une autre histoire.
On sait bien que les Scripteurs adorent être l'objet des adulations dispensées à tous ceux qui écrivent pour TechNet Magazine. Nous avons même appris à tolérer les demandeurs d'autographe et les paparazzi. Mais la vérité c'est que nous ne faisons pas ce travail pour l'honneur et la gloire. Nous faisons ce travail pour la poussée d'adrénaline qui accompagne l'écriture de scripts d'administration de système.
Il est vrai que vous ne voyez pas souvent les expressions « poussée d'adrénaline » et « script d'administration de système » dans la même phrase. (À moins, bien sûr, que la poussée d'adrénaline ne soit précédée par son manque total et complet).
Monsieur Tout-Le-Monde considère les scripts d'administration de système comme étant extrêmement utiles mais probablement pas très passionnants. En fait, il trouve probablement les scripts un peu monotones. Et en voici la raison : ces personnes n'ont pas essayé d'écrire des scripts de données de configuration du démarrage dans Windows Vista® ou Windows Server® 2008.
Et oui, votre rythme cardiaque a légèrement augmenté, pas vrai ? Comme la plupart d'entre vous le savez probablement, dans Windows Vista et Windows Server 2008, l'ancien fichier boot.ini a été remplacé par une nouvelle banque de données de configuration de démarrage qui assure une meilleure flexibilité (et capacité) lorsqu'il s'agit de gérer le processus de démarrage.
C'est plutôt sympa. Mais voila encore mieux : grâce à un nouveau fournisseur Windows® Management Instrumentation (WMI), l'accès à la banque de données de configuration de démarrage (BCD) est désormais facile (et sa gestion totale) grâce à l'utilisation de scripts.
Vous venez de ressentir une sensation étrange le long de votre colonne vertébrale, ne vous inquiétez pas : c'était une poussée d'adrénaline. Après avoir commencé à travailler avec les scripts BCD, vous vous y habituerez.
Avant de poursuivre, nous devrions préciser que nous ne pouvons pas couvrir tout ce qui peut être fait en utilisant le fournisseur BCD, du moins pas dans cet article. (Nous avons envoyé un message électronique aux éditeurs du magazine pour leur parler de l'éventualité de consacrer un numéro double spécial exclusivement à l'écriture de scripts de données de configuration de démarrage, mais nous n'avons pas encore eu de leurs nouvelles).
Si vous voulez plus d'informations, consultez la documentation du fournisseur WMI BCD sur go.microsoft.com/fwlink/?LinkId=116953. En attendant, nous allons vous montrer un exemple de code conçu pour les ordinateurs à démarrage multiple, c'est-à-dire les ordinateurs avec plusieurs systèmes d'exploitation.
Au fait, ces scripts fonctionnent seulement sur Windows Vista et Windows Server 2008. C'est parce que, comme nous venons de le dire, il s'agit des deux seuls systèmes d'exploitation qui prennent actuellement en charge BCD.
Commençons par jeter un coup d'œil à un script qui nous dit quel système d'exploitation est actuellement utilisé sur un ordinateur. D'accord, ce n'est pas l'utilisation la plus passionnante pour le fournisseur BCD. Après tout, nous pouvons déjà utiliser la classe WMI Win32_OperatingSystem pour déterminer quel système d'exploitation est actuellement utilisé sur un ordinateur. Toutefois, il s'agit d'un script raisonnablement simple (pour autant que les scripts BCD soient concernés) et il s'agit d'un bon moyen pour illustrer les techniques fondamentales requises pour travailler avec BCD (techniques qui sont, pour le moindre, un peu... inhabituelles).
Par ailleurs, notre rubrique ne doit pas engendrer trop d'agitation : TechNet Magazine nous a déjà dit que nous serons responsables de tout dommage causé par des fans surexcités et trop zélés de Hé, vous le Scripteur ! Après l'hystérie collective qui a suivi, dans le monde entier, la publication de notre article sur les expressions régulières, et bien, nous ne pouvons plus nous permettre de refaire quoi que ce soit d'aussi excitant.
Remarque Vous vous souvenez de toutes ces vidéos des Beatles attaqués par leurs fans et de toutes ces images de filles s'évanouissant et pleurant dès qu'elles voyaient John, Paul, George et Ringo ? C'est un peu comme ça que les choses se passent pour nous chaque fois que nous publions un nouvel article.
Bon d'accord, j'exagère peut-être un peu. Mais il ne fait aucun doute que de nombreuses personnes, des hommes aussi bien que des femmes, sanglotent après avoir lu l'un de nos articles.
Jetez un coup d'œil au script de la figure 1, qui utilise le fournisseur BCD pour déterminer quel système d'exploitation est actuellement utilisé sur un ordinateur. Avant d'essayer d'exécuter ce script, sachez que vous devez être identifié comme administrateur, sinon le script échouera.
Figure 1 Connaître le système d'exploitation actuel
Const BcdLibraryString_Description = &h12000004
Const Current = "{fa926493-6f1c-4193-a414-58f0b2456d1e}"

strComputer = "."

Set objStoreClass = GetObject("winmgmts:{(Backup,Restore)}\\" & _
 strComputer & "\root\wmi:BcdStore")

objStoreClass.OpenStore "", objStore
objStore.OpenObject Current, objDefault

objDefault.GetElement BcdLibraryString_Description, objElement
Wscript.Echo "Current operating system: " & objElement.String
Et non, cela ne signifie pas simplement que vous devez être connecté à un compte disposant de privilèges d'administrateur. Cela signifie que vous devez ouvrir une fenêtre Invite de commande en cliquant avec le bouton droit sur Invite de commande dans le menu Démarrer et sélectionner Exécuter comme administrateur. Vous pouvez ensuite exécuter ce script à partir de l'invite de commande.
Comment ce script fonctionne-t-il ? Nous avions peur que vous nous le demandiez. Mais pas de problème ! Nous allons essayer de l'expliquer le mieux possible (ce qui, en dehors de toute autre chose, devrait limiter l'excitation autant que possible, au moins pour quelques temps).
Commençons par définir deux constantes : BcdLibraryString_Description et Current. BcdLibraryString_Description se réfère à l'objet que nous voulons récupérer. Dans ce cas, cet objet contient la Description (nom) du système d'exploitation actuel.
Il s'agit, en fait, de l'un des caprices touchants du fournisseur BCD. Généralement, vous ne récupérez pas simplement la valeur d'une propriété. Plutôt, vous utilisez l'une de ces valeurs constantes (et la méthode GetElement) pour récupérer un autre objet, puis renvoyez la valeur d'une propriété appartenant à cet objet. C'est certainement un peu bizarre, mais vous savez ce qu'on dit : le trajet, c'est la moitié du plaisir.
Remarque Vous vous demandez où ils veulent en venir, pas vrai ?
Quant à la constante Current, il s'agit simplement d'un GUID qui représente le système d'exploitation actuellement utilisé. La valeur
{fa926493-6f1c-4193-a414-58f0b-2456d1e}
est considérée comme un GUID « bien connu » (ce qui, à lui seul, prouve que les employés de Microsoft ont bien le sens de l'humour).
Bien qu'il s'agisse d'un GUID bien connu, nous avons poursuivi et inclus la valeur de toute façon, juste au cas où l'un de nos lecteurs aurait du mal à se rappeler laquelle des deux valeurs suivantes est correcte :
{fa926493-6f1c-4193-a414-58f0b2456d1e}
{fa926493-6f1c-4193-a414-58f0b2456d1f}
Remarque Au cas où vous vous poseriez la question, GUID peut être prononcé « gwid » ou « gou-id ». Nous pourrions rajouter, par exemple, que le précédent GUID doit être un V1 GUID, en voyant comment le troisième groupe de chiffres commence avec un 4. Mais, nous avons promis de limiter l'excitation autant que possible. Et nous tenons nos promesses.
Comme vous l'aurez peut-être deviné, vous devrez utiliser des constantes, des valeurs hexadécimales et des GUID pratiquement partout en travaillant avec le fournisseur BCD. Nous ne pouvons pas couvrir tous ces sujets dans la rubrique de ce mois, mais vous pouvez consulter la page BCD dont nous avons déjà parlé sur MSDN® (go.microsoft.com/fwlink/?LinkId=116953) pour plus d'informations. Si vous pouvez supporter cette excitation, c'est parfait.
Après avoir défini nos deux constantes, nous nous connectons au service WMI sur l'ordinateur local. Pouvez-vous utiliser ce script pour récupérer les données de configuration de démarrage pour une machine distante ? Bien sûr que c'est possible.
Pour être honnête, dans le cas contraire, tout ce truc avec BCD n'aurait que peu d'intérêt. Pour récupérer les données de configuration de démarrage d'une machine distante (je le répète, l'ordinateur distant doit exécuter Windows Vista ou Windows Server 2008), vous attribuez simplement le nom de cette machine à la variable strComputer :
strComputer = "atl-fs-001"
Nous devons également indiquer deux éléments clés dans notre chaîne de connexion WMI. Pour commencer, vous aurez peut-être remarqué que nous avons inclus les privilèges de Sauvegarde et Restauration dans notre chaîne de connexion. C'est ce que fait la construction {(Backup,Restore)}. Est-ce important ? Et bien, si vous voulez que votre script fonctionne, c'est très important : autrement dit, si vous n'incluez pas explicitement ces deux privilèges, le script échouera.
Ensuite, vous noterez que nous ne nous connectons pas à l'espace de noms root\cimv2, l'espace de noms le plus couramment utilisé dans les scripts d'administration de système. À la place, nous nous connectons à l'espace de noms root\WMI et nous nous connectons directement à la classe BCDStore. C'est ce que fait ce bout de code :
"\root\wmi:BcdStore"
Et non, ce n'était pas la partie passionnante. Elle est encore à venir.
Bien qu'il puisse y avoir une ou deux exceptions, globalement tout script BCD que vous écrivez commencera par les mêmes trois étapes : définition des constantes, connexion au service WMI et ouverture du magasin BCD. Nous avons déjà réalisé les étapes 1 et 2. La ligne de code suivante correspond à l'étape 3 :
objStoreClass.OpenStore "", objStore
Comme nous l'avons dit, nous ouvrons le magasin BCD, l'entité du système d'exploitation qui enregistre toutes les informations de votre configuration de démarrage. Pour ouvrir le magasin, nous appelons simplement la méthode OpenStore, en lui transmettant deux paramètres :
  • Une chaîne vide (""). Cela dit au script que nous voulons ouvrir le magasin par défaut.
  • objStore. C'est un paramètre « out » que nous transmettons au script. Nous donnons à la méthode le nom d'une variable et, dans un mouvement de gratitude, la méthode renvoie un objet (dans ce cas, un objet représentant le magasin BCD) qui utilise ce nom de variable comme référence objet.
Dès que le magasin est ouvert, nous pouvons utiliser la méthode OpenObject pour récupérer un autre objet (enregistré dans le paramètre out objDefault) :
objStore.OpenObject Current, objDefault
Et quel est ce nouvel objet ? C'est exact : c'est le système d'exploitation actuellement utilisé. Nous le savons parce que nous avons transmis à OpenObject la constante Current, le GUID bien connu qui représente le système d'exploitation actuel.
Bien, donc maintenant nous savons quel système d'exploitation est actuellement utilisé sur l'ordinateur, pas vrai ? Et bien, presque. Pour obtenir cette information, nous devons encore utiliser GetElement pour récupérer un objet représentant la Description de ce système d'exploitation :
objDefault.GetElement _
  BcdLibraryString_Description, objElement
Maintenant, promettez-vous que vous garderez votre sang froid et ne succomberez pas à une hystérie collective ? Bien. Dans ce cas, nous pouvons vous dire que nous allons renvoyer la valeur de la propriété de Chaîne et, enfin, déterminer le système d'exploitation actuellement utilisé sur l'ordinateur :
Wscript.Echo "Current operating system: " _
  & objElement.String
Veuillez garder votre calme. Rappelez-vous votre promesse : pas d'hystérie collective. Oui, nous savons que c'est difficile. Faites de votre mieux. Respirez profondément. Ca marche toujours pour nous lorsque nous écrivons des scripts BCD.
Comme nous l'avons dit, la route est longue pour arriver simplement à déterminer quel système d'exploitation est utilisé sur un ordinateur. Il existe des façons plus faciles de le faire. Toutefois, le bon côté de la chose est que vous comprenez maintenant comment fonctionne un script BCD, ce qui signifie que vous pouvez faire certaines choses que les auteurs de script n'ont jamais pu. (Restez calme, restez calme). Par exemple, sur un ordinateur à démarrage multiple, un système d'exploitation est toujours étiqueté par « défaut ». Si un ordinateur redémarre, en l'absence d'un autre ordre, l'ordinateur charge automatiquement le système d'exploitation par défaut. Avant Windows Vista (et le fournisseur BCD), il n'y avait pas de façon pour un scripteur de déterminer le système d'exploitation par défaut d'un ordinateur. Maintenant, c'est aussi facile qu'exécuter un script comme celui de la figure 2.
Figure 2 Détermination du système d'exploitation par défaut
Const BcdLibraryString_Description = &h12000004
Const BootMgrId = "{9dea862c-5cdd-4e70-acc1-f32b344d4795}"
Const DefaultType = &h23000003

strComputer = "."

Set objStoreClass = GetObject("winmgmts:{(Backup,Restore)}\\" & _
    strComputer & "\root\wmi:BcdStore")
objStoreClass.OpenStore "", objStore

objStore.OpenObject BootMgrId, objBootMgr

objBootMgr.GetElement DefaultType, objDefaultOSIdentifier
objStore.OpenObject objDefaultOSIdentifier.Id, objDefault

objDefault.GetElement BcdLibraryString_Description, objElement
WScript.Echo "Default operating system: " & objElement.String
Vous avez raison : cela mérite une petite hystérie collective, pas vrai ? D'accord, mais une toute petite ! Nous n'expliquerons pas ce script en détail. Si vous n'avez pas survolé les 10 ou 12 précédents paragraphes, vous devriez pouvoir suivre la logique. Vous remarquerez toutefois que pour arriver au système d'exploitation par défaut, nous devons passer par une étape intermédiaire : nous devons utiliser la méthode OpenObject pour ouvrir une instance de l'objet Gestionnaire de démarrage. Après avoir ouvert le Gestionnaire de démarrage, nous pouvons utiliser la constante DefaultType pour récupérer un objet représentant le système d'exploitation par défaut.
Maintenant, je le reconnais, c'est plutôt excitant : nous pouvons déterminer le système d'exploitation actuel et nous pouvons déterminer le système d'exploitation par défaut. Mais savez-vous ce qui serait vraiment super ? Ce serait de récupérer une liste de tous les systèmes d'exploitation installés sur un ordinateur. Ce serait vraiment excitant ! Attachez vos ceintures de sécurité et regardez la figure 3.
Que faisons-nous ici ? Et bien, pour commencer, nous définissons deux nouvelles constantes : WindowsImages, qui nous permet de récupérer des instances de tous les systèmes d'exploitation qui prennent en charge BCD (c'est-à-dire, Windows Vista et Windows Server 2008) ; et LegacyImages, qui nous permet de récupérer des instances de tous les systèmes d'exploitation « hérités » sur l'ordinateur. Après nous nous connectons au magasin BCD, nous utilisons la méthode EnumerateObjects pour récupérer toutes les instances des systèmes d'exploitation compatibles BCD installés sur l'ordinateur :
objStore.EnumerateObjects _
  WindowsImages, colObjects
Figure 3 Recherche de tous les systèmes d'exploitation sur un ordinateur
Const BcdLibraryString_Description = &h12000004
Const WindowsImages = &h10200003
Const LegacyImages = &h10300006

strComputer = "."

Set objStoreClass = GetObject("winmgmts:{(Backup,Restore)}\\" & _
 strComputer & "\root\wmi:BcdStore")

objStoreClass.OpenStore "", objStore

objStore.EnumerateObjects WindowsImages, colObjects

For Each objObject in colObjects
 objObject.GetElement BcdLibraryString_Description, objElement
 Wscript.Echo objElement.String
Next
Wscript.Echo

objStore.EnumerateObjects LegacyImages, colObjects

For Each objObject in colObjects
 objObject.GetElement BcdLibraryString_Description, objElement
 Wscript.Echo objElement.String
Next
Après qu'EnumerateObjects a terminé, nous définissons une boucle For Each qui parcourra tous les systèmes d'exploitation dans cette collection. Dans cette boucle, nous utilisons ces deux lignes de code pour récupérer et afficher la Description du système d'exploitation :
objObject.GetElement _
  BcdLibraryString_Description, objElement
Wscript.Echo objElement.String
Puis nous répétons le processus avec tout système d'exploitation hérité installé sur la machine :
objStore.EnumerateObjects _
  LegacyImages, colObjects

For Each objObject in colObjects
 objObject.GetElement _
  BcdLibraryString_Description, objElement
 Wscript.Echo objElement.String
Next
Remarque Nous comprenons les frissons que vous ressentez, mais veuillez exécuter vos scripts BCD de façon responsable. Il y a probablement une limite au nombre de poussées d'adrénaline que le corps humain peut supporter. Les femmes qui sont enceintes ou peuvent tomber enceintes ou peuvent ne jamais tomber enceintes, ou qui ont été enceintes ou qui ne sont pas des femmes mais sont en fait des hommes, ne doivent pas exécuter les scripts BCD sans avoir consulté au préalable leur médecin.
Bon, d'accord, il n'est pas nécessaire de consulter son médecin au préalable. Mais il serait intéressant d'entendre ce qu'un médecin dirait si vous lui parliez des scripts BCD, n'est-ce pas ?
Essayons quelque chose de complètement fou. Voyons si nous pouvons modifier le système d'exploitation par défaut. Par exemple, supposons que nous ayons un ordinateur à double amorçage exécutant Windows Vista et Windows Server 2008. Et supposons que nous voulions définir Windows Vista comme système d'exploitation par défaut. Comment procéder ? Jetons un coup d'œil à la figure 4. Elle montre une façon de faire.
Figure 4 Modification du système d'exploitation par défaut
Const BootMgrId = "{9dea862c-5cdd-4e70-accl-f32b344d4795}"
Const BcdLibraryString_Description = &h12000004
Const DefaultType = &h23000003
Const WindowsImages = &h10200003

strComputer = "."

Set objStoreClass = GetObject("winmgmts:{(Backup,Restore)}\\" & _
 strComputer & "\root\wmi:BcdStore")

objStoreClass.OpenStore "", objStore
objStore.EnumerateObjects WindowsImages, colObjects

For Each objObject in colObjects
 objObject.GetElement BcdLibraryString_Description, objElement
 If Instr(objElement.String, "Vista") Then
  objStore.OpenObject BootMgrId, objBootMgr
  objBootMgr.SetObjectElement DefaultType, objObject.ID
 End If
Next
Avec ce script, nous ouvrons de nouveau le magasin BCD, puis nous utilisons EnumerateObjects pour récupérer une collection de tous les systèmes d'exploitation gérant BCD installés sur l'ordinateur. De là, nous définissons une boucle For Each qui parcourra tous les éléments de cette collection, en utilisant la ligne de code suivante (et maintenant familière) pour récupérer la Description pour chaque système d'exploitation :
objObject.GetElement _
  BcdLibraryString_Description, objElement
Dès que nous avons la Description pour un système d'exploitation donné, nous utilisons la fonction InStr pour voir si le mot Vista apparaît quelque part dans cette valeur :
If Instr(objElement.String, "Vista") Then
Et vous avez raison, cela semble un peu bringuebalant. Le mieux serait d'utiliser le GUID pour Windows Vista et d'ouvrir directement ce système d'exploitation, sans devoir énumérer et parcourir tous les systèmes d'exploitation sur l'ordinateur.
Malheureusement, pour cela nous devrions connaître le GUID pour Windows Vista. Alors que de cette façon, nous ne devons rien savoir (toujours un plus pour les Scripteurs), nous n'avons qu'à chercher jusqu'à ce que nous trouvions le mot Vista dans le titre.
Remarque Que ce passe-t-il si vous avez de multiples instances de Windows Vista installées sur l'ordinateur ? Dans ce cas, vous devez chercher une chaîne comme Vista Ultimate ou Vista Enterprise.
Dès que nous trouvons Windows Vista, nous utilisons ces deux lignes de code pour ouvrir le Gestionnaire de démarrage Windows puis définissons le système d'exploitation par défaut sur Windows Vista :
objStore.OpenObject BootMgrId, objBootMgr
objBootMgr.SetObjectElement _
  DefaultType, objObject.ID
C'est tout ce pour quoi nous avons le temps ce mois. Après tout, même les Scripteurs ne peuvent pas gérer une excitation incessante 24 heures sur 24, 7 jours sur 7. Mais ne vous n'inquiétez pas. Nous reviendrons le mois prochain avec un autre volet passionnant de Hé, vous le Scripteur ! Avec un peu de chance, vous aurez récupéré d'ici là.
Les scripts embrouillés du Dr. Scripto
Le défi mensuel qui teste non seulement votre capacité à résoudre des énigmes, mais également vos compétences d'écriture de scripts.

Juillet 2008 : Carrés VBScript
D'accord, il s'agit probablement de rectangles, et pas de carrés, mais cela n'a rien à voir. Pour résoudre cette énigme, placez chaque carré sur la droite dans un carré vide sur la gauche pour créer les noms de fonctions VBScript. Chaque carré n'est utilisé qu'une fois. Voici un exemple :
Pour résoudre correctement cet exemple, vous devez déplacer le carré (rectangle) OU vers le carré vide dans le premier mot et le MS et le OX vers les carrés vides dans le deuxième mot. Cela donne les fonctions VBScript UBound et MsgBox, comme montré :
À votre tour :

RÉPONSE :
Les scripts embrouillés du Dr. Scripto
Réponse : Carrés VBScript, juillet 2008

Les scripteurs travaillent pour (enfin, sont employés par) Microsoft. Lorsqu’ils ne sont pas en train de jouer au base-ball, d’entraîner une équipe ou de regarder un match (ou de se livrer à de multiples autres activités), ils dirigent le Script Center TechNet. Vous pouvez le vérifier vous-même sur www.scriptingguys.com.


Histoires de Bureau Démarrage réseau de Windows
Wes Miller

Sommaire
Fonctionnement de PXE
Présentation de RIS
WDS—Les origines
Autres intervenants
Conclusion
Au cours des mois qui viennent j'ai l'intention de parler de Windows Deployment Services (WDS), qui est disponible pour Windows Server 2003 et est intégré à Windows Server 2008. WDS peut être un composant essentiel de votre infrastructure de déploiement, donc je veux m'assurer que vous abordez cette discussion sur de bonnes bases. Ce
premier article va explorer l'architecture du protocole PXE (Pre-Boot eXecution Environment), l'historique de Remote Installation Services (RIS), ainsi que d'autres technologies relatives à PXE et utilisées par Microsoft.
Lorsque j'ai intégré le groupe Windows OS en 2001, RIS était l'une des technologies dont j'ai hérité. Un héritage terrifiant en raison de sa complexité et sa dépendance par rapport aux mises en œuvre du BIOS et au matériel. Mais c'était, en supplément de Windows® PE, l'une des technologies que j'ai appréciées le plus dans mon rôle de responsable de programme.
Je me souviens de ma première installation de Windows 3.0, avec toute une série de disquettes de 3,5 pouces. Progressivement, l'installation est devenue plus facile grâce aux CD de démarrage (inclus dans certaines versions de Windows 98). Mais dans tous les cas, l'installation nécessitait un support physique quelconque, ainsi qu'un disque dur local.
Ensuite, une des principales demandes de nos clients était un démarrage complet à partir du réseau, sans disque dur. Certaines versions anciennes de Windows disposaient de cette capacité, mais ne fut jamais le cas pour Windows NT®. Et tandis que les versions actuelles de Windows Server® 2003 et Windows Server 2008 peuvent être démarrées via un initiateur iSCSI, le processus est tout à fait différent dans la mesure où il n'est pas véritablement local, elles impliquent une dépendance continue par rapport à un lecteur de démarrage distant.
Préconfiguration des clients
  • Évaluation du processus de préconfiguration du client RIS
  • Préparation de l'amélioration de la sécurité du réseau à l'aide de clients préconfigurés
  • Préconfiguration des ordinateurs clients
  • Installation d'un système d'exploitation distant
À partir de Windows 2000, Microsoft a commencé à développer une technologie qui allait progressivement devenir RIS et qui tiendrait lieu d'installation réseau. L'objectif de RIS était relativement simple : placer une image du système d'exploitation sur le disque local de l'ordinateur cible au moyen de PXE.

Fonctionnement de PXE
La figure 1 représente la séquence de démarrage PXE. Le protocole PXE est relativement simple et a été développé par Intel et d'autres fournisseurs dans le cadre de l'initiative « Wired for Management ». PXE est dérivé du protocole DHCP (Dynamic Host Configuration Protocol), lui-même dérivé de BootP, et est généralement implémenté sur votre carte d'interface réseau (NIC). Pour présenter les choses de façon simple, voici ce qui se produit :
Figure 1 Séquence de démarrage de PXE (cliquer sur l'image pour l'agrandir)
Étape 1 Le BIOS système démarre et détermine la séquence de démarrage.
Étape 2 Si la séquence de démarrage place PXE avant les disques durs, ou les lecteurs flash, ou les CD-ROM, ou si aucun de ces périphériques n'est présent, l'interface UNDI (Universal Network Driver Interface) est chargée à partir du NIC. Le NIC comporte un tout petit pilote de périphérique réseau et le protocole TFTP (Trivial File Transfer Protocol). (Dans certaines implémentations du BIOS, les utilisateurs doivent appuyer sur la touche F12 pour démarrer PXE. Cette fonctionnalité n'est pas standard et le fait d'avoir le choix de la désactiver me paraît intéressant).
Étape 3 Le système commence à créer une diffusion UDP simple, afin de rechercher un serveur DHCP. Il s'agit en fait de première étape de la séquence de démarrage PXE, que l'on appelle Discover (détection). Tenez compte du fait que le protocole est UDP, ce qui signifie que vous devrez très bien connaître vos routeurs et vos commutateurs afin de garantir que les communications PXE puissent transiter sans problèmes.
Étape 4 Si un serveur DHCP reçoit la diffusion, il répond en conséquence avec une adresse IP. Cette étape est appelée Offer (proposition). Ici, il est important de se souvenir que PXE n'a pas d'état et que la quantité d'informations sur l'état propre au système offerte par le client est plutôt limitée (l'adresse MAC et, si disponible, le GUID BIOS de gestion du système, également appelé GUID SMBIOS).
Étape 5 Le client, après avoir reçu le paquet avec l'adresse IP, demande un supplément d'informations, à savoir l'adresse du serveur PXE. Une autre diffusion se produit, qui inclut les informations provenant du serveur DHCP qui a répondu au début. Dans ce cas, le client demande au serveur DHCP « j'ai besoin de plus d'informations, notamment sur l'emplacement d'un programme de démarrage réseau ». Cette étape est appelée Request (demande).
Étape 6 Le serveur PXE répond avec l'adresse du serveur PXE et l'emplacement du programme de démarrage réseau, un tout petit exécutable de démarrage qui doit faire moins de 32 Ko. Cette étape est appelée Acknowledge (accusé de réception). Si vous faites quelques essais, vous allez sans doute voir l'acronyme DORA (Discover, Offer, Request, Acknowledge), qui est une excellente façon de mémoriser la séquence.
Si vous avez installé Microsoft DHCP et WDS (ou utilisé toute autre forme de technologie d'autres fournisseurs), l'étape de requête ne se produit pas et, en fait, le paquet « Offer » d'origine provenant du serveur DHCP inclut déjà l'emplacement du serveur PXE et du programme NBP (en supprimant ainsi deux étapes, et en gagnant ainsi un peu de temps).
Étape 7 Le client, qui dispose de la petite pile de protocole TFTP mentionnée plus haut, télécharge le NBP à partir de l'emplacement réseau spécifié par le serveur PXE. TFTP est un protocole démodé, extrêmement petit et sans état. Il n'a pas été choisi pour sa sécurité ou ses performances et de nombreux administrateurs de routeur le désactivent donc par défaut. Il doit être activé pour que PXE fonctionne.
De nombreuses implémentations PXE (y compris RIS) inclut la possibilité de demander à l'utilisateur d'appuyer sur F12 pour poursuivre à partir de ce point. En général, ceci peut être désactivé par l'administrateur du serveur PXE. Le mois suivant, lors d'une analyse plus approfondie de WDS, j'examinerai les améliorations apportées par Microsoft au TFTPD (TFTP Daemon) dans WDS pour Windows Server 2008 afin d'améliorer les performances.
Étape 8 NBP est initialisé. Dans le cas de RIS, ceci active un chargeur de démarrage Windows qui lance le processus de déploiement. PXE (au moins le véritable protocole au niveau du démarrage) n'est plus un composant du processus.
Il est important de se rappeler que PXE (qu'il s'agisse de RIS, WDS ou toute autre infrastructure) ne fonctionne pas correctement sur les liens lents (il peut avoir à transférer des quantités considérables de données) ou les liens à forte latence, tels que les liens satellites (la communication s'exécute très mal, voire pas du tout).
Vous pouvez constater dans le processus de démarrage PXE que lorsque le client envoie la requête, rien ne pose de question du genre, « Êtes-vous ma mère ? » Il n'y a pas suffisamment d'informations d'état pour que le serveur PXE puisse prendre connaissance de son environnement. Les serveurs se trouvent alors dans une situation compétitive : le premier serveur qui répond à la requête client l'emporte. Deux choses peuvent aider à réduire ce problème :
  • Ajustez la vitesse de réponse de l'un des serveurs PXE. La latence du réseau et la puissance du serveur influeront sur le temps de réponse des serveurs. En fait, chez Microsoft, les serveurs utilisés par le service informatique étaient si bons que même si le serveur PXE était dans votre bureau, les serveurs d'entreprise arrivaient à l'emporter. Dans ce cas, vous définissez votre serveur local PXE de façon à ne pas avoir de délai d'expiration du tout pour vos clients préconfigurés.
  • Préconfiguration des clients. Ceci est très important si vous manipulez votre serveur PXE pour répondre plus rapidement que les autres serveurs d'entreprise. En préconfigurant vos clients, vous autorisez Active Directory® à dire à WDS ou RIS que oui, en fait, « je suis votre mère ». Notez que l'utilisation du GUID SMBIOS est de loin préférable en tant qu'identificateur unique pour vos systèmes dans Active Directory, mais si un GUID SMBIOS n'est pas implémenté dans les systèmes (plus probablement pour le matériel plus ancien), vous pouvez (et devrez) utiliser un GUID reposant sur l'adresse MAC. Pour plus d'informations, consultez le volet « Préconfiguration des clients ».
  • N'autorisez pas les communications PXE à transiter sur les commutateurs ou les routeurs. Mettez un serveur PXE de chaque côté. Ceci a comme inconvénient d'être aussi cher à implémenter qu'à gérer (la maintenance de l'image des serveurs est nécessaire).
Les serveurs RIS (et maintenant WDS), tels que les serveurs DHCP de Microsoft, doivent être authentifiés contre la mise en œuvre d'Active Directory à laquelle ils sont associés. L'objectif est de réduire les problèmes que les serveurs PXE anormaux peuvent causer (comme les orages de diffusion PXE) en permettant à Active Directory de tout savoir sur ces serveurs.
Cette opération permet de se protéger uniquement par rapport aux serveurs connus par Active Directory. Si vous configurez votre propre domaine ou un serveur PXE non Microsoft, cela n'est pas le cas.
Un jour, chez Microsoft, un employé a fait du zèle et a configuré un serveur PXE non RIS, sous forme de déploiement « sans intervention humaine ». Cette mise en œuvre effaçait complètement le disque dur et créait une nouvelle image. Ceci n'aurait pas posé de problème si ce déploiement avait eu lieu dans un laboratoire isolé (hors réseau), mais ce ne fut pas le cas. Il a effacé le disque d'un cadre de Microsoft pour lequel PXE figurait dans la partie supérieure de sa séquence de démarrage, avant le disque dur.
Ceci n'avait causé aucun problème auparavant, dans la mesure où le service informatique de Microsoft demandait toujours d'appuyer sur F12 pour démarrer avec PXE. Mais ce serveur PXE n'avait pas de délai, d'invite F12 ou tout autre type de notification. Par conséquent, ce cadre a perdu son ordinateur et toutes les données non protégées par son profil d'utilisateur itinérant.
Cette histoire est là pour mettre en avant la nécessité d'isoler vos serveurs PXE si vous souhaitez éliminer toute intervention humaine ou n'utiliser que la touche F12.

Approfondissement de RIS
J'ai hérité de RIS après avoir hérité de Windows 2000. Le temps a fait subir ses irréparables outrages à Windows 2000 en ce qui concerne RIS, et les tests, performances et autres contraintes ont fait que RIS pour Windows Server 2000 n'est utilisé que pour le déploiement de Windows 2000 Professionnel. Les produits serveur, malheureusement, ne pouvaient pas être déployés avec RIS. Windows 2000 était uniquement disponible pour les machines x86. Il s'agit donc d'un bon banc d'essai pour RIS, dans la mesure où il s'agissait d'un seul produit sur une seule architecture. RIS incluait (et nécessitait) une intégration complète avec Active Directory, s'intégrait bien avec le serveur DHCP de Microsoft et incluait son propre TFTPD.
RIS utilise le programme de démarrage réseau pour poursuivre le téléchargement TFTP et apporter une proportion suffisante du noyau Windows pour amorcer le processus d'installation. (À un certain stade, seul Windows a basculé de la connexion serveur TFTPD vers un bloc de message serveur ou SMB. Le chemin de code littéral est en fait partagé avec une installation traditionnelle par disquette de Windows 2000 ou Windows XP). Une fois le mode natif de Windows initialisé, l'installation lance l'Assistant sélection du système d'exploitation RIS (OSC).
Les écrans OSC peuvent être configurés en partie, un peu comme des pages en HTML 2.0. Ils sont soumis à des contraintes strictes et ne peuvent pas contenir d'image ou tout autre élément graphique et, en fait, ne peuvent pas contenir de caractères non ANSI (ce qui compliquait le déploiement de certaines versions localisées de Windows).
Le produit final de RIS est un fichier txtsetup.sif qui repose sur le serveur RIS. Lorsque l'Assistant de sélection du système d'exploitation se termine, le client subi un « redémarrage logiciel », mais l'emplacement du serveur RIS et du fichier txtsetup.sif est conservé et rechargé après ce redémarrage. Ce fichier txtsetup.sif est en fait identique à un fichier unattend.txt, avec plusieurs champs supplémentaires inclus pour aider RIS à terminer le processus d'installation.
RIS pourrait également procéder à une installation beaucoup plus proche de l'installation sans assistance traditionnelle (RISetup) et il disposait d'une infrastructure de type clonage semblable à Sysprep (RIPrep) et, en fait, partageait du code avec cette dernière. Mais RIPrep pouvait également charger sa propre image sur un serveur RIS.
RIS comportait des restrictions fondamentales qui sont ensuite devenues apparentes. La première était le manque de prise en charge pour le déploiement du serveur. Certains codes malveillants, tels que Code Red et Sasser, combinés à la complexité informatique que plusieurs clients clés ont pu mesurer en procédant à la restauration directement à partir de la tragédie du 11 septembre 2001, nous a conduit à accélérer une solution pour les serveurs RIS existants de Windows 2000 existants, afin d'autoriser le déploiement de Windows Server. Nous avions déjà travaillé sur la question pour Windows Server 2003 mais n'avions pas publié une version formelle.
Plus de détails sur les technologies de type PXE
  • Description des interactions PXE entre le client PXE, DHCP et le serveur RIS
  • Planification des déploiements de systèmes d'exploitation initiés par PXE
  • Architecture PXE
  • Services d'installation à distance
  • Installation à distance du système d'exploitation
  • Guide détaillé de la désinstallation de système d'exploitation à distance
  • Fournisseur PXE WDS
  • Qu'est-ce que les services d'installation à distance ?
  • Services automatisés de déploiement de Windows Server 2003
Ensuite, RIS ne permettait d'automatiser complètement l'Assistant de sélection du système d'exploitation, qui était activé plus tard avec l'élément <META ACTION="AUTOENTER"> dans Windows Server 2003. Enfin, l'Assistant fonctionnait exclusivement avec des caractères ANSI. Cette faiblesse nous a été reprochée par de nombreux utilisateurs en dehors des États-Unis.
Ainsi, vous ne pouviez pas terminer l'installation de RIS avec un clavier français, par exemple. Adapter de façon sûre les caractères non-ANSI au niveau du BIOS sur les PC du monde entier était extrêmement complexe à concevoir et à appliquer.
Avec la parution de Windows Server 2003, nous avons ajouté la prise en charge formelle de l'architecture Itanium d'Intel et de toutes les variantes de Windows 2000 et Windows Server 2003. Windows Server 2003 est allé encore plus loin en prenant en charge l'architecture x64.
RIS a également bénéficié d'un TFTPD réécrit en grande partie pour améliorer ses performances. Windows Server 2003 prenait en charge le démarrage simultané de 75 clients. Tenez compte du fait que la limite supérieure est atteinte ici au fur et à mesure que le trafic réseau remplit le canal SMB avec le trafic réseau vers les clients.

WDS — Les origines
Lorsque nous avons commencé à travailler sur RIS pour « Longhorn » (le nom de code de ce qui allait devenir Windows Server 2008), il est devenu évident que nous devions prendre du recul. Comme je l'ai mentionné dans mon article précédent, nous avions déjà beaucoup misé sur l'installation avec image (WIM) de Windows PE. Par conséquent, le principe clé de WDS était le déploiement de type image à partir d'une instance démarrée par PXE de Windows PE.
Nous savions également que Windows Server 2003 servirait de plate-forme commune pour le déploiement de Windows Vista® et que nous aurions besoin d'une solution « hors bande » pour le niveau inférieur de WDS. Par conséquent, WDS pouvait s'exécuter sur Windows Server 2003 SP1 et était intégré à Windows Server 2003 SP2.
Dans la mesure où il peut fonctionner en tant que serveur RIS (mode Hérité), serveur hybride (mode Mixte) ou serveur WDS uniquement (mode Natif), WDS permet de migrer vers les déploiements formels de style WDS comme prévu. Des clients m'ont demandé s'il était possible d'installer RIS sur un système Windows Server 2003 SP2. Oui, c'est possible. Vous installez WDS, puis exécutez en mode Hérité. La figure 2 présente les systèmes d'exploitation pris en charge.
Figure 2 Plates-formes prises en charge pour le déploiement
Système d'exploitation | RIS (Windows 2000) | RIS (Windows Server 2003) ** | WDS (Windows Server 2003)**** | WDS (Windows Server 2008)
Windows 2000 Professionnel | X | X | X | X
Windows Server 2000 | * | X | X | X
Windows XP Professionnel |  | X (x86 et IA64)*** | X | X
Windows Server 2003 |  | X (x86 et IA64)*** | X | X
Windows Vista |  |  | X | X
Windows Server 2008 |  |  | X | X
* support.microsoft.com/kb/308508 et support.microsoft.com/kb/313069, ajout de la prise en charge pour Windows 2000 Server via RIS. ** Les modes WDS Hérité et Mixte prennent en charge cette même matrice pour l'installation héritée. *** Windows Server 2003 SP1 a ajouté la prise en charge pour les systèmes x64. Les systèmes IA64 prennent uniquement en charge l'installation de type RISetup. **** Prise en charge de Mode natif.
WDS dans Windows Server 2003 SP1 et SP2 a tenté d'amorcer le processus de migration vers WDS. Comme indiqué plus haut, les fonctionnalités clés de WDS qui ont été ajoutées dans Windows Server 2008 avaient pour objectif de prendre en charge un TFTPD révisé et le démarrage EFI (Extensible Firmware Interface), ainsi que, naturellement, le déploiement de type multidiffusion.

Autres intervenants
ADS (Automated Deployment Services) a été créé par une autre équipe Microsoft, avec pour principal objectif la mise à disposition rapide des serveurs. ADS disposait d'une imagerie formelle en fonction du secteur, de son propre agent de démarrage (plus petit que Windows PE, mais pas multifonction), son propre TFTPD et une multidiffusion très avancée. La fonctionnalité créée dans ADS est devenue disponible en partie dans SCCM (System Center Configuration Manager), même si les fonctionnalités ne sont pas totalement identiques.﻿
Windows XP Embedded disposait d'une fonctionnalité de démarrage PXE par l'intermédiaire de son propre TFTPD sur un disque RAM, mais ne pouvait pas être déployé à distance de cette façon. Cette technologie a été conçue pour prendre en charge le démarrage de nombreux systèmes à partir de la même image de disque et en même temps via PXE.

Conclusion
L'essentiel de l'article en quelques lignes. Pour en savoir plus, consultez le volet « Plus de détails sur les technologies de type PXE ». Le mois prochain, je me plongerai dans les principes de base de WDS, suivis par des rubriques sur la fonctionnalité avancée de WDS (multidiffusion et plus) et, enfin, l'utilisation de WDS sans WDS ce qui signifie que je souhaite expliquer comment dépasser l'environnement WDS/installation actuel pour appliquer vos propres techniques de déploiement.

Wes Miller est responsable de produit technique pour CoreTrace (www.CoreTrace.com) à Austin au Texas. Il travaillait auparavant chez Winternals Software et comme responsable de programme pour Microsoft. Vous pouvez contacter Wes à l’adresse suivante : technet@getwired.com.


Vigilance sécurité Mots de passe et cartes de crédit, première partie
Jesper M. Johansson

Sommaire
Conseils de sécurité inopérables
Inopérable et incorrect
Conseils incompréhensibles
Les pièges d'authentification de site basée sur les images
J'ai été récemment contacté par l'Université du Minnesota afin d'avoir un entretien pour son magazine. Apparemment, ils voulaient exécuter une fonctionnalité sur des anciens étudiants ayant réussi et, comme ils n'en ont trouvé aucun, ils m'ont choisi. L'enquêtrice m'a demandé sur quoi je travaillais et j'ai essayé pendant quelques minutes de décrire les logiciels
d'infrastructure de sécurité. Elle s'est alors écriée, « Cela me paraît très compliqué ! Pour moi, la sécurité a trait aux mots de passe et aux cartes de crédit ».
J'ai médité sur cette réaction pendant quelques minutes et me suis rendu compte qu'elle avait raison. La sécurité a trait effectivement aux mots de passe et cartes de crédit. Au moins pour l'utilisateur final. Ceux d'entre nous qui travaillent au sein d'une l'entreprise pensent que la sécurité concerne les algorithmes cryptographiques, le problème de savoir si Kerberos est un meilleur choix que TLS ou NTLMv2, les avantages de WS*, le problème de savoir si les hachages de mot de passe doivent utiliser une valeur aléatoire et tous les autres sujets ésotériques que nous aimons aborder. Bien sûr, nous avons un point de vue très différent et plus profond que les utilisateurs finaux, mais nous avons, généralement perdu de vue une chose fondamentale : la sécurité, pour ceux que nous devons aider, a trait aux mots de passe et cartes de crédit.
Certes, tout cet ésotérisme dont nous aimons discuter et les nouvelles technologies que nous aimons inventer sont destinés à protéger les données de l'utilisateur final. Pourtant, je pense que nous avons perdu le cap. En tant que sous-culture de sécurité du monde de l'informatique, nous existons pour répondre à un besoin particulier de nos ressources, celui de conserver les données en sécurité. Cela, inclut bien sûr, la garantie que les éléments informatiques peuvent être utilisés en toute sécurité. C'est exactement ce dont il s'agit.
Dans les rubriques précédentes, j'ai fait remarquer que personne ne décide d'acheter un ordinateur pour exécuter un logiciel antivirus. L'utilisateur achète un ordinateur pour effectuer des opérations bancaires en ligne, jouer à des jeux électroniques, écrire des messages électroniques, exécuter son travail ou certaines autres fonctions importantes. De la même manière, aucune entreprise ne subventionne un groupe de sécurité informatique simplement pour pouvoir implémenter NTLMv2. Les entreprises subventionnent les groupes de sécurité informatique afin que ceux-ci protègent les biens de l'organisation, permettant à l'entreprise dans son ensemble d'utiliser ses ressources informatiques en toute sécurité et d'atteindre ses objectifs métier.
Nous n'existons que pour aider.
Par conséquent, je dois demander si nous « aidons » vraiment de nos jours. Ou bien sommes-nous, en tant que sous-culture de sécurité, une entrave plus qu'une aide ? Les législateurs et les autorités de réglementation contribuent-ils à faire de nous des freins ? Je ne suis pas convaincu que toute cette nouvelle technologie que nous mettons en place aide vraiment les utilisateurs finaux. Donc, j'aimerais explorer quelques domaines où nous, fournisseurs informatiques du monde entier, faisons plus de mal que de bien.
Certains jours, il semble que la plupart des recommandations de sécurité et un grand nombre des technologies de sécurité que nous imposons à nos utilisateurs soient inopérables, incorrectes, incompréhensibles ou (dans de nombreux cas) les trois à la fois. Dans cette série en trois parties, j'examinerai les façons nous déroutons les utilisateurs en donnant des conseils et en déployant des technologies qui sont responsables d'un ou de plusieurs de ces trois « i ».

Conseils de sécurité inopérables
Une des meilleures façons de dérouter les gens c'est de donner des conseils de sécurité inopérables. S'ils sont incorrects en plus, vous gagnez des points de bonus. La figure 1 illustre un conseil courant éprouvé théoriquement judicieux et totalement inutile.
Figure 1 Conseils de sécurité inopérables (cliquer sur l'image pour l'agrandir)
Vous connaissez cette recommandation qui dit d'utiliser un mot de passe différent pour chaque compte en ligne que vous possédez ? Il y a trente ans cette recommandation avait un sens. Le nombre de personnes qui se connectaient sur ce qui est devenu finalement Internet n'était que de quelques centaines et c'était des personnes très intelligentes qui ne choisissaient pas de bons mots de passe. Malheureusement, ce conseil est maintenu et ne cesse de se répéter et il n'y a pas eu d'effort apparent pour adapter ce conseil à l'utilisation actuelle des ordinateurs.
Combien de comptes en ligne possédez-vous ? Personnellement, j'en ai 115, plus ou moins quelques-uns dont je n'effectue pas le suivi. Le conseil de la figure 1 suggère non seulement que je dois posséder 115 mots de passe différents, mais aussi que je dois modifier ces 115 mots de passe tous les 30 à 60 jours. En d'autres termes, je dois modifier 2 à 4 mots de passe tous les jours. (Faites les calculs : Cela signifie également que j'aurais entre 690 et 1380 mots de passe dans une année).
Alors que le personnel technique sur certains sites offrant ce conseil peut proposer 4 bons mots de passe par jour et conserver 115 mots de passe actuels dans la mémoire à court terme, vous pouvez être certain que 99,99 % du public surfant sur le Web ne pourront pas le faire.
Le conseil de ne pas utiliser les mêmes mots de passe partout est correct et judicieux d'un point de vue purement théorique, de même que le conseil de modifier vos mots de passe tous les 30 à 60 jours. Mais ce conseil est également inopérable. Étant donné le nombre de mots de passe que possèdent les utilisateurs actuellement, ils ne peuvent tout simplement pas suivre ce conseil sans une aide quelconque, comme un papier ou un logiciel. Entrez l'exemple suivant.

Inopérable et inexact
Le conseil illustré à la figure 2, qui vient du site Web d'une des plus grandes banques monde, est inopérable et incorrect. Les informations fournies sous le titre « Read our password advice » (Lire nos conseils sur les mots de passe) répètent la ligne « different passwords everywhere » (pas les mêmes mots de passe partout). Elles recommandent également de ne jamais les écrire.
Figure 2 Conseils inopérables et incorrects (cliquer sur l'image pour l'agrandir)
Donc maintenant je possède 115 mots de passe différents, je dois créer 4 nouveaux mots de passe chaque jour et je ne suis pas autorisé à les écrire. Pendant un moment, je pensais que j'étais stupide puisque je ne pouvais pas me rappeler tous mes mots de passe. Puis j'ai découvert que tout le monde était pareil. Les êtres humains ne peuvent tout simplement pas se rappeler 115 mots de passe. Nous pouvons nous rappeler et traiter environ sept informations, c'est comme cela que nous sommes programmés. Si vous suivez la plupart des conseils sur les mots de passe que vous trouvez sur Internet, ils ne suffisent même pas pour un seul mot de passe (voir « The Magical Number Seven, Plus or Minus Two : Some Limits on Our Capacity for Processing Information » de George A. Miller, qui est disponible à l'adresse musanim.com/miller1956).
Malheureusement, lorsqu'il s'agit de conseils sur les mots de passe, notre secteur trompe régulièrement les utilisateurs. Si la sous-culture de sécurité conseille de ne pas utiliser les mêmes mots de passe partout, nous devons également leur dire comment, et cela veut dire qu'il faut enregistrer et stocker ces mots de passe dans un endroit sécurisé. Écrivez-les sur une feuille de papier, utilisez un document sécurisé ou utilisez un outil spécialisé, comme PasswordSafe (sourceforge.net/projects/passwordsafe). Admettez-le, nous enregistrons nos mots de passe ou nous utilisons le même mot de passe partout. En fait, une enquête récente a montré que 88 % des utilisateurs ont le même mot de passe sur tous les systèmes où ils doivent être authentifiés (voir msnbc.msn.com/id/24162478).
Le conseil de ne pas écrire votre mot de passe est certainement un facteur contribuant à cette tendance. Ce que nous devons faire, c'est apprendre aux utilisateurs à gérer les mots de passe (et les autres données sensibles), au lieu de leur apprendre à ne pas gérer ces informations du tout. Ils seront alors beaucoup moins susceptibles de compromettre leurs informations d'identification.

Conseil incompréhensible
Les deux premières figures répètent le vieux conseil qui fonctionnait bien dans les années 60, 70 et 80, avant que les utilisateurs de base ne se connectent et n'utilisent les services Web. Depuis, personne ne s'est plaint de ce type de conseil car il est généralement admis.
Ce type de conseil déroute les utilisateurs qui peuvent se sentir coupable de stocker leurs mots de passe quelque part. En donnant ce type de conseil, au lieu d'aider les utilisateurs à effectuer des actions correctes, les professionnels de sécurité font du mal. Après tout, ce n'est pas la responsabilité de l'utilisateur de déterminer comment gérer leur sécurité. C'est le rôle des professionnels de sécurité. Nous devons déterminer des moyens acceptables pour nos utilisateurs de gérer tous leurs comptes en ligne. Mais comme la plupart des recommandations répètent les mêmes conseils démodés, les utilisateurs ont recours aux pense-bêtes et aux tableurs pour assurer le suivi de leurs nombreux mots de passe.
Comme mécanisme d'authentification, les mots de passe ont beaucoup à offrir. Cependant, le problème principal avec les mots de passe est que les êtres humains ont du mal à s'en souvenir. Au lieu d'essayer de résoudre un problème de nature humaine, le monde de l'informatique continue à inventer toutes sortes de nouveaux mécanismes pour remplacer les mots de passe, ou pire encore, pour augmenter leur nombre. Les utilisateurs sont encore plus déroutés.
Imaginez ma surprise la dernière fois que j'ai accédé à un certain site de services financiers et que l'écran d'ouverture de session contenait seulement une zone de texte de nom d'utilisateur (voir la figure 3).
Figure 3 Où dois-je taper mon mot de passe ?
Tout d'abord j'ai pensé que j'avais atterri sur un site Web malveillant. Ensuite, j'ai validé rapidement le site, cette étape était facile puisque le site présentait un certificat et je me suis rendu compte qu'en fait j'étais au bon endroit. Le problème est que les gens sont habitués à voir deux champs de texte, le nom d'utilisateur et le mot de passe, présentés ensemble lors de la connexion à un site. Depuis des années ils rencontrent le même flux de travail courant. Ainsi lorsque vous êtes brusquement confronté à un site qui demande uniquement votre nom d'utilisateur, vous êtes stupéfait. Il s’avère que dans ce cas le fournisseur avait implémenté une technologie qui utilise des images permettant d'identifier le site pour les utilisateurs afin d'empêcher les attaques de phishing. Lorsque vous remplissez votre nom d'utilisateur, le site fait apparaître un écran avec une image identifiable, comme illustré à la figure 4.
Figure 4 Certains sites utilisent maintenant des images permettant d'authentifier le site pour un utilisateur (cliquer sur l'image pour l'agrandir)
Théoriquement vous savez quelle image va avec quel site. Si l'image correcte n'est pas affichée, vous pouvez identifier le site comme étant faux. Cela, en soi, est un concept solide. En supposant que l'utilisateur sait quelle image va avec quel site, cette stratégie a un sens.
Bien sûr, le lecteur astucieux remarque la barre d'adresses verte à la figure 4. Cela signifie que ce site utilise SSL et les certificats à validation étendue (EV), raison pour laquelle la barre d'adresses est verte. Cela signifie également que l'idée d'utiliser l'image pour identifier le site ne fournit pas de valeur supplémentaire. Au lieu de cela, l'image ne fait qu'ajouter plus de confusion au moins pour certains utilisateurs finaux. Le site s'est déjà identifié à l'utilisateur, il a fourni un certificat qui contient le nom de l'entreprise, l'adresse du site Web et le nom de l'émetteur de confiance. Le fait que la barre d'adresses est verte m'indique que l'entreprise a atteint l'étape supplémentaire de payer trois fois plus pour un certificat EV.
Alors, bien sûr, les images peuvent également être fausses. Si l'utilisateur peut soumettre sa propre image, il existe des moyens par lesquels l'attaquant peut probablement déterminer quelle image est utilisée. Il y a également de fortes chances que l'utilisateur emploie la même image sur chaque site, donc tout ce que l'attaquant aura à faire, c'est de créer un site avec un contenu que l'utilisateur évaluera (je vous laisse trouver vos propres exemples) et de demander à l'utilisateur une image à utiliser pour la vérification du site. Si l'utilisateur emploie la même image pour tous les sites, ce nouveau site aura maintenant accès à l'image employée par l'utilisateur, par exemple, son site bancaire.
Alors que certains sites vous permettent de choisir votre propre image, d'autres utilisent une bibliothèque de photos en stock. Le site de la figure 4, par exemple, possède 318 photos en stock parmi lesquelles choisir. L'astuce précédente ne fonctionne pas pour les sites qui ne permettent pas à l'utilisateur d'envoyer sa propre photo. Cependant, si l'utilisateur ne peut pas choisir sa propre image, la probabilité que l'utilisateur se rappelle quel site va avec quelle image sera peu probable pour les sites qu'il ne visite pas fréquemment. Honnêtement, je ne sais pas quelle image j'utilise sur le site affiché à la figure 4, même si je peux vous assurer que ce n'est pas celui qui est affiché dans la capture d'écran.
Le problème avec cette approche basée sur les images est qu'un attaquant peut afficher à peu près n'importe laquelle des 318 images ou choisir un cliché de Flickr au hasard et beaucoup d'utilisateurs supposeront que l'image est la bonne. Si la majorité des gens pouvait se souvenir de choses comme quelle image va avec quel site, nous n'aurions pas tous les problèmes liés au phishing et à la sécurité que nous avons aujourd'hui.
Alors pourquoi utiliser une image pour authentifier le site pour l'utilisateur lorsque le site s'est déjà authentifié à l'aide du certificat ? Pourquoi ne pas utiliser tout simplement ce certificat et aider les utilisateurs à apprendre à le valider ? Les certificats prouvent déjà l'identité du site à l'utilisateur.
Le processus pour obtenir un certificat est certainement beaucoup plus sécurisé que le processus pour obtenir une image d'authentification d'un site d'utilisateurs. S'il s'agit d'un certificat EV et que vous utilisez Internet Explorer® 7 ou Firefox 3, le navigateur mettra même en surbrillance les informations de certificat pertinentes dans la barre d'adresses. Malheureusement, la mise en surbrillance fonctionne seulement avec les certificats EV qui coûtent très cher.

Les pièges d'authentification de site basée sur les images
La technologie d'authentification d'image a de nombreux problèmes. Tout d'abord, il devient très facile de collecter des noms d'utilisateur d'un site. En effet, le site illustré à la figure 4 présentera la boîte de dialogue affichée à la figure 5 si vous entrez un nom d'utilisateur incorrect. Après avoir tapé un nom d'utilisateur correct pour un utilisateur qui a choisi une image secrète, l'image secrète de cette personne s'affiche. Évidemment, la connaissance de cette image peut être très précieuse pour un attaquant essayant de collecter des informations sur un utilisateur.
Figure 5 Les sites d'authentification d'images permettent la collecte facile de noms d'utilisateurs
Le type d'implémentation illustré ici n'a pratiquement pas de valeur de sécurité. L'attaquant peut simplement dupliquer le flux de travail d'ouverture de session sur un faux site. Le faux site demande un nom d'utilisateur et le transmet au vrai site. Vous pouvez même utiliser AJAX sur le client pour mettre à jour le formulaire en temps réel pour une présentation extra cool. En outre si le site légitime n'a pas atténué les attaques de contrefaçon de requête intersites sur le formulaire d'ouverture de session, le code AJAX peut même envoyer directement la requête au vrai site sauf si le navigateur possède des atténuations pour les requêtes XML-HTTP intersites.
Maintenant, une fois le résultat renvoyé, l'attaquant peut analyser les données, extraire l'image et l'afficher pour l'utilisateur final. En d'autres termes, n'importe quel attaquant pouvant présenter un faux site de connexion à l'utilisateur peut également afficher l'image secrète de l'utilisateur. Le résultat direct est qu'il n'y a absolument pas de valeur ajoutée à l'authentification de site basée sur les images. L'image est affichée avant l'authentification de l'utilisateur sur le site et, par conséquent, elle est disponible pour un attaquant qui possède, ou peut obtenir, le nom d'utilisateur.
En supposant que l'utilisateur n'a jamais appris à chercher un certificat avant d'envoyer des formulaires, et c'est une supposition sûre considérant que l'utilisation de l'authentification de site basée sur les images est elle-même basée sur cette même supposition, il est facile d'obtenir un nom d'utilisateur. Par ailleurs, puisque les schémas d'authentification de site basée sur les images répondent différemment à un nom d'utilisateur valide par rapport à un nom d'utilisateur non valide, la collecte de nom d'utilisateur est facile. L'attaquant peut même le faire hors bande, avant même qu'une attaque soit lancée.
Au final, nous avons des utilisateurs qui croient qu'ils sont plus sécurisés ou qui sont simplement plus déroutés. Nous avons dépensé des quantités importantes des fonds des actionnaires en implémentant l'authentification de site basée sur les images et nous ne l'avons pas rendu plus difficile pour les utilisateurs malveillants afin de convaincre les utilisateurs finaux d'envoyer leurs informations d'identification à de faux sites Web.
C'est tout ce que je voulais dire dans le cadre de cet article sur la Vigilance sécurité. Consultez le mois prochain la deuxième partie de cet article lorsque j'aborderai d'autres exemples de pratiques de sécurité incorrectes et de mauvaises implémentations d'authentification.

Jesper M. Johansson est architecte de logiciels, chargé des problèmes de sécurité logicielle et contribue à l’élaboration de TechNet Magazine. Titulaire d'un doctorat en systèmes d'informations de gestion, il a plus de 20 ans d'expérience dans le domaine de la sécurité et est MVP Microsoft dans le domaine de la sécurité d'entreprise. Son dernier ouvrage s'intitule Windows Server 2008 Security Resource Kit.


Sur le terrain Garantir la justesse d'une élection
Josh Benaloh

En cette année d'élection présidentielle américaine, l'attention du public se tourne vers les technologies de suffrages. Alors que nous avons de nombreuses solutions, la balance penche entre les votes papiers comptés à la main, ce qui est délicat et peut être mal fait, les machines à leviers, qui peuvent être manipulées par des initiés compétents, les cartes perforées avec leurs célèbres ratés, les bulletins de vote numérisés optiquement, qui peuvent être facilement mal lus par des scanneurs mal étalonnés, les systèmes à écran tactile, qui peuvent être compromis par des logiciels malveillants et divers systèmes hybrides qui créent souvent plus de problèmes qu'ils n'en résolvent.
En effet, il s'agit ici simplement d'un petit échantillon des vulnérabilités de ces systèmes. De plus, les techniques utilisées couramment à travers le monde dépendent d'administrateurs d'élection honnêtes et compétents pour maintenir l'intégrité des élections.
Mais il existe une meilleure méthode, dans laquelle l'intégrité de l'élection ne dépend pas d'administrateurs ou d'un équipement. Les élections peuvent s'exécuter de sorte que leur exactitude peut être vérifiée de bout en bout par des officiels, des électeurs individuels et même des observateurs intéressés.
Imaginez que les électeurs éligibles reçoivent des codes qui leur permettent de poster leurs votes à côté de leurs noms sur un site Web lisible publiquement. Les électeurs peuvent consulter le site Web pour vérifier que leurs propres votes ont bien été enregistrés et n'importe qui peut exécuter un audit indépendant pour vérifier que tous les électeurs sont légitimes et que le compte correspond aux votes annoncés.
Mais, attendez, il manque un élément dans cette élection ouverte : la confidentialité ! Oui, et la cryptographie peut être utilisée pour combler cette lacune, en permettant des élections à bulletins secrets entièrement vérifiables. Au lieu de publier les votes tels quels, on chiffre les votes publiés avec des clés publiques dont les clés de chiffrement sont partagées par les personnes chargées de l'élection de sorte qu'une certaine coopération sera nécessaire pour le déchiffrement. Une fois le suffrage terminé, les personnes chargées de l'élection coopèrent pour produire un compte d'élection et une preuve cryptographique que le compte correspond exactement à l'ensemble des bulletins postés.
Les électeurs individuels peuvent vérifier que leur bulletin de vote chiffré correspond à leurs intentions et n'importe qui peut examiner la preuve cryptographique pour s'assurer que les bulletins de vote chiffrés ont été comptés correctement. De cette façon, le compte d'élection peut être vérifié de bout en bout.
Est-ce vraiment aussi simple ? Non. Il s'agit là d'une présentation fidèle, mais il y a de nombreux détails qu'il faut gérer soigneusement pour que cela fonctionne. Par exemple, nous devons toujours utiliser les méthodes traditionnelles pour garantir que les appareils de vote maintiennent une confidentialité des électeurs suffisante. Et comment les électeurs sont-ils censés traduire leurs intentions dans des bulletins de vote chiffrés ? Les électeurs doivent être certains que les valeurs chiffrées publiées à côté de leurs noms correspondent vraiment à leurs intentions sans avoir à montrer la correspondance à des tiers (à moins qu'ils ne soient susceptibles d'être soumis à la contrainte ou à l'achat des votes). Et nous devons faire tout ceci sans qu'il soit nécessaire que les électeurs fassent quoi que ce soit de plus complexe que ce qu'ils font aujourd'hui dans les systèmes de suffrage traditionnels.
Les processus d'élection vérifiables de bout en bout sont étudiés dans la littérature cryptographique depuis plus d'un quart de siècle et il y a maintenant des façons solides et pratiques de fournir la preuve cryptographique de l'exactitude d'un compte. Récemment, la communauté de recherche a porté son attention sur la phase frontale qui est présentée à l'électeur et de nombreux progrès sont à noter dans ce domaine également.
La demande commerciale pour une technologie d'élection est grande, mais pas énorme. Les vastes conglomérats aux intérêts répandus peuvent paraître douteux sur ce marché puisqu'une part de leurs intérêts peut profiter de certains résultats d'élections. Ainsi, ce marché pourrait être mieux rempli par de plus petits joueurs dont l'ensemble des activités dépend de la réussite des élections. Pour obtenir plus d'informations et des liens vers des méthodes d'élection vérifiables de bout en bout, visitez research.microsoft.com/crypto/voting.

Josh Benaloh est cryptographe senior chez Microsoft Research. Il a été membre du conseil d'administration de l'International Association for Cryptologic Research pendant huit ans et ses nombreuses publications incluent sa thèse de doctorat en 1987, « Verifiable Secret-Ballot Elections ».

© 2008 Microsoft Corporation and CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.


La vie secrète de Windows L'histoire prend de la place
Raymond Chen

Vous vous souvenez de Microsoft Bob ? Il avait été conçu pour être une interface utilisateur conviviale sur Windows® 3.1, mais il s'est soldé par un véritable échec (ce qui lui valut d'être nommé l'un des pires produits technologiques de tous les temps par PC World). Dans les années qui ont suivi la disparition de Bob, le produit a été relégué à l'état de plaisanterie.
Il s'avère que le nom de code interne de Microsoft® Bob était « Utopia », un nom indéniablement ambitieux, mais qui avait du style. Lorsque nous avons appris que les gens du marketing avaient décidé d'appeler le produit Bob, nous n'en revenions pas.
Mais l'héritage de Bob est plus important que vous le croyez. Bob était en fait plus utile mort que vivant.
Lorsque vous avez l'intention de distribuer votre logiciel sur un CD, vous devez vous assurer que votre produit n'est pas trop gros pour un seul CD. Heureusement, même après avoir pris en compte l'espace disque requis pour les traductions, les outils de support et les autres éléments qui doivent figurer sur le CD Windows XP, il restait à peu près 30 mégaoctets de capacité de stockage. Les gens qui se soucient de ce type de question se sont dit que, comme ils avaient déjà payé pour toute cette capacité de stockage sur le CD, ils faisaient tout aussi bien de l'utiliser.
Le nom de code interne de Microsoft® Bob était « Utopia » —un nom indéniablement ambitieux, mais qui avait du style. (Cliquez sur l'image pour l'agrandir)
Le résultat fut une tentative plutôt faible de freiner les gens qui font des copies illégales de Windows. Quelqu'un décida de combler cette capacité supplémentaire sur le CD avec des données factices et de demander au programme d'installation de Windows de vérifier que les données factices étaient toujours là. Ainsi, selon leur logique, les gens téléchargeant une copie de l'image du CD seraient forcés de télécharger une trentaine de mégaoctets supplémentaires de données. Souvenez-vous, c'était à l'époque où le haut débit n'était pas encore répandu et les utilisateurs utilisaient quasiment tous des connexions à distance. Le transfert de trente mégaoctets de données supplémentaires sur un modem de 56 Ko ralentissait les utilisateurs.
La personne chargée d'implémenter cette vérification avait besoin d'une source pour les données factices. Cette personne aurait pu simplement appeler la fonction CryptGenRandom pour produire 30 mégaoctets d'octets cryptographiquement aléatoires, mais cela n'aurait pas été amusant. Elle choisit d'utiliser une copie de Microsoft Bob trouvée dans les archives. Elle prit toutes les images de disquettes et les plaça dans un grand fichier. Le contenu des images de disquettes Microsoft Bob n'étant pas particulièrement aléatoire, elle décida de brouiller les données en les chiffrant. Au moment d'entrer la clé de chiffrement, elle passa sa main au hasard sur le clavier et c'est ainsi que naquit une copie chiffrée de Microsoft Bob. C'est ce qui combla l'espace inutilisé sur le CD Windows XP.
En fin de compte, Windows XP devint l'outil de déploiement de Microsoft Bob le plus efficace. Et si vous trouvez votre copie de Windows XP et que vous parvenez à passer votre main sur le clavier de la même façon, vous obtiendrez une copie de Microsoft Bob.

Le site Web de Raymond Chen, The Old New Thing, et son livre du même titre traitent de l’historique de Windows et de la programmation Win32. Il se demande si la fusion nucléaire deviendra réalité avant sa mort.

© 2008 Microsoft Corporation and CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.