 TechNet Magazine September 2007

TechNet Magazine September 2007

Windows Vista: Déploiement de Windows Vista avec BDD 2007

Votre entreprise s'apprête à migrer de Windows 2000 ou Windows XP vers Windows Vista, et vous êtes responsable de ce projet. Ne vous inquiétez pas. Voici un guide pas-à-pas qui vous expliquera comment utiliser Solution Accelerator for Business Desktop Deployment 2007 pour simplifier votre déploiement de Windows Vista.

Michael Niehaus Windows Vista: Guide des technologies de sauvegarde de Windows Vista

Les utilisateurs ignorent trop souvent les opérations de sauvegarde jusqu'à ce qu'il soit trop tard. Ils n'ont pourtant aucune excuse, surtout maintenant que le nouveau Centre de sauvegarde et de restauration de Windows Vista offre plusieurs fonctionnalités qui facilitent la protection des données contre la plupart des pertes de données. Découvrez comment vous pouvez planifier une stratégie de récupération complète avec Windows Vista.

Christine Fok Windows Server: 11 outils essentiels pour la gestion d'Active Directory

Dans une organisation de grande taille, même les tâches Active Directory les plus courantes, telles que l'ajout et la modification d'objets, peuvent être longues et laborieuses. Ces 11 outils peuvent faciliter considérablement la gestion d'Active Directory.

Laura E. Hunter Windows Server: Réanimation des objets tombstone d'Active Directory

Certains outils et astuces essentiels doivent impérativement être inclus dans tout projet de récupération après incident Active Directory. La réanimation des objets tombstone, qui offre le seul moyen de récupérer des objets supprimés sans déconnecter un contrôleur de domaine, compte parmi ces techniques. Ce guide vous aidera à rechercher et récupérer les objets tombstone dans Active Directory.

Gil Kirkpatrick Communications: Connexion des utilisateurs avec Office Communications Server 2007

La communication unifiée est désormais une réalité. Découvrez Office Communications Server 2007 et la façon dont les fonctionnalités intégrées de messagerie, voix, vidéo et conférence peuvent améliorer votre productivité et la collaboration à distance au sein de votre organisation.

Alan Maddison Le mot du rédacteur en chef: Cursus Informaticus

Joshua Trupin Lettres: Réponses à vos questions

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

Greg Steen Forum aux questions sur SQL: Goulots d'étranglement du processeur, restauration et déplacement de bases de données, et bien plus encore.

Edited by Nancy Michell Coup de projecteur sur les utilitaires: PageDefrag

L'outil de défragmentation Windows typique peut optimiser la plupart des fichiers sur votre disque dur. Toutefois, certains éléments, tels que le fichier de pagination Windows et les ruches de Registre, sont hors d'atteinte de la plupart des outils de défragmentation. Cet utilitaire, créé par Mark Russinovich pour Sysinternals, permet de défragmenter les fichiers qui ne sont pas pris en charge par les autres outils.

Lance Whitney Le petit câbleur: Modèles d'hôte fort et faible

Un hôte multirésident offre une connectivité améliorée en se connectant simultanément à plusieurs réseaux. Cependant, les services s'exécutant sur des hôtes multirésidents présentent une vulnérabilité plus importante aux attaques. Pour vous aider à empêcher les attaques, voici une analyse des divers modèles d'hôte pour les hôtes multirésidents et de leur prise en charge dans Windows.

Joseph Davies Windows PowerShell: Sécurisation de l'environnement de ligne de commande

Lors de la conception de Windows PowerShell, Microsoft a donné à la sécurité un rôle primordial, et c'est flagrant. Examinez les fonctionnalités et les paramètres de sécurité clés, tels que la gestion des informations d'identification et les stratégies d'exécution, qui garantissent que Windows PowerShell ne sera pas la proie des mêmes problèmes que ceux qu'entraînait VBScript.

Don Jones Hé, vous le scripteur !: Cette relation peut-elle être sauvée ?

Les bases de données relationnelles sont conçues pour gérer les relations un-à-plusieurs. Cela peut rendre un peu difficile l'écriture de scripts qui interrogent ces bases de données. Mais ne vous inquiétez pas : les scripteurs sont là pour vous montrer tout que vous avez besoin de savoir.

The Microsoft Scripting Guys Questions et réponses Exchange: Installation, journalisation des messages, options de stockage, et bien plus encore

Apprenez à utiliser la journalisation des messages pour contrôler la messagerie dans votre entreprise, découvrez si les utilisateurs Office 2003 peuvent utiliser la messagerie unifiée, examinez les options de stockage pour votre implémentation Exchange 2007, obtenez des réponses sur la connexion à Exchange 2007 avec des versions antérieures d'Outlook, et bien plus.

KC Lemson and Nino Billic Vigilance sécurité: Impact à long terme du contrôle de compte d'utilisateur

Malgré tous les articles relatifs au contrôle de compte d'utilisateur, de nombreuses questions et d'idées reçues subsistent à l'encontre du contrôle de compte d'utilisateur. Voici un examen franc de ce qu'est et n'est pas le contrôle de compte d'utilisateur et de la manière dont il devrait affecter la façon dont vous gérez les systèmes.

Jesper M. Johansson Histoires de Bureau: Récupération d'ordinateur avec Windows PE

Windows Vista propose de précieux outils qui facilitent la récupération de système. Mais pour les grandes entreprises diversifiées, les solutions prêtes à l’emploi ne fonctionnent généralement pas. Si vous travaillez dans une entreprise de grande taille qui doit créer des solutions de récupération automatique personnalisées, ne manquez pas cette discussion sur la création de votre propre solution de récupération avec Windows PE.

Wes Miller Sur le terrain: Collation gratuite et conseils de formation

Une bonne éducation des utilisateurs est indispensable pour limiter les problèmes au minimum. Il est donc essentiel d'offrir des séances de formation, mais également de se promener dans les couloirs de l'entreprise pour répondre aux questions que les utilisateurs ne poseront pas si vous ne leur en donnez pas l'occasion.

Michael Dragone La vie secrète de Windows: L'art de l'équilibrage des DLL connues

La fonctionnalité des DLL connues a été incluse dans Windows pour améliorer les performances. Découvrez comment elle fonctionne et apprenez comment elle a évolué dans le temps.

Raymond Chen


 Windows&#160;Vista: D&#233;ploiement de Windows&#160;Vista avec BDD&#160;2007
Windows Vista Michael Niehaus

Déploiement de Windows Vista avec BDD 2007
Vue d'ensemble:
  • Solution Accelerator for BDD 2007
  • Préparation de l’image
  • Packages de pilotes et d’applications

Vous avez repoussé l’échéance, mais il est maintenant temps de franchir le pas. Votre entreprise possède des centaines, voire des milliers d’ordinateurs qui doivent être migrés de Windows 2000 ou Windows XP vers Windows Vista. Et c’est à votre équipe que cette tâche a été confiée.
Par où commencer ?
Si cela fait des années que vous installez des systèmes d’exploitation Windows®, vous aurez probablement remarqué que relativement peu de choses ont changé entre Windows NT® 3.5 et Windows XP. Le processus d’installation et de configuration est assez cohérent, les outils sont restés les mêmes et le processus n’a globalement pas été modifié. Mais avec Windows Vista®, l’ensemble du processus a été révisé et de nombreux nouveaux outils ont fait leur apparition. Pour obtenir une excellente vue d'ensemble des modifications apportées et de leur impact, consultez l’article du numéro de novembre 2006 de TechNet Magazine intitulé « 10 points à connaître sur le déploiement de Windows Vista », également disponible en ligne à l’adresse suivante : technetmagazine.com/issues/2006/11/Deployment.

Comment apprendre à utiliser les nouveaux processus et outils ?
Deux solutions s’offrent à vous :
  1. Apprendre à vous servir de chaque nouvel outil. Étudier toute la documentation disponible. Identifier comment insérer chacun d’entre eux dans vos processus existants. Procéder aux ajustements nécessaires. Puis valider les résultats.
  2. Tirer parti d’un outil qui a déjà fait tout cela pour vous.
Bien sûr, vous pourriez choisir la première solution, mais vous seriez alors en train de lire un livre et non un article de magazine. Je vous suggère de choisir la deuxième solution : L’outil à utiliser est Solution Accelerator for Business Desktop Deployment (BDD) 2007, disponible au téléchargement depuis le Centre de déploiement des postes de travail Microsoft® à l’adresse suivante : microsoft.com/desktopdeployment.
Solution Accelerator for BDD 2007 est un ensemble d’outils, de conseils et de procédures détaillées destinés à simplifier le processus de déploiement du système d’exploitation Windows qui rassemble tous les nouveaux processus de déploiement et outils introduits avec Windows Vista.
Pour commencer à utiliser BDD 2007, identifiez un ordinateur Windows XP ou Windows Server® 2003 sur lequel vous souhaitez installer BDD 2007. Avant de l’installer, vous devez d’abord installer Microsoft .NET Framework 2.0 et Microsoft Management Console (MMC) 3.0. Vous pouvez ensuite installer BDD 2007. Une fois l'installation terminée, consultez les Notes de publication disponibles dans le dossier BDD 2007 du menu Démarrer. Lancez ensuite le composant logiciel enfichable MMC à l’aide du raccourci de Deployment Workbench (voir la figure 1).
Figure 1 Démarrage de BDD 2007 Deployment Workbench
Figure 1 Démarrage de BDD 2007 Deployment Workbench
À ce stade, il est conseillé de consulter les informations disponibles dans le Information Center (Centre d’information), en particulier la liste de vérification et la documentation de mise en route (Getting Started). Veillez à bien télécharger les dernières informations et la liste de composants en cliquant avec le bouton droit sur le nœud Components (Composants) et en choisissant Check for updates (Vérifier les mises à jour).
Il reste un dernier élément préalablement requis : le Kit d’installation automatisée (Windows AIK) BDD 2007 a besoin des outils inclus dans Windows AIK pour un grand nombre des fonctions qu’il exécute. Vous pouvez obtenir Windows AIK de deux façons différentes : en le téléchargeant à partir du centre de téléchargement Microsoft (go.microsoft.com/fwlink/?LinkId=85377) ou en utilisant le nœud « Components » dans Deployment Workbench qui le fera pour vous. Quelle que soit la méthode utilisée, il s’agit d’un téléchargement assez volumineux, donc attendez-vous à ce que cela prenne du temps.
Une fois Windows AIK installé, vous pouvez passer à la phase suivante : la collecte de tous les fichiers dont vous avez besoin pour effectuer le déploiement de Windows Vista.

Quels sont les fichiers nécessaires ?
À ce stade, vous devrez rassembler les fichiers d’installation de Windows Vista, les applications que vous souhaitez installer, tous les pilotes nécessaires à votre matériel et toutes les mises à jour de Windows Vista ainsi que tous les modules linguistiques que vous souhaitez. L’ensemble sera copié dans la structure de répertoires de partages de distribution créée lors de l’installation de BDD 2007.
Création de votre propre image personnalisée
Les étapes abordées dans cet article décrivent le déploiement de l’image Windows Vista standard directement à partir du DVD du produit Microsoft. Mais il est peut-être préférable de déployer une image personnalisée contenant des applications supplémentaires nécessaires (telles que Microsoft Office System 2007) sur tous vos ordinateurs. Il s'agit du débat classique : est-il préférable de se borner à une image « fine » minimale et installer tout le reste lors du déploiement, ou vaut-il mieux créer une image « épaisse » plus volumineuse dans laquelle tout est préinstallé ? La réponse dépend souvent de facteurs tels que le temps disponible pour le déploiement, l’effort administratif nécessaire pour créer l’image et assurer sa maintenance, la capacité du réseau et ainsi de suite. Dans la plupart des situations, plus c'est fin, mieux c'est, mais c’est à vous de choisir.
Indépendamment de ce que vous décidez d’inclure dans votre image, assurez-vous que le processus de création de l’image personnalisée est complètement automatisé. Grâce à l’automatisation, il est aussi simple de mettre à jour l’image que d'ajouter une autre étape au processus, puis de le réexécuter entièrement, pour capturer une nouvelle image à la fin.
Comment faire cela avec BDD 2007 ? C’est vraiment simple :
  1. Créez une version pour créer votre image personnalisée.
  2. Modifiez la séquence de tâches pour cette version afin d’inclure toutes vos étapes personnalisées.
  3. Exécutez un déploiement « sans système d’exploitation » à partir du point de déploiement de laboratoire (en démarrant à partir de l'ISO de Windows PE), en sélectionnant cette version.
  4. Spécifiez que vous souhaitez rejoindre un groupe de travail.
Lors de l'exécution de ces étapes, l’Assistant de déploiement affiche un autre volet.
Si vous choisissez de capturer une image de l’ordinateur de référence, BDD 2007 exécute automatiquement Sysprep pour préparer le système d’exploitation à la capture, puis redémarre Windows PE et exécute ImageX.exe pour capturer une nouvelle image WIM. Vous pouvez ensuite importer cette image dans Deployment Workbench et l’utiliser pour votre prochain déploiement.
Capture d’une image de référence avec BDD 2007
Capture d’une image de référence avec BDD 2007

Il convient d’abord de copier les fichiers d’installation du système d’exploitation. Insérez votre DVD Windows Vista (si possible le support de licence en volume, puisque cela ne nécessite pas de clé de produit séparée pour chaque installation), ensuite lancez l’Assistant New OS (Nouveau système d’exploitation) en cliquant avec le bouton droit sur le nœud Operating Systems (Systèmes d’exploitation) dans Deployment Workbench et en choisissant la commande New (Nouveau). Sélectionnez Full Set of Source files (Jeu de fichiers sources complet) et spécifiez le chemin de votre lecteur DVD (ou le chemin approprié si vous avez déjà copié ces fichiers à un autre emplacement). Complétez l’Assistant en acceptant les dernières valeurs par défaut. Maintenant vous devriez voir une ou plusieurs images du système d’exploitation (en fonction du support que vous avez utilisé) dans la liste qui s’affiche lorsque vous cliquez sur le nœud Operating Systems (Systèmes d’exploitation).
Vient ensuite le tour des applications. Vous n'êtes pas obligé d'ajouter des applications à ce stade, mais si vous le faites, vous pourrez les sélectionner dans une liste lors du déploiement de Windows Vista. Dans l’idéal, il est souhaitable de spécifier une ligne de commande pour pouvoir installer l’application sans l’intervention de l'utilisateur, pour éviter que quiconque perde du temps à attendre que cette installation d’application commence. Pour simplement voir à quoi cela ressemble, essayez d’ajouter une seule application maintenant en choisissant la commande New (Nouveau) sur le nœud Applications dans Deployment Workbench, puis complétez l’Assistant New Application (Nouvelle application) (voir la figure 2).
Figure 2 Ajout d’une application à Deployment Workbench
Figure 2 Ajout d’une application à Deployment Workbench
Viennent ensuite les packages de systèmes d’exploitation. Il existe trois types de packages susceptibles de vous intéresser : les modules linguistiques, les mises à jour de sécurité et les composants Windows Vista.
Les modules linguistiques permettent à Windows Vista de fonctionner dans de nombreuses langues différentes. Pour obtenir des informations sur les langues prises en charge, consultez la page microsoft.com/globaldev/vista/Vista_Language_Support.mspx. Les modules linguistiques, qui sont empaquetés en tant que fichiers CAB, peuvent être téléchargés à partir de la page licensing.microsoft.com pour tous les clients Software Assurance et sont disponibles à partir de Windows Update si vous exécutez Windows Vista Édition Intégrale. (Notez que seuls Windows Vista Entreprise et Windows Vista Édition Intégrale prennent en charge l'installation de plusieurs modules linguistiques sur un ordinateur.)
Les mises à jour de sécurité Windows Vista sont généralement publiées tous les mois et sont disponibles au téléchargement à l’adresse microsoft.com/technet/security/bulletinsandadvisories en tant que fichiers MSU individuels.
Vous pouvez également inclure de nouveaux composants Windows Vista, tels que Windows PowerShell™. Ces composants sont disponibles au téléchargement depuis le centre de téléchargement Microsoft (microsoft.com/downloads) et sont également empaquetés en tant que fichiers MSU.
Dans les coulisses, il s'agit en fait de composants (également appelés packages), ce qui explique le nœud OS Packages (Packages de système d'exploitation). Ces composants peuvent tous être injectés dans Windows Vista soit en ligne (lorsque le système d’exploitation est en cours d'exécution) ou hors connexion (lorsqu’il ne s’exécute pas). Dans le cas de BDD 2007, vous les injectez toujours hors ligne, après que l’image Windows Vista a été développée et placée sur le disque, mais avant qu’il ne démarre pour la première fois.
Une difficulté supplémentaire vient s’ajouter : les fichiers MSU sont conçus pour être installés en ligne, lorsque Windows Vista est en cours d'exécution, à l’aide du programme d’installation de mise à jour WUSA.EXE. Dans cet exemple cependant, vous installerez ces mises à jour hors connexion. Il vous faut pour cela les fichiers CAB contenant les composants réels. Hé bien, ces fichiers MSU sont en fait des fichiers CAB, qui comprennent le vrai fichier CAB de composant. Vous pouvez extraire ces fichiers CAB à partir des fichiers MSU vous-même, en utilisant une commande telle que :
EXTRACT.EXE file.msu -F:*.CAB C:\
Vous obtenez ensuite le fichier CAB que vous devez importer. Notez que Microsoft a publié un correctif pour BDD 2007 qui effectue cette extraction automatiquement. Une fois ce correctif installé, cette étape manuelle n’est plus nécessaire. Vous pouvez diriger BDD 2007 vers les fichiers MSU et il s’occupera du reste. Pour plus d'informations sur ce correctif, consultez la page support.microsoft.com/kb/937191.
Pour ajouter ces composants à Deployment Workbench, cliquez avec le bouton droit sur le nœud OS Packages (Packages de système d'exploitation) et choisissez New (Nouveau) pour démarrer l’Assistant New Package (Nouveau package). Spécifiez le chemin d’un dossier contenant les packages à ajouter.
Enfin, vous aurez peut-être besoin de pilotes pour le matériel informatique sur lequel vous souhaitez exécuter Windows Vista. Recherchez les pilotes dont vous avez besoin sur les sites Web des fournisseurs ou Microsoft Update, téléchargez-les, puis extrayez-les. Cette dernière étape peut être assez difficile, mais au final, vous devez obtenir les fichiers de pilote bruts : les fichiers .inf, .sys, .dll et apparentés nécessaires au pilote lui-même.
Lorsque vous avez extrait les fichiers de pilote, exécutez l’Assistant New Driver (Nouveau pilote) en cliquant avec le bouton droit sur le nœud Drivers (Pilotes) et en choisissant New Deployment (Nouveau Déploiement). Deployment Workbench analyse la structure de répertoires pour rechercher tous les fichiers .inf ; il n'est donc pas nécessaire de nettoyer les structures de répertoires extraites.
Au fur et à mesure que les pilotes sont importés, Deployment Workbench crée un catalogue qui contient toutes les informations sur les pilote, y compris les plates-formes prises en charge, le fabricant et la version et une liste d’ID Plug and Play pris en charge par le pilote.

Que faire avec ces pilotes ? Dois-je les injecter dans l’image du système d’exploitation que j’ai importée auparavant ?
BDD 2007 n'apporte pas de modification à l’image du système d’exploitation importée. Au lieu de cela, les pilotes sont injectés pendant le processus de déploiement. Le processus de base se déroule de la manière suivante :
  1. Vous exécutez un utilitaire (Microsoft.BDD.PnpEnum.exe) sur l’ordinateur en cours de déploiement, en identifiant tous les ID Plug and Play présents sur l’ordinateur.
  2. Recherchez chacun de ces ID Plug and Play dans le catalogue de pilotes. Pour chaque correspondance trouvée, copiez les fichiers de pilote nécessaires sur l’ordinateur.
  3. Indiquez à l’installation de Windows Vista d’injecter les pilotes dans le système d’exploitation après que l’image a été appliquée au disque, mais avant le premier démarrage de Windows Vista. Cet ordre est essentiel dans la mesure où certains de ces pilotes, tels que les pilotes de stockage de masse, peuvent être nécessaires pour que le système d’exploitation démarre.

Suis-je bientôt prêt à lancer le déploiement ?
Il reste encore quelques étapes avant de pouvoir lancer le déploiement. D’abord, vous devez définir une version qui associe un système d’exploitation présent dans le partage de distribution avec les paramètres qui doivent être utilisés et la séquence de tâches qui doit être exécutée pour effectuer l’installation de système d’exploitation et la configuration.
Pour créer cette version, cliquez avec le bouton droit sur le nœud Builds (Versions) et choisissez New (Nouveau) pour lancer l'Assistant New Build (Nouvelle version). Spécifiez un ID de version (une simple valeur de votre choix sans espaces ni caractères spéciaux), ainsi qu'un nom et une description de la version, qui seront tous deux affichés lors de l’exécution du déploiement de système d’exploitation (voir la figure 3). Sélectionnez ensuite le système d’exploitation à installer, et spécifiez certains paramètres de base à utiliser.
Figure 3 Spécification des informations de version de base
Figure 3 Spécification des informations de version de base

Alors, sommes-nous maintenant prêts à lancer le déploiement ?
Il reste encore une dernière chose à créer : un point de déploiement. Il s’agit tout simplement d’un partage réseau contenant tous les fichiers que vous avez rassemblés jusqu’à présent, toutes les informations de version et les images de Windows PE qui sont utilisées pour le processus de déploiement. La création d’un point de déploiement se déroule de la même manière que les étapes précédentes : cliquez avec le bouton droit sur le nœud Deployment Points (Points de déploiement) et choisissez New (Nouveau). Sélectionnez Lab (Laboratoire) ou le déploiement sur serveur unique (voir la figure 4) et acceptez le reste des valeurs par défaut.
Figure 4 Choix du type de point de déploiement
Figure 4 Choix du type de point de déploiement
Après avoir complété l’Assistant, cliquez avec le bouton droit sur le nouveau point de déploiement dans le volet de liste et choisissez Update (Mise à jour) pour générer les images du partage et de Windows PE.
Vous souvenez-vous des pilotes que vous avez ajoutés précédemment ? Ces mêmes pilotes, du moins ceux du réseau et de stockage de masse, sont également nécessaires à Windows PE. Ce processus de mise à jour ajoutera donc automatiquement les pilotes à l’image de Windows PE.

Sommes-nous enfin prêts à lancer le déploiement ?
Oui ! D’abord, essayons d'effectuer un déploiement sur un nouvel ordinateur. Prenez le fichier LiteTouchPE_x86.iso du dossier \distribution\boot et gravez-le sur un CD enregistrable avec votre logiciel de gravure de CD préféré, ou utilisez l’outil cdburn.exe que vous pouvez télécharger depuis Microsoft (go.microsoft.com/fwlink/?LinkID=77796). Démarrez un ordinateur à partir du CD, lequel démarre Windows PE et affiche l’Assistant de bienvenue initial illustré à la figure 5.
Figure 5 Prêt à commencer un déploiement
Figure 5 Prêt à commencer un déploiement
Choisissez Run the Deployment Wizard (Exécuter l’Assistant de déploiement), puis cliquez sur Next (Suivant) pour commencer. À partir de là, vous pouvez choisir la version que vous avez définie, toutes les applications que vous avez ajoutées et tous les modules linguistiques qui ont été importés. Vous pouvez également choisir de rejoindre un domaine, spécifier le nom de l’ordinateur et configurer divers autres paramètres. Vous pouvez même spécifier que vous voulez capturer automatiquement une nouvelle image personnalisée (avec Sysprep, Windows PE et ImageX pour créer un nouveau fichier d’image).
Le déploiement peut prendre assez longtemps (selon la vitesse et le type d’ordinateur) mais ne nécessite pas l’intervention de l'utilisateur. Lorsque l’Assistant de déploiement a terminé, un écran de résumé s’affiche pour vous transmettre les éventuels avertissements ou erreurs consignés pendant le processus. Ceci vous permet de vérifier rapidement si le déploiement a réussi (un écran de résumé jaune ou rouge signifie qu’il faut accorder une attention particulière, tandis qu’un écran blanc indique que tout va bien).
Maintenant essayez sur un ordinateur exécutant déjà Windows XP. À partir d’une invite de commande, mappez un lecteur au partage Distribution$ sur votre serveur BDD 2007, puis exécutez LiteTouch.vbs pour commencer le déploiement :
NET USE M: \\MyServer\Distribution$
cscript.exe M:\Scripts\LiteTouch.vbs
Cette opération démarre le même Assistant de déploiement que précédemment, à la différence près que vous devez faire quelques choix supplémentaires (voir la figure 6).
Figure 6 Choix pour un ordinateur qui exécute Windows XP
Figure 6 Choix pour un ordinateur qui exécute Windows XP
Si vous avez choisi Refresh this computer (Actualiser cet ordinateur), le système d’exploitation existant est supprimé (après capture éventuelle des données et des paramètres utilisateur à l’aide de l'outil de migration utilisateur, qui doit être téléchargé à l’aide du nœud Components [Composants] comme précédemment pour Windows AIK), et une nouvelle installation de Windows Vista est exécutée. Vous pouvez également choisir l'option Upgrade this computer (Mettre cet ordinateur à niveau), qui laisse l’installation Windows Vista s’occuper de la mise à niveau du système d’exploitation existant, en conservant les applications, données et paramètres existants de l’ordinateur. L’option que vous choisissez dépend d’une série de facteurs, même si la plupart des gens choisiront d’exécuter une actualisation pour démarrer avec un état propre et connu.

Est-ce tout ce qu’il faut savoir ?
Et qu’en est-il de Windows XP ?
Que se passe t-il si vous êtes encore en train de déployer Windows XP ? Ne vous inquiétez pas, vous pouvez également utiliser BDD 2007 pour faciliter ce processus. Vous pouvez suivre les mêmes étapes ; utilisez simplement les fichiers d’installation de Windows XP pour créer la version initiale, capturez une image Windows Imaging (WIM) de Windows XP (le déploiement d’une image Windows XP est beaucoup plus rapide que l’exécution d’une installation indépendante) puis utilisez un fichier WIM pour vos déploiements suivants.
N’oubliez pas que par rapport aux déploiements de Windows Vista, le déploiement de Windows XP entraîne quelques complications supplémentaires :
les pilotes de stockage de masse Windows XP nécessitent une configuration supplémentaire, telle que les dossiers TEXTMODE, les paramètres unattend.txt et sysprep.inf. Bien sûr, comme les pilotes de stockage de masse ne peuvent pas être injectés dans les images Windows XP existantes, vous devez capturer une nouvelle image à chaque fois que vous ajoutez un pilote de stockage de masse supplémentaire. Par ailleurs, les images Windows XP ne sont pas indépendantes de la couche HAL, donc il se peut que vous ayez deux ou trois images distinctes. Enfin, les modules linguistiques et les mises à jour de sécurité ne peuvent pas être injectés hors connexion dans Windows XP. Ils doivent par conséquent être installés une fois que Windows XP est opérationnel.
Si vous utilisez BDD 2007 pour votre déploiement Windows XP, vous serez fin prêt pour Windows Vista une fois le moment venu.

Peut-être pas, parce que ceci n’est qu’un aperçu. Mais le fait de voir comment fonctionne le processus de bout en bout vous permet de comprendre comment tous les nouveaux outils fonctionnent ensemble, sans devoir apprendre à vous servir de chaque outil. Vous pouvez maintenant examiner les scripts et les journaux BDD 2007 pour voir quelles opérations ont été exécutées. Vous pouvez créer vos propres images personnalisées et les ajouter à BDD 2007 pour le déploiement au lieu de déployer l’image Windows Vista standard. Vous pouvez créer le support DVD ou les lecteurs Flash USB en y chargeant votre image. Vous pouvez intégrer SMS 2003 et son Pack de déploiement de système d’exploitation dans le processus.

Comment en savoir plus ?
Consultez tous les documents que je n’ai pas abordés (il y a plus d’un millier de pages disponibles, réparties entre les différentes équipes généralement impliquées dans un projet de déploiement). Consultez également le site microsoft.com/desktopdeployment mentionné précédemment. Participez au groupe de discussion microsoft.public.deployment.desktop, où des professionnels de l’informatique comme vous posent toutes sortes de questions sur le déploiement Windows. Consultez des sites Web tiers tels que deployvista.com et myitforum.com, qui contiennent de nombreuses informations sur BDD 2007 et le déploiement Windows Vista. Découvrez le nouveau livre Windows Vista Resource Kit (microsoft.com/mspress/books/9536.aspx), disponible chez Microsoft Press. Lisez mon blog à l’adresse blogs.technet.com/mniehaus pour discuter de divers aspects de BDD 2007. Discutez avec vos représentants Microsoft locaux des séminaires de formation BDD 2007 et Windows Vista qui ont lieu dans votre région. Enfin, consultez l'encadré « Ressources de déploiement » pour obtenir des informations supplémentaires.
Et si vous disposez de Software Assurance pour le Microsoft Office System, profitez de Desktop Deployment Planning Services (microsoft.com/licensing/sa/benefits/deployment.mspx) pour que Microsoft ou un de ses partenaires travaille quelques jours avec vous à l'élaboration d'un plan de déploiement, voire sur un laboratoire de validation technique sur votre propre site.
Ressources de déploiement
  • Centre de déploiement des postes de travail Microsoft microsoft.com/desktopdeployment
  • 10 points à connaître sur le déploiement de Windows Vista technetmagazine.com/issues/2006/11/Deployment
  • Microsoft .NET Framework 2.0 go.microsoft.com/fwlink/?LinkId=94601
  • Microsoft Management Console (MMC) 3.0 pour Windows Server 2003 x86 go.microsoft.com/fwlink/?LinkId=94602
  • Bulletins et avis de sécurité microsoft.com/technet/security/bulletinsandadvisories

Michael Niehaus est ingénieur en conception de systèmes au sein de l'équipe Solution Accelerators de Microsoft. Il est responsable du développement des meilleures pratiques, des outils et des scripts pour Business Desktop Deployment. Vous pouvez le contacter à l’adresse suivante : michael.niehaus@microsoft.com.
© 2007 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.


 Windows&#160;Vista: Guide des technologies de sauvegarde de Windows&#160;Vista
Windows Vista Christine Fok

Guide des technologies de sauvegarde de Windows Vista
Vue d'ensemble:
  • Sauvegarde et restauration de fichiers
  • Sauvegarde et Restauration de l'ordinateur Windows
  • Restauration du système
  • Cliché instantané

Trop d'utilisateurs ne pensent à sauvegarder leurs données que lorsqu'il est trop tard et qu'elles sont déjà perdues. Cela ne devrait jamais arriver, mais, malheureusement, cela arrive régulièrement. Windows Vista vise à faciliter le processus de sauvegarde grâce à toute une série de fonctionnalités permettant de protéger les données de façon transparente.
La Restauration du système bien connue a été repensée pour être plus robuste et prendre en charge plusieurs scénarios de réparation du système. La Sauvegarde de fichiers a été améliorée pour simplifier et approfondir la protection des données. Deux nouvelles fonctionnalités, Sauvegarde et Restauration de l'ordinateur Windows® et Cliché instantané, ont également été ajoutées.
Toutes ces fonctionnalités s'appuient sur le service de cliché instantané de volumes (VSS) d'une façon ou d'une autre. Ce service crée des copies à un point déterminé dans le temps (appelées « clichés instantanés ») d'un volume et suit les modifications apportées entre les clichés instantanés.
Bien que ces quatre fonctionnalités, toutes disponibles à partir du nouveau Centre de sauvegarde et de restauration (voir la figure 1), vous permettent de sauvegarder et de restaurer des données, elles sont toutes différentes. Mais ensemble, elles fournissent une protection étendue contre les diverses formes de perte de données pendant toute la durée de vie de votre ordinateur.
Figure 1 Centre de sauvegarde et de restauration de Windows Vista
Figure 1 Centre de sauvegarde et de restauration de Windows Vista

Sauvegarde de fichiers
Planification de la Sauvegarde de l'ordinateur
La planification d'une Sauvegarde de l'ordinateur régulière permet de vous assurer que vous disposez d'images récentes de l'ensemble de l'ordinateur. La Sauvegarde de l'ordinateur n'est pas planifiable via le panneau de configuration, mais vous pouvez contourner ce problème en créant une nouvelle tâche dans le Planificateur de tâches. Si vous choisissez de planifier des tâches Sauvegardes de l'ordinateur, je vous recommande une surveillance périodique pour vérifier que la sauvegarde a été effectuée avec succès. Pourquoi est-ce nécessaire ? Parce que cette méthode ne vous avertit pas via un message d'erreur indépendant si les sauvegardes échouent en raison de problèmes d'espace disque ou d'autres problèmes passagers. Cette méthode ne doit pas être utilisée en remplacement de la Sauvegarde de fichiers régulière. Ceci dit, voici comment vous pouvez utiliser le Planificateur de tâches pour planifier la Sauvegarde de l'ordinateur :
  1. Ouvrez le Planificateur de tâches (que vous trouverez dans le dossier Accessoires\Outils système de la section Tous les programmes de votre menu Démarrer).
  2. Cliquez sur Créer une tâche.
  3. Allez à l'onglet Général.
  4. Entrez un nom descriptif, tel que Sauvegarde de l'ordinateur planifiée.
  5. Si vous souhaitez que la tâche s'exécute que vous soyez connecté ou non, cliquez sur Exécuter même si aucun utilisateur n’a ouvert de session.
  6. Cliquez sur Exécuter avec les autorisations maximales.
  7. Allez à la page Déclencheurs.
  8. Cliquez sur Nouveau, puis spécifiez les date et fréquence auxquelles aura lieu la sauvegarde planifiée.
  9. Allez à la page Actions.
  10. Cliquez sur Nouveau.
  11. Sous Program/Script, entrez wbadmin.
  12. Dans Ajouter des arguments (facultatif), entrez la commande suivante, en modifiant la lettre du lecteur cible si nécessaire :
    Start backup –allcritical –backupTarget:D: -quiet
    Si vous souhaitez inclure des volumes supplémentaires qui ne sont pas les volumes système, démarrage ou Environnement de récupération Windows, utilisez l'instruction suivante à la place, en remplaçant les lettres du lecteur appropriées (séparées par des virgules) pour E et F :
    Start backup –allcritical –backupTarget:D: -include:E:,F: -quiet
    Notez que la commande devra toujours inclure l'indicateur allcritical. L'absence de cet indicateur risque d'exclure de la sauvegarde des volumes système importants, ce qui entraînerait un échec à la restauration.
  13. Configurez tout autre paramètre lié aux tâches
  14. Cliquez sur OK.

Supposons que j'achète un nouvel ordinateur portable. Après avoir copié divers fichiers (photos, documents Microsoft® Word, etc.) sur mon système, installé des applications et téléchargé les dernières mises à jour Windows, je décide de créer une sauvegarde de fichiers. Je connecte donc un disque dur externe à l'ordinateur portable et vais au Centre de sauvegarde et de restauration. Lorsque je clique sur le bouton Sauvegarder les fichiers, un Assistant me guide tout au long de la configuration. Il me demande la cible de sauvegarde (dans ce cas, le disque dur externe), les catégories de fichiers à sauvegarder (telles que Images) et le moment où exécuter la sauvegarde.
La Sauvegarde de fichiers utilise une approche basée sur les catégories pour la spécification des types de fichiers à sauvegarder. Si la source doit être NTFS, le disque dur cible peut être formaté en NTFS ou en FAT. L'association du fichier à une catégorie particulière est basée sur trois facteurs : le type MIME, l'association d'application et l'extension de fichier.
Si vous souhaitez sauvegarder des fichiers qui n'entrent pas dans ces catégories, choisissez la catégorie Fichiers supplémentaires. Celle-ci inclut des fichiers avec des extensions qui ne sont pas reconnues par Windows. Cependant, elle ne prend pas en charge les fichiers système et exécutables. Ces fichiers ne sont pas sauvegardés par cette fonctionnalité parce qu'ils représentent rarement des données utilisateur. Si vous souhaitez réellement sauvegarder des fichiers système et exécutables à l'aide de ce mécanisme, vous pouvez les placer dans un fichier .zip et sélectionner la catégorie Fichiers compressés dans l'Assistant.
Comme c'est la première fois que j'utilise les fonctionnalités de sauvegarde sur mon nouvel ordinateur portable, une sauvegarde complète (c'est-à-dire une sauvegarde intégrale de tous les fichiers des catégories sélectionnées) est immédiatement exécutée. Par la suite, seules des sauvegardes incrémentielles sont exécutées. Le terme incrémentiel dans le contexte de la Sauvegarde de fichiers concerne le suivi des nouveaux fichiers ou des fichiers mis à jour uniquement. Par exemple, si vous avez un ancien document Word et que vous le modifiez, l'outil Sauvegarde de fichiers conservera des copies entières de l'ancien document et du document mis à jour. (La collecte d'une sauvegarde complète unique et la séquence de sauvegardes incrémentielles créée ensuite sont collectivement appelées « jeu de sauvegarde »).
Au lieu d'exécuter des sauvegardes incrémentielles indéfiniment, il est recommandé d'exécuter des sauvegardes complètes de temps en temps. Les invites de sauvegarde complète sont basées sur des facteurs tels que la date de votre dernière sauvegarde complète, la quantité de fichiers à sauvegarder, le nombre de CD ou DVD sur lesquels vous avez sauvegardé des fichiers, et ainsi de suite. Ceci permet de garantir qu'une sauvegarde de référence complète est toujours disponible.
Les données sauvegardées sont stockées en tant que fichiers .zip (avec une taille maximale de 200 Mo chacun). Ceci rend les données plus universellement accessibles. Par exemple, vous pouvez restaurer les données sur un ordinateur qui n'exécute pas Windows Vista en parcourant directement le support de sauvegarde. Les données de sauvegarde sont stockées dans des fichiers séparés et peuvent se trouver sur plusieurs disques. En cas de défaillance d'un disque, les données sauvegardées sur l'autre support sont toujours accessibles.
Dans la Sauvegarde de fichiers, le service VSS est utilisé pour créer des copies cohérentes de fichiers qui sont ouverts ou en cours d'utilisation par des applications. Pendant le processus de sauvegarde, l'application de sauvegarde lit ces copies cohérentes. Ceci est pratique, par exemple, lorsque vous sauvegardez un fichier .pst qui est constamment ouvert par Microsoft Outlook®. Le service VSS garantit que le fichier .pst sauvegardé est dans un état cohérent de sorte qu'il soit accessible lors de la restauration.
Les sauvegardes de fichiers ne sont pas automatiquement supprimées. Cependant, vous pouvez supprimer les sauvegardes de fichiers manuellement si vous manquez d'espace. Un conseil : Vous devriez toujours supprimer un jeu de sauvegarde entier au lieu de supprimer les sauvegardes incrémentielles individuelles.
Entre parenthèse, je dois vous dire que vous devriez éviter de copier une sauvegarde de fichiers dans un emplacement différent. Si vous devez cependant le faire, gardez à l'esprit que ceci ne fonctionnera que si vous déplacez un support de sauvegarde original unique vers un autre support de destination unique. Par exemple, vous pouvez copier des données de sauvegarde d'un CD sur un DVD, mais vous ne pouvez pas copier de données de sauvegarde de plusieurs CD sur un DVD. Lorsque vous déplacez une sauvegarde, vous devez copier le dossier de sauvegarde avec le nom de votre ordinateur et le fichier mediaid.bin, tous deux situés à la racine du support de sauvegarde. Notez que si vous souhaitez restaurer un fichier qui a été déplacé, vous devez sélectionner Restauration avancée | Restaurer les fichiers d'une sauvegarde effectuée sur un autre ordinateur dans le panneau de configuration de sauvegarde pour atteindre ces fichiers, étant donné que le catalogue de sauvegarde sur l'ordinateur ne connaîtra pas ce nouvel emplacement de sauvegarde.

Sauvegarde de l'ordinateur
Une fois mon nouvel ordinateur portable installé et configuré, je souhaite effectuer une sauvegarde complète pour tout protéger, du système d'exploitation aux applications installées en passant par les paramètres de configuration et les mises à jour. J'utilise la fonctionnalité Sauvegarde de l'ordinateur, qui peut alors être utilisée pour récupérer mon ordinateur en cas de défaillance du disque dur ou d'autre incident. Je ne devrai pas réinstaller toutes les applications individuellement ni reconfigurer tous mes paramètres de configuration. Lors de la première exécution, cette fonctionnalité exécute une sauvegarde de tous les blocs sur les volumes que j'ai sélectionnés, à l'exclusion des blocs qui ne stockent aucune information. Les sauvegardes suivantes sont différentielles au niveau du bloc (j'entrerai dans les détails ultérieurement).
Une fois les sauvegardes exécutées, le panneau de configuration du Centre de sauvegarde et de restauration est mis à jour (voir la figure 2). Il fournit désormais des informations telle que la date à laquelle la sauvegarde a été exécutée et son emplacement de stockage.
Figure 2 Le Centre de sauvegarde et de restauration fournit des détails sur les sauvegardes précédentes
Figure 2 Le Centre de sauvegarde et de restauration fournit des détails sur les sauvegardes précédentes
Bien qu'elles exécutent toutes deux des sauvegardes, la fonctionnalité Sauvegarde de l'ordinateur fonctionne de façon totalement différemment de la fonctionnalité Sauvegarde de fichiers. La Sauvegarde de l'ordinateur crée une sauvegarde image au niveau des blocs de la totalité de l'ordinateur au format de disque dur virtuel (.vhd). À la première sauvegarde de l'ordinateur, le moteur analyse le disque source et copie les blocs qui contiennent des données dans un fichier .vhd stocké sur le disque de destination. Bien que les données sauvegardées ne soient pas compressées, cette sauvegarde est compacte.
À la prochaine Sauvegarde de l'ordinateur, seules les nouvelles données ou les données modifiées sont écrites dans le fichier .vhd. Les anciennes données sur le même bloc sont déplacées vers la zone de stockage de clichés instantanés. Le service VSS est utilisé pour calculer les différences entre les clichés, ainsi que pour gérer le processus de déplacement des anciennes données vers la zone de clichés instantanés du disque de destination (voir la figure 3). Cette approche rend la sauvegarde aussi rapide (dans la mesure où seuls les blocs modifiés sont sauvegardés) qu'efficace (puisque les données sont stockées de façon compacte). Notez que l'application de sauvegarde définit la quantité maximale d'espace de stockage de clichés instantanés disponible sur le disque de destination. Pour une procédure détaillée sur l'utilisation automatique ou régulière du système de Sauvegarde de l'ordinateur, reportez-vous à l'encadré « Planification de la Sauvegarde de l'ordinateur ».
Figure 3 Déplacement des données lors d'une Sauvegarde et Restauration de l'ordinateur
Figure 3 Déplacement des données lors d'une Sauvegarde et Restauration de l'ordinateur
Lors de la restaurant des données, les blocs sont restaurés à leur emplacement d'origine. Si vous souhaitez restaurer une sauvegarde plus ancienne, le moteur lit la zone de clichés instantanés et restaure les blocs appropriés.
Notez que la Sauvegarde de l'ordinateur ne peut sauvegarder que des disques au format NTFS. Si la destination de sauvegarde est un disque dur, il doit également être au format NTFS.

Restauration du système
La Restauration du système est activée par défaut. J'accède à l'Assistant Restauration du système en choisissant Réparer Windows en utilisant la Restauration du système, disponible dans la partie supérieure gauche du Centre de sauvegarde et restauration (vous pouvez également y accéder à partir du dossier Accessoires\Outils système de la section Tous les programmes de votre menu Démarrer). Si je sélectionne « Choisir un autre point de restauration » et que je clique sur Suivant, je peux voir que des points de restauration ont déjà été créés à divers moments, notamment lors de la configuration de mon ordinateur portable, de l'installation d'applications et de l'exécution de sauvegardes.
Les points de restauration sont activés par défaut pour le volume de démarrage uniquement, même sur un système où le disque dur se compose de plusieurs volumes. Les points de restauration sont automatiquement créés lors de l'installation d'applications et de pilotes, et quotidiennement sur les volumes sélectionnés (si un point de restauration n'a pas encore été créé ce jour-là). Les points de restauration peuvent également être créés manuellement en choisissant l'option Protection du système dans l'applet Système du panneau de configuration. Les clichés instantanés créés lors de la Sauvegarde de fichiers et de la Sauvegarde de l'ordinateur peuvent également être utilisés en tant que points de restauration.
Dans Windows XP, la Restauration du système utilise un filtre de système de fichiers pour suivre les modifications des fichiers système. Dans Windows Vista, la Restauration du système utilise les clichés instantanés pour suivre les modifications au niveau des blocs sur les volumes sélectionnés. Ceci augmente la robustesse de la Restauration du système et lui permet de prendre en charge une gamme plus large de scénarios de réparation.
Autre nouveauté, la Restauration du système peut désormais s'exécuter pendant que votre installation Windows est hors connexion. L'exécution s'effectue à l'aide de l'Environnement de récupération Windows, vous permettant de réparer votre système même si Windows ne peut pas démarrer.

Cliché instantané
Le cliché instantané est presque invisible. Il est activé par défaut et ne requiert aucune intervention de la part de l'utilisateur. Si un utilisateur doit un jour restaurer un fichier, c'est probablement à ce moment-là qu'il s'apercevra de l'existence de cette fonctionnalité. Elle expose essentiellement les copies de fichiers ponctuelles qui sont créées par le service VSS.

Gestion de l'espace de clichés instantanés
Les volumes actifs et le disque de sauvegarde pour la Sauvegarde de l'ordinateur contiennent des espaces de stockage réservés aux clichés instantanés. Vous pouvez vérifier les valeurs de l'espace de stockage des clichés instantanés maximum, alloué et utilisé en exécutant la commande suivante à partir d'une invite de commande élevée :
VSSAdmin list ShadowStorage
Utilisé indique la quantité d'espace actuellement utilisé par les clichés instantanés. Alloué indique la quantité d'espace réservé aux clichés instantanés (qui ne peut par conséquent pas être utilisé à d'autres fins). Maximum correspond à la taille maximale que les clichés instantanés ne peuvent pas dépasser.
L'allocation d'espace pour les clichés instantanés est automatique. Elle ne peut donc pas être déterminée par l'utilisateur. Un nouvel espace est alloué en incréments fixes lorsque l'espace précédemment alloué est épuisé. C'est pourquoi la valeur affichée pour l'espace utilisé est toujours inférieure à la valeur que vous voyez pour l'espace alloué.
Pour le volume actif, l'espace de stockage maximum autorisé pour les clichés instantanés est déterminé lors de la création du premier cliché instantané (en général, lors de la première activation de la Restauration du système et de la création d'un point de restauration au cours de l'installation). La valeur est définie sur 30 % d'espace libre ou 15 % de la taille totale du volume (au moins volumineux des deux). Cette taille maximale est fixe. Elle n'est pas modifiée lorsque l'espace libre disponible augmente ou diminue. Elle n'est pas non plus modifiée une fois la taille du volume ajustée.
Cependant, vous pouvez ajuster manuellement la taille de cette zone de stockage à l'aide de l'outil VSSAdmin à partir d'une invite de commande élevée. Par exemple, la commande permettant d'augmenter la taille de stockage maximale à 15 Go sur C:\ sera :
VSSAdmin Resize ShadowStorage /For=C: /On=C: /MaxSize=15GB
Cet outil a été introduit pour la première fois dans Windows Server®, où des clichés instantanés pour un volume particulier pouvaient être maintenus sur un autre volume. Dans Windows Vista, les clichés instantanés pour un volume sont conservés sur le même volume. Par conséquent, les volumes « pour » et « sur » doivent être identiques.
En revanche, le disque de destination de sauvegarde pour la Sauvegarde de l'ordinateur dispose d'une taille de stockage des clichés instantanés maximum fixe représentant 30 % de l'espace disque. Cette valeur est contrôlée par la Sauvegarde de l'ordinateur et ne peut pas être modifiée manuellement. L'espace de stockage de clichés instantanés est utilisé pour stocker les incréments pour la Sauvegarde de l'ordinateur.
Jusqu'à 64 clichés instantanés peuvent être conservés sur un volume à tout moment, à condition que l'espace soit suffisant dans la zone de stockage de clichés instantanés. Une fois la limite d'espace maximale atteinte, les clichés instantanés plus anciens sont supprimés pour faire place aux nouveaux. Par conséquent, les anciens points de restauration pour la Restauration du système sont supprimés lorsque la limite de stockage de clichés instantanés sur le volume actif est atteinte. Les anciennes Sauvegardes de l'ordinateur sont supprimées lorsque la limite est atteinte sur le disque de sauvegarde. En outre, le stockage et la modification d'autres données sur le disque de sauvegarde peuvent interférer avec le processus normal de vieillissement des anciennes sauvegardes, entraînant ainsi une suppression plus rapide des anciennes sauvegardes.

Restauration d'un fichier avec le cliché instantané
Maintenant, imaginez que je dispose de mon ordinateur portable depuis quelques temps et que je l'ai utilisé pour créer certaines présentations. J'ai fini les présentations et les ai transmises à mes clients. Un mois a passé. Je travaille sur de nouveaux projets et ai depuis supprimé ces fichiers. Mon responsable vient alors me demander une copie de mes anciennes présentations. C'est là que le cliché instantané devient vraiment utile.
Il existe deux façons de rechercher des copies de fichiers supprimés. Tout d'abord, si je connais l'emplacement de stockage du fichier, il me suffit de cliquer avec le bouton droit sur le dossier qui contenait le fichier supprimé et de sélectionner « Restaurer les versions précédentes ». À partir de là, je choisis une date qui contient la version souhaitée du fichier supprimé (voir la figure 4), je clique sur Ouvrir, puis copie le fichier cible dans un autre emplacement du volume actif. Cette opération de copie est aussi rapide qu'une copie de fichier normale.
Figure 4 Restauration d'un fichier supprimé
Figure 4 Restauration d'un fichier supprimé
Si je ne me souviens plus de l'emplacement de stockage du fichier, je peux ouvrir la version précédente du dossier parent le plus proche dans l'arborescence et faire une recherche à partir de là. Par exemple, si j'ai oublié le nom du dossier spécifique mais que je sais qu'il se trouvait dans un sous-dossier au sein de Documents, je peux rechercher la version précédente de Documents en entrant le nom du fichier (entier ou partiel) dans la zone de recherche située dans le coin supérieur droit de la fenêtre de l'Explorateur Windows, comme illustré à la figure 5. Notez que la fonctionnalité de recherche pour les clichés instantanés ne fonctionne pas au niveau du dossier racine. Par ailleurs, comme les clichés instantanés ne sont pas indexés, la durée de recherche peut être plus longue que la recherche sur un volume actif.
Figure 5 Recherche de la version précédente d'un document par la saisir d'un nom de fichier partiel
Figure 5 Recherche de la version précédente d'un document par la saisir d'un nom de fichier partiel

Restauration d'un fichier à partir d'une Sauvegarde de fichiers
Les clichés instantanés ne sont pas disponibles éternellement dans la mesure où ils sont supprimés de temps à autre dans le cadre de la gestion de l'espace disponible. Si j'ai besoin d'un fichier qui n'est plus disponible à l'aide de cette méthode, je peux recourir à mes sauvegardes de fichiers planifiées. Il me suffit de sélectionner Restaurer les fichiers à partir du Centre de sauvegarde et restauration et de choisir une date de sauvegarde qui contient la présentation supprimée. Lorsque je clique sur le bouton Ajouter des fichiers, j'obtiens une boîte de dialogue d'ouverture de fichier qui me permet de naviguer dans la sauvegarde. Après avoir sélectionné le fichier recherché, j'ai la possibilité de restaurer le fichier au même emplacement ou à un emplacement différent.
Il est important de noter que l'option Restaurer les fichiers n'affiche que les sauvegardes contenues dans le dernier jeu de sauvegarde. Pour afficher des sauvegardes d'un jeu de sauvegarde plus ancien, sélectionnez Restauration avancée, puis l'option Fichiers d'une sauvegarde plus ancienne effectuée sur cet ordinateur. Dans les rares occasions où vous ne pouvez pas retrouver un ancien jeu de sauvegarde à l'aide de cette option, sélectionnez Restauration avancée, puis l'option Restaurer les fichiers d'une sauvegarde effectuée sur un autre ordinateur. Cela peut arriver du fait que le catalogue de sauvegarde de l'ordinateur est tronqué lorsqu'il devient trop volumineux.

Restauration d'un fichier à partir d'une Sauvegarde de l'ordinateur
Par souci d'exhaustivité, je dois mentionner qu'une Sauvegarde de l'ordinateur peut être utilisée pour restaurer des fichiers individuels. Bien qu'elle ait été conçue pour la restauration au niveau du volume, la Sauvegarde de l'ordinateur stocke les données au format .vhd, ce qui signifie que vous pouvez utiliser l'outil de montage VHD hors connexion pour accéder aux fichiers individuels et les restaurer. (Á l'heure de la rédaction de cet article, l'outil de montage VHD est uniquement disponible en tant qu'élément de Microsoft Virtual Server 2005 R2 SP1, téléchargeable à l'adresse microsoft.com/technet/prodtechnol/eval/virtualserver.) Pour monter la sauvegarde, ouvrez une invite de commande avec des privilèges élevés et naviguez jusqu'à Microsoft Virtual Server\Vhdmount. La commande est :
vhdmount /m [path of the .vhd file] [drive letter to assign to the virtual hard drive]
La première fois que vous exécutez cette opération, le système peut ne pas sélectionner le pilote requis étant donné qu'il n'est pas signé. Ceci entraîne un message d'erreur indiquant que le pilote de périphérique n'a pas pu être chargé. Pour remédier à ce problème, après avoir connecté le fichier .vhd à l'aide de la commande ci-dessus, allez dans le gestionnaire de périphériques, cliquez avec le bouton droit sur le nouveau périphérique qui s'affiche et sélectionnez Propriétés. Puis, allez à l'onglet Pilote, sélectionnez Mettre à jour le pilote, cliquez sur Rechercher un pilote logiciel sur mon ordinateur, puis sélectionnez Me laisser choisir parmi une liste de pilotes de périphériques sur mon ordinateur. Le fichier de pilote correct se trouve sous Microsoft Virtual Server\Vhdmount\vhdstor.inf. Après l'installation, le nouveau pilote apparaît et vous pouvez rechercher la dernière sauvegarde de l'ordinateur et copier les fichiers souhaités dans un autre emplacement.

Restauration de l'ordinateur
Imaginez maintenant qu'un après-midi ensoleillé, je décide d'utiliser mon ordinateur portable tout en étant assise au bord d'une piscine. Je glisse sur le carrelage mouillé et mon ordinateur pique une tête ! C'est irréparable et je n'ai pas d'autre choix qu'en acheter un autre. Comme j'ai utilisé l'outil Sauvegarde de l'ordinateur, je peux restaurer mon système sur le nouvel ordinateur portable. Je n'ai pas besoin de passer beaucoup de temps à réinstaller manuellement chaque application et à les reconfigurer avec mes paramètres personnels. L'exécution d'une restauration de l'ordinateur est simple. Au démarrage, j'utilise le disque d'installation de Windows Vista pour démarrer en Environnement de récupération Windows. Ensuite, je suis invité à connecter le périphérique qui contient l'image du système. Je choisis l'image appropriée, puis le processus de restauration commence.
Une fois la restauration terminée, j'exécute une restauration des fichiers à partir de ma dernière sauvegarde de fichiers. En effet, j'effectue des sauvegardes de fichiers plus fréquentes pour que les données contenues dans ma sauvegarde de fichiers soient plus à jour. Dans la mesure où l'ordinateur est revenu à une heure antérieure à celle de la sauvegarde de fichiers choisie, il ne contient pas d'enregistrement de cette sauvegarde dans le catalogue. Par conséquent, je sélectionne Restauration avancée | Restaurer les fichiers d'une sauvegarde effectuée sur un autre ordinateur | Restaurer l'ensemble du contenu de cette sauvegarde. Je démarre également une nouvelle sauvegarde complète pour protéger les données récemment restaurées.
L'Environnement de récupération Windows est souvent installé par l'OEM sur le disque dur en tant que partition masquée. Celui-ci peut être utilisé pour restaurer une image de Sauvegarde de l'ordinateur sur le même matériel. Mais si vous devez restaurer une image créée à partir d'un ordinateur sur un autre, vous devez exécuter l'Environnement de récupération Windows à partir d'un support externe, tel que votre disque d'installation Windows.
Certaines réserves doivent cependant être prises en considération. La Restauration de l'ordinateur est très simple lors d'une restauration vers le même matériel que celui à partir duquel la sauvegarde a été effectuée. (À condition, bien sûr, qu'une défaillance matérielle ne fasse pas partie du problème).
Étant donné que la Sauvegarde de l'ordinateur inclut une image de tout l'ordinateur, certaines restrictions s'appliquent lors de la restauration vers un matériel différent. Tout d'abord, l'image de la sauvegarde contient des pilotes qui sont utilisés pour démarrer l'ordinateur une fois la restauration terminée. Dans de rares cas, les pilotes nécessaires pour démarrer sur le nouvel ordinateur pourraient ne pas être présents. Cela peut arriver lors de la restauration d'une sauvegarde d'image effectuée sur un type de contrôleur de disque particulier (IDE, SATA ou SCSI) vers un autre type de contrôleur de disque. Même dans ce cas, il y a de bonnes chances que vous puissiez terminer la restauration avec succès, parce que les pilotes Windows courants inclus dans la sauvegarde de l'image seront probablement compatibles.
Ensuite, la restauration peut être uniquement exécutée si le nouvel ordinateur dispose d'un nombre de disques durs au moins équivalent et si chaque disque dur est au moins aussi volumineux que l'original qu'il remplace. Gardez ces restrictions à l'esprit si vous avez l'intention d'utiliser la Sauvegarde de l'ordinateur pour migrer vers un nouveau matériel.
Du fait que la sauvegarde et la restauration sont exécutées au niveau des blocs pour des volumes entiers, la Restauration de l'ordinateur nécessite que le volume soit entièrement restauré ou entièrement ignoré. Par conséquent, vous souhaiterez peut-être créer plusieurs volumes pour la sauvegarde (par exemple, en séparant les fichiers système des fichiers de données). Au moment de la Restauration, vous pouvez alors choisir de restaurer uniquement le volume système (identifié comme critique) ou tous les volumes.

Mise en pratique de ces fonctionnalités
Windows Vista présente des améliorations considérables par rapport à Windows XP en termes de protection des données et du système grâce à l'introduction de nouvelles technologies de sauvegarde et à l'amélioration des options existantes. Les quatre fonctions de sauvegarde principales, à savoir Sauvegarde et restauration de fichiers, Sauvegarde et restauration de l’ordinateur Windows, Restauration du système et Cliché instantané, offrent des fonctionnalités différentes mais complémentaires constituant un filet de protection des données très étendu. Il est important de comprendre le fonctionnement de ces fonctionnalités, pour vous assurer que votre système est configuré de sorte à utiliser les quatre méthodes et pour appliquer la protection et la solution appropriées en fonction de la situation.
En général, essayez toujours la restauration par cliché instantané en premier dans une situation de perte de données puisque que cette méthode contient probablement la copie la plus à jour de vos données. Pour l'instabilité et la réparation du système, utilisez la Restauration du système. La Restauration de l'ordinateur doit généralement être utilisée en dernier recours pour une réparation du système complet et doit être utilisée avec prudence. Cependant, la Réparation de l'ordinateur peut réellement vous sauver la vie ! Le plus important, c'est d'agir avant qu'il ne soit trop tard : sauvegardez dès maintenant !
J'aimerais remercier Eduardo Laureano, Ivan Pashov, Jill Zoeller et tous les membres de l'équipe produit de restauration et sauvegarde pour leur aide à la rédaction de cet article.

Christine Fok est responsable de programme au sein de la division Storage Solution de Microsoft. Elle se concentre sur les expériences de sauvegarde et de restauration dans la plate-forme de client Windows.


 Windows&#160;Server: 11&#160;outils essentiels pour la gestion d'Active&#160;Directory
Windows Server Laura E. Hunter

11 outils essentiels pour la gestion d'Active Directory
Vue d'ensemble:
  • Création d'objets à la ligne de commande
  • Exécution d'opérations en bloc au sein d'Active Directory
  • Mises à jour et maintenance d'Active Directory

Si vous avez déjà reçu une feuille de calcul Excel répertoriant les 200 nouveaux employés qui commencent la semaine prochaine, ou si vos comptes utilisateur sont mal configurés parce que le personnel de support technique a cliqué là
où il ne devait pas, ou si vous souhaitez simplement gérer Active Directory® plus facilement qu'en ouvrant Utilisateurs et ordinateurs à chaque fois, il existe plusieurs outils d'administration gratuits qui peuvent vous aider. Certains sont intégrés au système d'exploitation Windows®, d'autres sont fournis dans un kit de ressources ou avec les outils de support Windows et d'autres encore sont des outils de fournisseurs tiers gratuits. Quels sont ces outils pratiques et où pouvez-vous les obtenir ? Voyons cela.
Je vais commencer par les outils de ligne de commande intégrés à Windows Server ® 2003 qui vous permettent de créer, supprimer, modifier et rechercher des objets dans Active Directory.

CSVDE
L'outil CSVDE (Comma-Separated Values Data Exchange) vous permet d'importer de nouveaux objets dans Active Directory à l'aide d'un fichier source CSV. Il permet également d'exporter des objets existants dans un fichier CSV. CSVDE ne peut pas être utilisé pour modifier des objets existants. Lorsque vous utilisez cet outil en mode d'importation, vous pouvez uniquement créer de nouveaux objets.
L'exportation d'une liste d'objets existants avec CSVDE est assez simple. Voici comment exporter vos objets Active Directory vers un fichier appelé ad.csv :
csvde –f ad.csv
Le commutateur –f indique que le nom du fichier de sortie suit. Mais vous devez être conscient du fait qu'en fonction de votre environnement, cette syntaxe de base peut produire un fichier de sortie volumineux et encombrant. Pour limiter l'outil afin d'exporter uniquement les objets d'une unité d'organisation particulière (OU), modifiez l'instruction comme suit :
csvde –f UsersOU.csv –d ou=Users,dc=contoso,dc=com
Disons que vous ne souhaitez exporter que des objets utilisateur dans votre fichier CSV. Dans ce cas, vous pouvez ajouter le commutateur –r, qui vous permet de spécifier un filtre LDAP (Lightweight Directory Access Protocol) pour la recherche, et le commutateur –l, qui vous permet de limiter le nombre d'attributs exportés (notez que ce qui suit se trouve sur une même ligne) :
csvde –f UsersOnly.csv –d ou=Users,dc=contoso,dc=com –r
    "(&(objectcategory=person)(objectclass=user))" –l
    DN,objectClass,description
Le commutateur –i vous permet d'importer des objets dans Active Directory à partir d'un fichier CSV source. Cependant, la création d'objets utilisateur avec CSVDE présente une restriction critique : vous ne pouvez pas définir de mots de passe utilisateur. Pour cette raison, j'éviterais d'utiliser CSVDE pour créer des objets utilisateur.

LDIFDE
Active Directory offre un deuxième outil intégré pour les opérations utilisateur en bloc, appelé LDIFDE. Cet outil est plus puissant et flexible que CSVDE. En plus de créer de nouveaux objets, LDIFDE permet de modifier et supprimer des objets existants et même d'étendre le schéma Active Directory. La flexibilité de LDIFDE a un prix en ce sens que le fichier d'entrée nécessaire, appelé fichier LDIF avec l'extension .ldf, utilise un format plus complexe que le fichier CSV simple. (Avec quelques efforts, vous pouvez également configurer des mots de passe utilisateur, mais j'y reviendrai ultérieurement).
Commençons par un exemple simple, l'exportation d'utilisateurs d'une unité d'organisation vers un fichier LDF (notez que ce qui suit se trouve sur une même ligne) :
ldifde -f users.ldf -s DC1.contoso.com -d "ou=UsersOU,dc=contoso,dc=com"
       –r "(&(objectcategory=person)(objectclass=user))"
Comme avec la plupart des outils de ligne de commande, vous pouvez rechercher une explication complète des commutateurs LDIFDE en exécutant la commande LDIFDE /? La figure 1 décrit les commutateurs utilisés ici. (Notez que les commutateurs sont en fait identiques pour les commandes CSVDE et LDIFDE).
Figure 1 Commutateurs LDIFDE (Close Figure 1)

Commutateur | Description
-d | Spécifie le chemin LDAP auquel LDIFDE doit se connecter pour l'opération.
-f | Indique que le nom du fichier à utiliser, dans ce cas pour obtenir les résultats de l'exportation.
-r | Spécifie le filtre LDAP à utiliser pour une exportation.
-s | Spécifie le contrôleur de domaine auquel se connecter pour exécuter l'opération. Si vous laissez ce commutateur vide, LDIFDE se connectera au contrôleur de domaine local (ou au contrôleur de domaine qui vous a authentifié si vous exécutez l'outil depuis un poste de travail).
La véritable puissance de LDIFDE réside dans la création et la manipulation d'objets. Cependant, avant de faire ceci, vous devez d'abord créer un fichier d'entrée. La commande suivante crée deux nouveaux comptes utilisateur afuller et rking. Pour créer le fichier d'entrée, saisissez le texte dans le bloc-notes (ou votre éditeur de texte préféré) et enregistrez-le en tant que NewUsers.ldf :
dn: CN=afuller, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: afuller
objectClass: user
samAccountName: afuller

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: rking
objectClass: user
samAccountName: rking
Après la création du fichier, exécutez la commande suivante :
ldifde –i –f NewUsers.ldf –s DC1.contoso.com
Le seul nouveau commutateur ici est -i, qui (comme vous l'aurez certainement deviné) indique qu'il s'agit d'une importation au lieu d'une exportation.
Lorsque vous modifiez ou supprimez des objets existants, la syntaxe pour la commande LDIFDE ne change pas. Au lieu de cela, vous modifiez le contenu du fichier LDF. Pour modifier le champ de description des comptes utilisateur, créez un fichier texte appelé ModifyUsers.ldf, tel que celui illustré à la figure 2.
Figure 2 Fichier LDF ModifyUsers
Figure 2 Fichier LDF ModifyUsers
Importez les modifications en exécutant la même syntaxe de commande LDIFDE que précédemment, en spécifiant le nouveau nom de fichier LDF après le commutateur -f. Le format LDF pour la suppression d'objets est encore plus simple. Pour supprimer des utilisateurs avec lesquels vous avez travaillé, créez un fichier appelé DeleteUsers.ldf et saisissez ce qui suit :
dn: CN=afuller OU=UsersOU, DC=contoso, DC=com
changetype: delete

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: delete
Notez que contrairement à CSVDE, LDIFDE est capable de configurer des mots de passe utilisateur. Cependant, avant de pouvoir configurer l'attribut unicodePWD pour un compte utilisateur, vous devez configurer le chiffrement SSL/TLS (Secure Sockets Layer/Transport Layer Security) sur vos contrôleurs de domaine.
De plus, LDIFDE peut créer et modifier tout type d'objet Active Directory, et pas seulement les comptes utilisateur. Par exemple, le fichier LDF suivant crée une extension de schéma personnalisée appelée EmployeeID-example dans le schéma de la forêt contoso.com :
dn: cn=EmployeeID-example,cn=Schema,
cn=Configuration,dc=contoso,dc=com
changetype: add
adminDisplayName: EmployeeID-Example
attributeID: 1.2.3.4.5.6.6.6.7
attributeSyntax: 2.5.5.6
cn: Employee-ID
instanceType: 4
isSingleValued: True
lDAPDisplayName: employeeID-example
Comme le fichier LDIFDE utilise le format de fichier LDAP standard, les applications tierces qui doivent modifier le schéma Active Directory fournissent souvent des fichiers LDF que vous pouvez utiliser pour examiner et approuver les modifications avant de les appliquer à votre environnement de production.
Outre les outils pour les opérations d'importation et d'exportation en bloc, Windows Server 2003 inclut également un jeu d'outils intégré qui vous permet de créer, supprimer et modifier divers objets Active Directory, ainsi que d'exécuter des requêtes pour les objets répondant à certains critères. (Notez que ces outils, dsadd, dsrm, dsget et dsquery, ne sont pas pris en charge par Windows 2000 Active Directory).

Dsadd
Dsadd est utilisé pour créer une instance d'une classe d'objets Active Directory sur une partition d'annuaire particulière. Ces classes incluent des utilisateurs, des ordinateurs, des contacts, des groupes, des unités organisationnelles et des quotas. Dsadd possède une syntaxe générique composée des éléments suivants :
dsadd <ObjectType> <ObjectDistinguishedName> attributes
Notez que chaque type d'objet que vous créez prend un jeu de commutateurs spécifique correspondant aux attributs disponibles pour ce type. Cette commande crée un objet utilisateur unique avec divers attributs renseignés (notez que ce qui suit se trouve sur une même ligne) :
dsadd user cn=afuller,ou=IT,dc=contoso,dc=com
–samID afuller –fn Andrew –ln Fuller –pwd *
-memberOf cn=IT,ou=Groups,dc=contoso,dc=com "cn=Help Desk,ou=Groups,
dc=contoso,dc=com"
–desc "Marketing Director"
Le commutateur –memberOf nécessite le nom unique complet de chaque groupe auquel l'utilisateur devra être ajouté. Si vous souhaitez ajouter l'utilisateur à plusieurs groupes, vous pouvez ajouter plusieurs noms uniques séparés par des espaces.
Si un élément contient un espace, tels que le nom unique du groupe Help Desk, il devra être mis entre guillemets. Si un élément contient une barre oblique inverse, tel qu'une unité d'organisation appelée IT\EMEA, la barre oblique inverse devra être entrée deux fois : IL\\EMEA. (Ces exigences s'appliquent à tous les outils ds*.)
Lorsque vous utilisez le commutateur -pwd *, vous devez entrer un mot de passe pour l'utilisateur à la ligne de commande. Vous pouvez spécifier le mot de passe dans la commande elle-même (-pwd P@ssword1), mais le mot de passe s'affichera alors en texte brut à l'écran ou dans tout texte ou fichier de script que vous avez intégré à la commande.
De même, vous pouvez créer un objet de groupe et une unité d'organisation à l'aide des deux commandes suivantes :
dsadd computer cn=WKS1,ou=Workstations,dc=contoso,dc=com
dsadd ou "ou=Training OU,dc=contoso,dc=com"

Dsmod
Dsmod est utilisé pour modifier un objet existant et vous travaillez avec lui comme avec dsadd, à l'aide de sous-menus et de la syntaxe en fonction du type d'objet que vous modifiez. L'instruction dsmod suivante modifie le mot de passe d'un utilisateur et modifie son compte de sorte que l'utilisateur soit invité à modifier le mot de passe à l'ouverture de la prochaine session :
dsmod user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Pour constater la similarité de ces commutateurs, regardez la syntaxe dsadd que vous utiliseriez pour créer cet utilisateur avec les mêmes attributs configurés :
dsadd user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Comme vous pouvez clairement le voir, si vous connaissez les commutateurs permettant de créer des objets dans dsadd, vous pouvez utiliser ces mêmes commutateurs pour modifier les utilisateurs avec dsmod.

Dsrm
L'inverse de dsadd est dsrm. Comme vous pouvez l'imaginer, cet outil vous permet de supprimer un objet de la ligne de commande. La syntaxe dsrm de base est assez simple : il vous suffit d'entrer dsrm suivi par le nom unique de l'objet que vous souhaitez supprimer, comme suit :
dsrm cn=WKS1,ou=Workstations,dc=contoso,dc=com
Par défaut, dsrm demandera « Voulez-vous vraiment supprimer cet objet ? » Tapez Y, puis appuyez sur Entrée. Vous pouvez supprimer cette invite à l'aide du commutateur –noprompt, mais ensuite, vous ne pourrez plus vérifier que vous avez sélectionné l'objet correct avant de le supprimer. Deux commutateurs supplémentaires peuvent être utiles si vous supprimez un objet de conteneur, c'est-à-dire une unité d'organisation qui pourrait potentiellement contenir d'autres objets. La commande suivante supprime l'unité d'organisation TrainingOU et tous les objets qu'elle contient :
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
Celle-ci supprime tous les objets enfant contenus dans TrainingOU mais conserve l'objet d'unité d'organisation :
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
    –exclude

Dsmove
Pour déplacer ou renommer un objet dans Active Directory, utilisez l'outil dsmove, mais notez que vous devez uniquement l'utiliser pour déplacer un objet au sein d'un domaine unique. Pour migrer des objets entre les domaines ou les forêts, utilisez l'outil de migration Active Directory (ADMT), téléchargeable gratuitement à partir du site Web de Microsoft. Dsmove repose sur deux commutateurs qui peuvent être utilisés séparément ou ensemble. Cette commande donne un nouveau nom au compte de Steve Conn :
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com"
    –newname "Steve Conn"
Cette commande déplace le compte de Steve de l'unité d'organisation IT vers l'unité d'organisation Training :
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newparent
    ou=Training,dc=contoso,dc=com
Vous pouvez combiner un changement de nom et un déplacement en une seule opération en spécifiant les deux commutateurs simultanément, comme suit :
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newname
    "Steve Conn" –newparent ou=Training,dc=contoso,dc=com

Dsget et Dsquery
Le jeu d'outils de ligne de commande ds* comprend également deux outils utilisés pour interroger Active Directory afin d'obtenir des informations au lieu de créer ou modifier des objets.
Dsget prend le nom unique d'un objet en tant qu'entrée et renvoie la valeur des attributs spécifiés. Dsget utilise les mêmes sous-menus que dsadd et dsmod : utilisateur, ordinateur, contact, groupe, unité d'organisation et quota.
Pour obtenir le nom de compte SAM et l'identificateur de sécurité (SID) d'un compte utilisateur, entrez la commande suivante (notez que ce qui suit se trouve sur une même ligne) :
dsget user cn=afuller,ou=IT,dc=contoso,dc=com
    –samAccountName –sid
Vous obtiendrez un résultat semblable à celui illustré à la figure 3.
Figure 3 Exécution de dsget
Figure 3 Exécution de dsget
Dsquery renvoie une liste d'objets Active Directory qui satisfont les critères que vous spécifiez. Vous pouvez spécifier les paramètres suivants quels que soient les sous-menus utilisés :
dsquery <ObjectType> <StartNode> -s <Search Scope> -o <OutputFormat>
Pour ObjectType, dsquery peut utiliser les sous-menus suivants, chacun d'entre eux ayant sa propre syntaxe : computer, contact, subnet, group, ou, site, server (notez que le sous-menu server récupère les informations sur les contrôleurs de domaine, pas sur les serveurs membres de votre environnement), user, quota et partition. Et si l'un de ces types de requêtes ne correspond pas à ce dont vous avez besoin, vous pouvez utiliser le sous-menu *, qui vous permet d'entrer une requête LDAP au format libre.
StartNode spécifie l'emplacement de l'arborescence Active Directory où la recherche commencera. Vous pouvez utiliser un nom unique spécifique, tel que ou=IT,dc=contoso,dc=com ou l'un des spécificateurs de raccourci suivants : domainroot, qui commence à la racine d'un domaine particulier, ou forestroot, qui commence à la racine du domaine racine de la forêt en utilisant un serveur de catalogue global pour exécuter la recherche.
Enfin, l'option de zone de recherche spécifie la façon dont dsquery doit exécuter la recherche dans l'arborescence Active Directory. Subtree (par défaut) interroge le StartNode spécifié et tous ses objets enfant, onelevel interroge uniquement les enfants immédiats du StartNode, et base interroge l'objet StartNode uniquement.
Pour mieux comprendre les zones de recherche, considérez une unité d'organisation qui contient des objets utilisateur et une unité d'organisation enfant qui contient elle-même des objets supplémentaires. L'utilisation de la zone subtree permet d'interroger l'unité d'organisation (ainsi que tous les objets utilisateur qu'elle contient) et l'unité d'organisation enfant et son contenu. L'étendue onelevel interrogera uniquement les utilisateurs contenus dans l'unité d'organisation et n'interrogera pas l'unité d'organisation enfant ni son contenu. Une requête base recherchera uniquement l'unité d'organisation elle-même sans interroger les objets qu'elle contient.
Enfin, vous pouvez utiliser Output Format pour contrôler la façon dont les résultats de dsquery sont formatés. Par défaut, dsquery renvoie les noms uniques de tous les objets qui correspondent à cette requête, comme suit :
"cn=afuller,ou=Training,dc=contoso,dc=com"
"cn=rking,ou=ITTraining,ou=Training,dc=contoso,dc=com"
Pour rechercher tous les objets utilisateur contenus dans l'unité d'organisation IT et toutes les unités organisationnelles enfant, utilisez la commande suivante :
dsquery user ou=IT,dc=contoso,dc=com
Vous pouvez affiner encore davantage cette requête en ajoutant des commutateurs supplémentaires, tels que -disabled, qui renvoie uniquement les comptes utilisateur désactivés ; -inactive x, qui renvoie uniquement les utilisateurs qui ne se sont pas connectés au cours des x dernières semaines ou plus ; ou -stalepwd x, qui renvoie uniquement les utilisateurs qui n'ont pas modifié leurs mots de passe depuis x jours ou plus.
En fonction du nombre d'objets dans votre annuaire, vous devrez spécifier le commutateur -limit x lors de l'exécution de votre requête. Par défaut, dsquery renvoie jusqu'à 100 objets qui correspondent aux détails spécifiés de votre requête. Vous pouvez spécifier un plus grand nombre, tel que -limit 500, ou utiliser -limit 0 pour demander à dsquery de renvoyer tous les objets correspondants.
Vous pouvez également utiliser les autres sous-menus pour exécuter des requêtes utiles pour les autres types d'objet. Considérons la requête suivante, qui renvoie tous les sous-réseaux définis dans les sites et services Active Directory qui se trouvent dans l'espace d'adressage 10.1.x.x :
dsquery subnet –name 10.1.*
Vous pouvez encore utiliser la requête suivante pour renvoyer chaque sous-réseau situé dans le site Corp :
dsquery subnet –site Corp
Avec un autre sous-menu, vous pouvez déterminer rapidement combien de contrôleurs de domaine dans votre forêt sont configurés en tant que serveurs de catalogue global :
dsquery server –forest –isgc
Vous pouvez également utiliser cette syntaxe pour vous aider à déterminer le contrôleur de domaine de votre domaine qui héberge le rôle FSMO (Flexible Single-Master Operation) du contrôleur de domaine principal (PDC) :
dsquery server –hasfsmo pdc
Comme avec les autres commandes ds* qui comprennent des sous-menus, vous pouvez afficher tous les commutateurs disponibles dans un sous-menu dsquery particulier en allant à l'invite de commande et en entrant dsquery user /?, dsquery computer /?, dsquery subnet /? et ainsi de suite.
Une astuce supplémentaire consiste à copier les résultats de dsquery dans un autre outil tel que dsmod à l'aide du caractère | (Alt Gr 6 sur les claviers français). Par exemple, disons que votre entreprise a renommé le service Training en Internal Development. Vous devez désormais mettre à jour le champ de description de chaque utilisateur pertinent de l'ancien département au nouveau. Sur une ligne de commande unique, vous pouvez rechercher les objets utilisateur ayant un champ de description Training, puis modifier ce champ de description en bloc, comme suit :
dsquery user –description "Training" | dsmod
    -description "Internal Development"

Petits bijoux de fournisseurs tiers
Dans la mesure où Active Directory est basé sur les normes LDAP, vous pouvez l'interroger et le modifier à l'aide de n'importe quel outil qui comprend le langage LDAP. De nombreux fournisseurs tiers ont publié des outils payants pour vous aider à gérer Active Directory, mais vous trouverez parfois une perle qui a été mise gratuitement à la disposition de la communauté. C'est le cas d'une collection créée par Joe Richards, MVP pour les Services d'annuaire, disponible en téléchargement gratuit à l'adresse joeware.net/freetools. Vous trouverez plusieurs outils utiles à diverses fonctions Les trois dont je me sers constamment sont : adfind, admod et oldcmp.

Adfind et Admod
Adfind et admod sont semblables à dsquery et dsmod. adfind est un outil de requête de ligne de commande pour Active Directory et admod permet de créer, supprimer ou modifier un ou plusieurs objets Active Directory.
Contrairement aux outils ds* qui ont plusieurs sous-menus et différents commutateurs en fonction du type d'objet, adfind et admod ont une syntaxe cohérente quel que soit le type de requête ou de modification que vous tentez d'exécuter. La syntaxe de base pour adfind est :
adfind –b <Search Base> -s <Search Scope> -f <Search Filter>
    attributesDesired
Par conséquent, une requête du nom unique et de la description de tous les objets informatiques de votre domaine sera :
adfind –b dc=contoso,dc=com –s subtree –f (objectclass=computer) dn
    description
Une requête de tous les objets utilisateur ressemblera à ce qui suit :
adfind –b dc=contoso,dc=com –s subtree –f "(&(objectcategory=person)
    (objectclass=user))" dn description
Notez qu'à part le contenu de la requête LDAP, la syntaxe n'a pas été modifiée.
Á mesure que vous travaillez avec adfind, vous trouverez de nombreux opérateurs de raccourcis qui peuvent vous faire gagner beaucoup de temps au niveau de la saisie. Par exemple, le commutateur -default peut remplacer -b dc=contoso,dc=com dans l'exemple précédent et effectuer une recherche sur tout votre domaine ; -gc recherche dans le nettoyage de la mémoire (GC) et renvoie tous les utilisateurs de votre forêt Active Directory. Vous pouvez également utiliser le commutateur -rb pour définir une base relative pour votre recherche. Si vous souhaitez rechercher dans l'unité d'organisation Training du domaine phl.east.us.contoso.com, il vous suffit simplement de spécifier –default –rb ou=Training au lieu de –b ou=Training, dc=phl,dc=east,dc=us,dc=contoso,dc=com.
Adfind peut également exécuter plusieurs fonctions de recherche avancées qui ne sont pas facilement gérables au niveau de la ligne de commande, notamment celles illustrées à la figure 4.
Figure 4 Commutateurs Adfind (Close Figure 4)

Commutateur | Description
-showdel | Interroge le conteneur Deleted Objects pour rechercher les objets tombstone.
-bit | Interroge les opérateurs au niveau du bit, tels que l'attribut userAccountControl.
-asq | Exécute une requête par attribut. Cette fonction (qui ne peut pas être répliquée dans dsquery) peut récupérer un attribut d'un objet particulier, puis exécuter une requête sur lui.
-dsq | Copie les résultats d'une requête adfind vers dsmod ou un des autres outils ds*.
Un exemple d'utilisation du commutateur –asq serait« Afficher les appartenances aux groupes des membres du support technique », comme suit :
adfind –default –rb cn=HelpDesk,ou=IT –asq member memberOf
Admod, comme son nom le suggère, est utilisé pour modifier des objets dans Active Directory. Comme avec adfind, il n'existe pas de sous-menus spécialisés avec des syntaxes particulières à mémoriser. admod utilise la même syntaxe sans tenir compte du type d'objet avec lequel vous travaillez. Vous pouvez également utiliser admod pour ajouter, déplacer, renommer, supprimer et même annuler la suppression des objets. Pour cela, il vous suffit d'ajouter le commutateur approprié, tel que -add, -rm, -move, -undel. Et comme avec dsquery et dsmod, vous pouvez également utiliser le caractère | pour copier les résultats d'une requête adfind vers admod.
Notez que l'exécution de l'annulation d'une suppression avec admod exécute simplement une opération de réanimation d'objet tombstone, dans lequel la plupart des attributs d'objets ont été supprimés. Pour restaurer un objet et tous ses attributs, vous devrez toujours exécuter une restauration faisant autorité de l'objet.

Oldcmp
Il existe un autre outil créé par Joe que je considère comme indispensable dans ma boîte à outils d'automatisation : Oldcmp, qui analyse votre base de données Active Directory à la recherche des comptes d'ordinateur qui n'ont pas été utilisés pendant un nombre de semaines spécifié, et peut exécuter les opérations suivantes :
  • Créer un rapport des comptes sans prendre aucune mesure à leur encontre
  • Désactiver les comptes d'ordinateur inutilisés
  • Transférer les comptes d'ordinateur vers une unité d'organisation différente de votre choix
  • Supprimer les comptes d'ordinateur
Notez que comme oldcmp peut potentiellement endommager votre annuaire, il dispose de plusieurs fonctionnalités de sécurité intégrées. Il ne supprimera pas un compte qui a déjà été désactivé (sans devoir spécifier manuellement un commutateur de ligne de commande « Non vraiment, c'est ce que je veux ! »). Il ne modifiera pas plus de 10 objets simultanément sans un commutateur « Non vraiment, c'est ce que je veux ! » semblable et ne fera absolument rien au compte d'ordinateur d'un contrôleur de domaine.
Malgré le nom trompeur de l'outil, Joe a mis à jour oldcmp pour qu'il exécute des fonctions semblables sur les comptes utilisateur qui n'ont pas été utilisés depuis un certain temps.
Pour un petit environnement Active Directory ou un environnement dans lequel vous travaillez uniquement avec un ou deux ajouts ou modifications à la fois, les outils de GUI, tels qu'Ordinateurs et utilisateurs Active Directory peuvent être suffisants pour la gestion quotidienne. Mais si vous ajoutez et modifiez de grands nombres d'objets quotidiennement ou que vous souhaitez une solution plus simple pour vos tâches administratives, l'utilisation de la ligne de commande peut accélérer considérablement le processus de création, de modification et de suppression d'objets dans Active Directory. Comme vous l'avez vu, il existe plusieurs outils flexibles et puissants disponibles gratuitement, soit préintégrés à Windows, soit téléchargeables à partir de sites de membres de la communauté Active Directory. Tous ces outils ont la possibilité d'améliorer votre productivité en tant qu'administrateur Active Directory, et ensemble, ils deviennent encore plus indispensables à votre travail quotidien.

Laura E. Hunter a remporté quatre fois la récompense MVP de Microsoft pour la mise en réseau Windows Server. Elle est l'auteur du livre Active Directory Cookbook, Second Edition (O'Reilly, 2006). Depuis 10 ans dans l'informatique, Laura travaille actuellement comme architecte Active Directory pour une société d'ingénierie internationale. Elle détient de nombreuses certifications informatiques et intervient fréquemment lors de réunions de groupe d'utilisateurs et de conférences du secteur informatique.


 Windows&#160;Server: R&#233;animation des objets tombstone d'Active&#160;Directory
Windows Server Gil Kirkpatrick

Réanimation des objets tombstone d'Active Directory
Vue d'ensemble:
  • Mode de stockage des objets supprimés dans Active Directory
  • Utilisation de LDP et ADRESTORE pour rechercher et restaurer des objets tombstone
  • Attributs des objets et systemFlags

Bien qu'il ne s'agisse probablement pas de votre thème de réflexion privilégié, la perte accidentelle de données est une réalité et, en tant que professionnel de l'informatique, vous devez être préparé à toutes sortes de scénarios de récupération. Dans le numéro d'avril 2007 de TechNet Magazine, j'ai évoqué l'importance de mettre en place un plan
de récupération des utilisateurs et des groupes Active Directory®. Dans cet article, disponible à l'adresse technetmagazine.com/issues/2007/04/ADRecovery, j'ai expliqué le mécanisme de liaison, de réplication et de suppression d'objets, ainsi que de restaurations faisant autorité. Malheureusement, la fonction de restauration faisant autorité exige que vous démarriez un contrôleur de domaine en mode Restauration du service d'annuaire (DSRM). Ce mode rend le contrôleur de domaine indisponible pendant la durée de l'opération de restauration.
Mais il existe une autre méthode que vous devez connaître. La réanimation des objets tombstone (aucun rapport avec les zombies !) fournit le seul moyen de récupérer des objets supprimés sans déconnecter un contrôleur de domaine, et de récupérer les informations d'identité d'un objet supprimé, telles que ses attributs objectGUID et objectSid. Elle résout habilement le problème de la recréation d'un utilisateur ou d'un groupe supprimé et de la réorganisation de toutes les références des anciennes listes de contrôle d'accès (ACL) qui contiennent l'objectSid de l'objet supprimé. Gardez seulement à l'esprit que la réanimation des objets tombstone comporte ses propres restrictions, que j'aborderai ultérieurement. Je vous recommande donc de conserver les restaurations faisant autorité dans votre escarcelle.
La réanimation des objets tombstone a été introduite dans Windows Server® 2003 Active Directory pour simplifier certains scénarios de récupération des données. Cette fonctionnalité tire parti du fait qu'Active Directory conserve les objets supprimés dans la base de données pendant un certain temps avant de les supprimer physiquement. Dans cet article, je décrirai en détail la façon dont Active Directory supprime et réanime les objets, et vous expliquerai comment vous pouvez récupérer les objets supprimés à l'aide d'outils Microsoft standard.

Qu'est-ce qu'un objet tombstone ?
Lorsque Active Directory supprime un objet de l'annuaire, il ne supprime pas physiquement l'objet de la base de données. Active Directory marque l'objet comme supprimé en définissant l'attribut isDeleted de l'objet sur TRUE, en supprimant la plupart des attributs de l'objet, en renommant l'objet, puis en le déplaçant vers un conteneur spécial du contexte de nommage de l'objet appelé CN=Deleted Objects. L'objet, maintenant appelé objet tombstone ou objet tombstone, est invisible aux opérations d'annuaire normales. Il n'est pas visible dans les composants logiciels enfichables Microsoft® Management Console (MMC) et la plupart des utilitaires LDAP (Lightweight Directory Access Protocol) ignorent totalement l'existence de l'objet tombstone. L'objet tombstone a, dans les faits, totalement disparu. Les données sont cependant toujours là, mais invisibles. Pourquoi Active Directory conserve-t-il des objets tombstone, c'est-à-dire des objets supprimés, dans la base de données ?
Bien qu'invisible pour les autres processus, un objet tombstone est visible pour le processus de réplication d'Active Directory. Afin de s'assurer que la suppression est exécutée sur tous les contrôleurs de domaine hébergés par l'objet supprimé, Active Directory copie l'objet tombstone sur les autres contrôleurs de domaine. Ainsi, l'objet tombstone est utilisé pour répliquer la suppression sur l'ensemble de l'environnement Active Directory.

Durée de vie d'un objet tombstone
Active Directory supprime généralement un objet de l'annuaire en réponse à une opération du protocole de suppression LDAP ou une opération de suppression du Gestionnaire de comptes de sécurité (SAM). Cette opération, appelée suppression d'origine, est distincte des opérations de suppression exécutées par le processus de réplication d'Active Directory. Notez que cette discussion ne concerne pas les objets dynamiques, dont le mécanisme de suppression est différent et qui sont directement supprimés par Active Directory lorsque leur durée de vie (TTL) expire.
Lorsque Active Directory reçoit l'opération de suppression, il lance d'abord une liste de vérification pour vérifier que l'objet est autorisé à être supprimé. Ce processus est étonnamment compliqué car il vérifie que les critères suivants sont tous satisfaits :
  • L'attribut isDeleted de l'objet n'est pas déjà défini sur TRUE. (Vous ne pouvez pas supprimer un objet déjà supprimé !)
  • L'indicateur de contrôle du descripteur de sécurité propre à la ressource « objet privé » n'est pas défini dans le descripteur de sécurité de l'objet. (Ceci semble être une « fonctionnalité » non documentée. L'indicateur d'objet privé est le bit 1 de l'octet Sbz1 de la structure du descripteur de sécurité).
  • Le bit « Interdire la suppression » (0x80000000) n'est pas défini dans l'attribut systemFlags de l'objet.
  • L'attribut isCriticalSystemObject de l'objet n'est pas défini sur TRUE.
  • Le descripteur de sécurité de l'objet accorde les droits d'accès appropriés à l'utilisateur pour supprimer l'objet. (Plus particulièrement, l'utilisateur est autorisé à supprimer l'objet lui-même et à supprimer un enfant de l'objet parent).
  • L'objet n'est pas un objet de référence croisée (objectClass = crossRef) pour un contexte de nommage existant.
  • L'objet n'a pas d'objets subordonnés. (Si l'opération de suppression LDAP inclut l'id d'objet de contrôle LDAP « tree delete », Active Directory supprime également automatiquement les objets subordonnés, à moins que leur attribut isCriticalSystemObject ne soit défini sur TRUE. Ceci empêche la suppression par inadvertance d'objets système critiques au cours de l'opération de suppression de l'arborescence. Vous pouvez, bien sûr, supprimer ces objets individuellement).
  • L'objet n'est pas un objet interne critique (par exemple, il ne s'agit pas de l'objet nTDSDSA du contrôleur de domaine ou des objets d'espace réservé pour les ancêtres des têtes de contexte de nommage).
Outre le fait que ces critères doivent être satisfaits, Active Directory doit également être dans un état approprié pour traiter l'opération de suppression. Par exemple, si Active Directory est en train de modifier un nom de domaine, il ne peut pas supprimer un compte de confiance du domaine ou un objet crossRef.
S'il est déterminé que l'objet peut réellement être supprimé, Active Directory le transforme en objet tombstone. Active Directory supprime d'abord les attributs inutiles de l'objet, ne conservant dans l'objet tombstone que les attributs spécifiés à la figure 1 et ceux définis dans le schéma. (Pour plus d'informations, consultez la section « Récupération des attributs d'objet »). Il modifie ensuite le nom unique relatif (RDN) de l'objet en CN=<old RDN>\0ADEL:<objectGUID>, où \0A indique le caractère de saut à la ligne ASCII et <objectGUID> est l'objectGUID exprimé sous forme de chaîne. L'attribut lastKnownParent est ensuite défini sur le nom unique (DN) du conteneur parent de l'objet et l'attribut isDeleted est défini sur TRUE. Active Directory supprime ensuite tous les attributs des liens précédents ou suivants de l'objet. Enfin, si le bit « Interdire le déplacement à la suppression » de l'attribut systemFlags de l'objet n'est pas défini, Active Directory déplace l'objet vers le conteneur CN=Deleted Objects pour le contexte de nommage. (Pour plus d'informations sur ce sujet, reportez-vous à l'encadré « Attribut systemFlags et comportement des objets »).
Figure 1 Attributs enregistrés dans un objet tombstone (Close Figure 1)

Codés en dur pour être enregistrés
attributeID
attributeSyntax
dnReferenceUpdate
dNSHostName
flatName
governsID
groupType
instanceType
lDAPDisplayName
legacyExchangeDN
mS-DS-CreatorSID
mSMQOwnerID
nCName
objectClass
objectGUID
objectSid
oMSyntax
proxiedObejctName
replPropertyMetaData
sAMAccountName
securityIdentifier
sIDHistory
subClassOf
systemFlags
trustPartner
trustDirection
trustType
trustAttributes
userAccountControl
uSNChanged
uSNCreated
whenCreated
Enregistrés en raison du paramétrage de searchFlags
msDS-AdditionalSamAccountName
msDS-Auxiliary-Classes
msDS-Entry-Time-To-Die
msds-Intid
msSFU30NisDomain
nTSecurityDescriptor
uid
Il est à noter que le dossier CN=Deleted Objects est plat et ne possède pas de hiérarchie d'objets. Vous pensez peut-être que cela risque de provoquer des conflits de nom si vous avez supprimé deux objets différents avec le même CN. En fait, ce n'est pas le cas. Comme l'objectGUID est incorporé dans le RDN de chaque objet tombstone, chacun d'eux est unique dans le conteneur CN=Deleted Objects.
Évidemment, les objets ne restent pas éternellement dans le conteneur CN=Deleted Objects. La durée de vie par défaut de l'objet tombstone est de 60 jours pour les forêts initialement créées avec Windows® 2000 et Windows Server 2003, et de 180 jours pour les forêts initialement créées avec Windows Server 2003 SP1. Vous pouvez modifier la durée de vie de l'objet tombstone en définissant l'attribut tombstoneLifetime de l'objet CN=Directory Service,CN=Windows NT, CN=Services,CN=Configuration, DC=<domaine racine>.
Toutes les 12 heures, chaque contrôleur de domaine démarre un processus de nettoyage de la mémoire. (Pour modifier ceci, vous pouvez définir une nouvelle valeur pour l'attribut garbageCollPeriod de l'objet CN=Directory Service,CN=Windows NT, CN=Services,CN=Configuration,DC=<domaine racine>.) Ce nettoyage de la mémoire numérise tous les objets tombstone sur le contrôleur de domaine et supprime physiquement tous ceux ayant dépassé leur durée de vie.

Utilisation de LDP pour rechercher les objets tombstone
LDP est un utilitaire de même type que l'Explorateur Windows permettant de travailler avec Active Directory. Á l'origine, LDP a été conçu par l'équipe de développement d'Active Directory pour tester son code LDAP alors qu'Active Directory était encore en phase de développement. Aujourd'hui intégré dans les outils de support de Windows Server 2003, LDP a évolué en un outil robuste qui facilite le travail avec Active Directory.
Bien que les objets tombstone soient invisibles pour les opérations d'annuaire normales, vous pouvez les rechercher dans Active Directory à l'aide des opérations de recherche LDAP et d'extensions LDAP spéciales baptisées contrôles. Définis dans la norme LDAP, les contrôles constituent un mécanisme utilisé pour étendre le protocole LDAP afin de fournir des fonctionnalités supplémentaires complétant celles définies dans la norme LDAP, tout en restant compatibles avec les autres logiciels conformes à la norme LDAP. Active Directory prend en charge 22 contrôles, y compris le contrôle Return Deleted Objects. Lorsqu'il est utilisé pour étendre une opération de recherche LDAP, ce contrôle récupère les objets supprimés qui seraient autrement invisibles.
Pour vous expliquer comment cela fonctionne, je me connecte au domaine foo.local avec mes informations d'identification d'administrateur d'entreprise, puis utilise le composant logiciel enfichable MMC Active Directory Users and Computers (ADUC) pour créer un objet utilisateur (CN=John Smith,CN=Users,DC=foo,DC=local), tel que décrit à la figure 2. Je supprime ensuite l'objet utilisateur, en utilisant à nouveau ADUC.
Figure 2 Utilisation d'ADUC pour créer un utilisateur
Figure 2 Utilisation d'ADUC pour créer un utilisateur
Je peux maintenant exécuter le programme LDP et l'utiliser pour afficher l'objet tombstone correspondant à l'utilisateur supprimé. La première étape consiste à connecter LDP à un contrôleur de domaine spécifique et à s'authentifier en utilisant les informations d'identification appropriées. Pour me connecter au contrôleur de domaine, il me suffit de sélectionner l'option Connect (Connecter) du menu Connection (Connexion). Dans la mesure où j'exécute LDP sur le contrôleur de domaine, il me suffit d'appuyer sur OK pour me connecter au contrôleur de domaine local. Si vous exécutez LDP à distance, vous devez spécifier le nom du contrôleur de domaine auquel vous voulez vous connecter. Une fois la connexion établie, LDP affiche les attributs de rootDSE, lequel contient des attributs décrivant l'état et la configuration du contrôleur de domaine lui-même (voir la figure 3).
Figure 3 LDP connecté à un contrôleur de domaine
Figure 3 LDP connecté à un contrôleur de domaine
Maintenant, pour m'authentifier auprès du contrôleur de domaine en utilisant des informations d'identification d'administrateur d'entreprise ou de domaine, je sélectionne Bind (Lier) dans le menu Connection (Connexion). Dans la mesure où je suis déjà connecté en tant qu'administrateur d'entreprise pour la forêt (les administrateurs d'entreprise et de domaine possèdent par défaut les droits nécessaires pour répertorier et réanimer les objets du conteneur CN=Deleted Objects), je laisse tout simplement le nom d'utilisateur et le mot de passe vides dans la boîte de dialogue Bind (Lier) et j'appuie sur OK. Je pourrais également entrer les informations d'identification appropriées dans cette même boîte de dialogue.
Je répertorie ensuite le contenu du conteneur CN=Deleted Objects,DC=foo,DC,local. Normalement, vous ne verrez jamais le conteneur CN=Deleted Objects car il est lui-même marqué comme supprimé. Le seul moyen de rechercher le conteneur CN=Deleted Objects est d'utiliser le contrôle LDAP Return Deleted Objects.
Pour utiliser ce contrôle avec LDP, accédez au menu Browse (Parcourir) et sélectionnez Search (Rechercher). La boîte de dialogue de recherche illustrée à la figure 4 apparaît. Le champ Base Dn vous permet de spécifier l'emplacement de l'arborescence où démarrer la recherche. J'entre le DN du conteneur Deleted Objects pour le domaine (dans cet exemple, le DN est CN=Deleted Objects,DC=foo,DC=local).
Figure 4 Boîte de dialogue de recherche de LDP
Figure 4 Boîte de dialogue de recherche de LDP
Dans le champ Filter (Filtre), je spécifie les critères de recherche utilisés par LDP. La valeur par défaut est (objectClass=*) qui indique à la recherche de renvoyer tous les objets dont l'attribut objectClass comporte une valeur. Dans la mesure où même les objets supprimés dans Active Directory ont une valeur pour objectClass, le filtre par défaut renvoie chaque objet contenu dans la zone de recherche. Dans cet exemple, je modifie le filtre en (objectClass=user) pour limiter la recherche aux objets utilisateur. Il sera ainsi plus facile de rechercher l'utilisateur John Smith supprimé parmi les quelques milliers d'objets tombstone du conteneur CN=Deleted Objects.
Vous pouvez découvrir qu'il y a plus d'objets dans le conteneur CN=Deleted Objects que n'en renvoie Active Directory en une seule opération de recherche. Pour résoudre ce problème, vous pouvez utiliser une recherche LDAP paginée, qui renvoie les résultats d'un groupe à la fois. LDP ne vous permet cependant pas de spécifier à la fois une recherche paginée et une recherche étendue. Vous devez donc affiner votre filtre LDAP pour localiser l'objet que vous recherchez.
Les cases d'option Scope (Zone) vous permettent de spécifier la partie de l'arborescence dans laquelle effectuer la recherche. Une recherche de base ne renvoie que l'objet spécifié par le champ Base Dn. Une recherche à un niveau renvoie les objets qui sont immédiatement subordonnés à l'objet Base Dn. Et une recherche dans la sous-arborescence renvoie tous les objets subordonnés à l'objet Base Dn. Comme le dossier CN=Deleted Objects ne possède pas de hiérarchie, j'utilise une recherche à un niveau pour récupérer tous les objets tombstone.
Jusqu'ici, je ne vous ai présenté que les grands traits d'une recherche LDAP classique. Si je devais la lancer maintenant, LDP afficherait une erreur indiquant que CN=Deleted Objects,DC=foo,DC=com n'existe pas puisqu'il est marqué comme supprimé. Je dois encore inclure le contrôle LDAP Return Deleted Objects dans l'opération de recherche. Pour ce faire, je clique sur le bouton Options de la boîte de dialogue de recherche et je sélectionne Extended (Etendu) pour le type d'appel de recherche, comme illustré à la figure 5. Cette option me permet de spécifier des contrôles pour l'opération de recherche. Ici, je modifie également la liste des attributs en *. LDP affiche ainsi tous les attributs normaux de chaque objet qu'il récupère; au lieu du jeu d'attributs par défaut de LDP.
Figure 5 Boîte de dialogue des options de recherche de LDP
Figure 5 Boîte de dialogue des options de recherche de LDP
J'appuie maintenant sur le bouton Controls (Contrôles) pour afficher la boîte de dialogue Controls (Contrôles). La boîte de dialogue Controls (Contrôles) de LDP est assez peu conviviale ; lorsque vous effectuez cette opération, veillez à bien respecter ces étapes pour ajouter le contrôle Return Deleted Objects.
Ouvrez la liste déroulante Load Predefined (Charger les éléments prédéfinis), sélectionnez Return deleted objects (Renvoyer les objets supprimés) et appuyez sur le bouton Check in (Archiver). Cette opération ajoute l'identificateur d'objet (OID) du contrôle Return Deleted Objects (1.2.840.113556.1.4.417) à la liste des contrôles actifs, comme illustré à la figure 6. LDP ajoute ensuite le contrôle à toutes opérations de recherche étendue ultérieures. Appuyez sur OK pour enregistrer les paramètres de contrôle et à nouveau sur OK pour fermer la boîte de dialogue Search Options (Options de Recherche).
Figure 6 Ajout d'un contrôle Return Deleted Objects
Figure 6 Ajout d'un contrôle Return Deleted Objects
La boîte de dialogue Controls (Contrôles) a un comportement particulier. Bien qu'un OID apparaisse dans la liste des contrôles actifs, ceci ne signifie pas nécessairement que le contrôle est réellement appliqué. Vous devrez parfois extraire un contrôle, puis l'archiver à nouveau pour vous assurer qu'il sera utilisé dans la prochaine opération LDAP.
Je maintenant suis prêt à lancer ma recherche. J'appuie sur le bouton OK de la boîte de dialogue de recherche de LDP et LDP récupère tous les objets utilisateur du conteneur CN=Deleted Objects pour le domaine. La figure 7 illustre mes résultats.
Figure 7 Résultats du conteneur CN=Deleted Objects
Figure 7 Résultats du conteneur CN=Deleted Objects

Examen des résultats renvoyés par LDP
Ma recherche a renvoyé deux objets tombstone. Premièrement, vous pouvez voir le DN du premier objet tombstone : CN=John Smith\0ADEL:41800281-6bc4-42c3-a99b-b283022b3af8,CN=Deleted Objects,DC=foo,DC=local. L'objectGUID de l'objet supprimé est représenté sous forme de chaîne (41800281-6bc4-42c3-a99b-b283022b3af8). En dessous du DN figure une liste d'attributs indiquant les valeurs pour objectClass, cn, distinguishedName, etc. Vous pouvez voir que la valeur de l'attribut isDeleted est TRUE, ce qui signifie que l'objet a réellement été supprimé. Vous voyez également que l'objectSid a été conservé dans l'objet tombstone, ce qui est important pour récupérer les objets tombstone de l'utilisateur et du groupe, comme nous le verrons ultérieurement. L'attribut lastKnownParent, qui représente le DN de l'objet qui contenait l'objet supprimé avant qu'il soit transformé en objet tombstone, est également extrêmement important pour la récupération des objets tombstone.
Dans mon exemple, LDP a affiché deux objets tombstone, qui étaient tous deux des objets utilisateur appelés CN=John Smith provenant initialement du conteneur CN=Users,dc=foo,dc=local. Comment deux objets séparés avec le même RDN peuvent-ils provenir du même conteneur ? L'explication est assez simple. Avant d'exécuter LDP pour rechercher les objets tombstone, j'ai créé l'objet utilisateur CN=John Smith dans le conteneur CN=Users,DC=foo,DC=local et je l'ai supprimé. J'ai ensuite créé un autre objet utilisateur avec les mêmes attributs et je l'ai également supprimé. Dans la mesure où j'avais déjà supprimé le premier objet utilisateur CN=John Smith, il était tout à fait raisonnable de créer le deuxième, même s'il avait le même nom. Mais ce sont des objets individuels uniques qui se distinguent par leur objectGUID. Du fait qu'Active Directory incorpore l'objectGUID dans le DN de l'objet tombstone, ils apparaissent comme des objets séparés dans le conteneur CN=Deleted Objects.

Réanimation d'un objet tombstone
Active Directory fournit un mécanisme permettant de restaurer un objet tombstone en objet normal. Il s'agit en fait d'une fonction d'annulation de suppression pour les objets supprimés. Cette fonction est une opération de modification propre à LDAP qui doit inclure deux modifications d'attribut spécifiques : elle doit supprimer l'attribut isDeleted (et non se contenter de le définir sur FALSE) et déplacer l'objet vers un autre conteneur en modifiant le distinguishedName de l'objet. En principe (mais pas nécessairement), le nouveau distinguishedName utilise l'attribut lastKnownParent comme conteneur et conserve le même RDN moins le composant \0ADEL:<objectGUID> qu'Active Directory a ajouté lorsque il a créé l'objet tombstone.
Avant de réanimer l'objet tombstone, Active Directory vérifie que certaines conditions nécessaires sont toutes remplies. L'utilisateur doit disposer du droit d'accès étendu de réanimation des objets tombstone, défini sur la tête de contexte de nommage du contexte de nommage contenant l'objet tombstone. L'utilisateur ne peut pas réanimer son propre objet. L'attribut isDeleted de l'objet tombstone doit être défini sur TRUE. L'Identificateur de sécurité (SID) du propriétaire de l'objet, tel que défini dans le descripteur de sécurité doit posséder un SID de l'un des domaines de la forêt ou d'un domaine de confiance.
Si l'objet en question se trouve dans les contextes de nommage de configuration ou de schéma, les bits FLAG_CONFIG_ALLOW_RENAME et FLAG_ CONFIG_ALLOW_MOVE doivent être définis dans l'attribut systemFlags de l'objet tombstone. Si l'objet se trouve dans les contextes de nommage de configuration ou de schéma et que l'indicateur FLAG_CONFIG_ALLOW_LIMITED_MOVE est défini, l'objet peut seulement être déplacé vers un conteneur ayant le même grand-parent, en d'autres termes, l'objet doit conserver son arrière grand-parent après le déplacement. Si l'objet se trouve dans le contexte de nommage d'un domaine ou dans une partition d'application, les bits FLAG_DOMAIN_DISALLOW_RENAME et FLAG_DOMAIN_DISALLOW_MOVE ne doivent pas être définis dans l'attribut systemFlags de l'objet tombstone.
L'utilisateur doit disposer des droits, comme défini dans le descripteur de sécurité, permettant de modifier le RDN (en principe contexte de nommage, mais pas toujours) et d'ajouter l'objet au nouveau conteneur parent. Le nouveau conteneur parent doit être un supérieur possible pour l'attribut objectClass de l'objet tombstone, tel que défini par le schéma. Bien qu'en général le déplacement à l'intérieur ou à l'extérieur du conteneur System ne soit pas autorisé (à moins que la valeur de Registre de la sous-arborescence système Unlock soit différente de zéro), la réanimation d'un objet tombstone dans le conteneur System est autorisée.
La réanimation d'un objet de schéma n'est jamais autorisée. Ce n'est cependant pas vraiment un problème puisque vous ne pouvez pas supprimer légitimement un objet du contexte de nommage de schéma.
Si toutes les vérifications sont satisfaisantes et que les exigences nécessaires sont respectées, Active Directory exécute les étapes suivantes sur l'objet tombstone pour réanimer l'objet :
  • L'attribut isDeleted est supprimé.
  • Si rien d'autre n'est précisé dans l'opération de modification, l'objectCategory est défini sur l'objectClass le plus spécifique indiqué dans l'objet tombstone.
  • Le RDN est modifié et l'objet est écrit dans le nouveau conteneur parent.
Après réanimation, l'objet possède des attributs objectGUID et objectSid identiques à ceux qu'il possédait initialement. Cela signifie que les références externes à l'objet, par exemple dans les ACL, ne doivent pas être redéfinies comme c'est le cas si vous recréez un objet supprimé. L'objet réanimé a le même aspect et agit exactement de la même manière qu'avant sa suppression. Il existe cependant une différence importante : l'objet restauré ne possède pas les attributs qui n'ont pas été enregistrés dans l'objet tombstone.

Utilisation de LDP pour réanimer les objets tombstone
Attribut systemFlags et comportement des objets
L'attribut systemFlags est un attribut facultatif défini pour la classe Top, ce qui fait de systemFlags un attribut facultatif pour chaque classe d'Active Directory. Il s'agit d'un masque binaire d'entier de 32 bits qui contrôle le comportement des déplacements et des suppressions d'objet. Voici un récapitulatif des indicateurs importants.

FLAG_DISALLOW_DELETE (0x80000000)

Si cet indicateur est défini, le système n'autorise pas la suppression ou le déplacement de l'objet dans un autre domaine.

FLAG_CONFIG_ALLOW_RENAME (0x40000000)

Les objets des contextes de nommage de configuration et de schéma ne peuvent pas être renommés sauf si cet indicateur est défini dans l'attribut systemFlags.

FLAG_CONFIG_ALLOW_MOVE (0x20000000)

Les objets des contextes de nommage de configuration et de schéma ne peuvent pas être déplacés sauf si cet indicateur est défini dans l'attribut systemFlags.

FLAG_CONFIG_ALLOW_LIMITED_MOVE (0x10000000)

Les objets des contextes de nommage de configuration et de schéma ne peuvent pas être déplacés sauf si cet indicateur est défini dans l'attribut systemFlags. Cet indicateur impose une restriction supplémentaire sur le conteneur cible de l'opération de déplacement : le conteneur cible doit avoir le même grand-parent que le conteneur actuel.

FLAG_DOMAIN_DISALLOW_RENAME (0x08000000)

Par défaut, les objets d'un contexte de nommage de domaine ou d'application peuvent être renommés. Cependant, si cet indicateur est défini dans l'attribut systemFlags de l'objet, le système n'autorise pas le changement de nom de l'objet.

FLAG_DOMAIN_DISALLOW_MOVE (0x04000000)

Par défaut, les objets d'un contexte de nommage de domaine ou d'application peuvent être déplacés vers un autre conteneur. Cependant, si cet indicateur est défini dans l'attribut systemFlags de l'objet, le système n'autorise pas le déplacement de l'objet.

FLAG_DISALLOW_MOVE_ON_DELETE (0x02000000)

Si cet indicateur est défini, le système ne déplace pas l'objet vers le conteneur CN=Deleted Objects de son contexte de nommage. Il se contente de déterminer l'attribut isDeleted, de renommer l'objet et de supprimer les attributs non désignés dans le schéma comme devant être enregistrés. Tous les objets supprimés n'apparaissent par conséquent pas dans le conteneur CN=Deleted Objects pour le contexte de nommage ; certains restent dans le conteneur parent original.

Maintenant que je vous ai expliqué les rouages de la réanimation des objets tombstone, je veux vous montrer comment je peux utiliser LDP pour restaurer l'utilisateur CN=John Smith que j'ai supprimé. Je me connecte d'abord à un contrôleur de domaine et je m'authentifie. Je peux maintenant exécuter une opération de modification à l'aide de LDP. Dans les paramètres de l'opération de modification, je peux supprimer l'attribut isDeleted et spécifier un nouveau DN en même temps.
Dans la mesure où j'agis sur un objet tombstone, je dois spécifier le contrôle LDAP Return Deleted Objects. Pour définir ce contrôle pour l'opération de modification dans LDP, sélectionnez Controls (Contrôles) dans le menu d'options, puis sélectionnez Return deleted objects (Renvoyer les objets supprimés) dans la liste déroulante Load Predefined (Charger les éléments prédéfinis), et appuyez ensuite sur le bouton Check in (Archiver), puis sur OK pour enregistrer les paramètres du contrôle.
Je sélectionne maintenant Modify (Modifier) dans le menu Browse (Parcourir) pour ouvrir la boîte de dialogue Modify (Modifier) et entrer le DN de l'objet tombstone que je veux restaurer. Le plus simple est de copier et coller le DN à partir des résultats de l'opération de recherche que j'ai exécutée précédemment.
Ensuite, je dois entrer une liste d'opérations d'attribut à exécuter. La réanimation d'un objet tombstone nécessite deux opérations d'attribut : la suppression de l'attribut isDeleted et le remplacement de l'attribut distinguishedName par le DN souhaité de l'objet tombstone réanimé. Je tape donc isDeleted dans le champ Attribute (Attribut) et je sélectionne la case d'option Delete (Supprimer). Lorsque j'appuie sur le bouton Enter (Entrée), l'opération d'attribut est ajoutée à la liste des entrées, comme illustré à la figure 8.
Figure 8 Spécification des opérations d'attribut à exécuter
Figure 8 Spécification des opérations d'attribut à exécuter
J'entre ensuite le distinguishedName dans le champ Attribute (Attribut), sélectionne la case d'option Replace (Remplacer) et entre le nouveau DN de l'objet dans le champ Values (Valeurs). Dans le cas présent, j'utilise le distuiguishedName original de l'utilisateur, CN=John Smith,CN=Users,DC=foo,DC=local. Lorsque j'appuie sur le bouton Enter (Entrée), l'opération de modification est ajoutée à la liste des entrées.
Puisque je dois inclure le contrôle LDAP Return Deleted Objects dans l'opération de modification, je dois utiliser une modification LDAP étendue. Pour ce faire, je coche la case Extended (Étendue). Une fois paramétrage terminé, comme illustré à la figure 9, j'appuie sur le bouton Run (Exécuter) pour effectuer les modifications. LDP affiche les résultats dans une grande fenêtre de texte.
Figure 9 Modification du distinguishedName
Figure 9 Modification du distinguishedName
Lorsque je reviens au composant logiciel enfichable MMC Active Directory Users and Computers et que je regarde dans le conteneur CN=Users, je retrouve à la même place l'objet utilisateur que j'avais supprimé. Mais l'objet comporte certaines différences importantes par rapport à son état original. Nous y reviendrons dans un instant.

Utilisation de ADRESTORE pour réanimer les objets tombstone
Une fois vous avez compris comment utiliser LDP, la réanimation d'un objet tombstone n'est pas extrêmement difficile. Mais elle n'est pas très commode non plus. Heureusement, nos amis de Sysinternals (une entreprise qui appartient maintenant à Microsoft) ont développé un outil de ligne de commande pour simplifier le processus de réanimation. Cet outil, baptisé ADRESTORE, est disponible sur le site Web de Microsoft à l'adresse microsoft.com/technet/ sysinternals/utilities/AdRestore.mspx. Son installation est simple. Il vous suffit de copier l'exécutable dans un répertoire approprié sur votre ordinateur (par exemple le répertoire C:\WINDOWS\SYSTEM32).
ADRESTORE s'exécute dans deux modes. Si vous l'exécutez sans aucun paramètre, il répertorie tous les objets tombstone du conteneur CN=Deleted Objects du domaine par défaut. Vous pouvez ajouter une chaîne de recherche à la ligne de commande pour sélectionner les objets à afficher, par exemple :
C:\> adrestore John
Vous affichez ainsi tous les objets tombstone du conteneur CN=Deleted Objects qui contiennent la chaîne « John » dans leur attribut CN ou UO (l'utilitaire utilise les filtres de recherche cn=*John* et ou=*John*). Ce n'est pas exactement la façon la plus souple de rechercher les objets tombstone, mais c'est réalisable dans la plupart des situations. La figure 10 illustre le résultat de ma recherche renvoyé dans ADRESTORE.
Figure 10 Attributs enregistrés dans un objet tombstone
Figure 10 Attributs enregistrés dans un objet tombstone
Si vous souhaiter réanimer un objet tombstone, et pas seulement le rechercher, vous devez spécifier le commutateur -r, ainsi qu'une chaîne facultative, comme suit :
C:\> adrestore –r John
Cette commande vous invite à réanimer chaque objet tombstone correspondant. ADRESTORE réanime toujours l'objet dans le conteneur fourni par l'attribut lastKnownParent de l'objet tombstone. Il n'existe aucune façon de spécifier un conteneur différent.
ADRESTORE propose une interface de ligne de commande commode pour utiliser la fonctionnalité de réanimation d'Active Directory. Bien que manquant encore de souplesse, son utilisation est un peu plus simple que LDP. Il n'en reste pas moins qu'ADRESTORE n'évite pas deux problèmes importants liés à la réanimation des objets tombstone : la récupération des attributs supprimés de l'objet lors de sa première suppression et la récupération des objets supprimés du contexte de nommage de configuration.

Récupération des attributs d'objet
En termes de récupération des données, la réanimation des objets tombstone présente un grand avantage par rapport à l'exécution d'une restauration faisant autorité : la réanimation d'un objet tombstone ne nécessite pas la déconnexion du contrôleur de domaine. La réanimation des objets tombstone est largement préférable à la simple création d'une nouvelle version d'un objet supprimé. Si vous recréez un objet, il possédera toujours les nouveaux attributs objectGUID et objectSid (s'il s'agit d'une entité de sécurité telle qu'un utilisateur). Par conséquent, toutes les références externes à l'objet, telles que les ACL, doivent être mises à jour pour refléter la nouvelle identité de l'objet. Cela peut être extrêmement laborieux.
Certains attributs sont supprimés lorsqu'un objet est supprimé, et ces attributs ne sont pas récupérés lors de la réanimation des objets tombstone. Mais Active Directory enregistre certains attributs essentiels dans l'objet tombstone, dont les plus importants sont ceux liés à l'identité tels que objectGUID et objectSid. Il enregistre également un grand nombre d'autres attributs par défaut (voir la figure 1). La plupart des attributs qui sont codés en dur pour être enregistrés ne sont pas très intéressants, surtout dans le cadre d'une discussion sur la récupération des objets utilisateur supprimés. Mais vous pouvez spécifier des attributs supplémentaires à enregistrer dans l'objet tombstone en définissant le bit 3 (0x00000008) de l'attribut searchFlags de l'objet attributeSchema correspondant dans le schéma Active Directory. Dans le schéma de Windows Server 2003 R2, ce bit est déjà défini pour certains attributs (également illustrés à la figure 1).
L'installation de certaines applications peut modifier le bit 3 du searchFlags des attributs existants, voire ajouter de nouveaux attributs dont le bit 3 est défini. Exchange Server, par exemple, configure plusieurs attributs supplémentaires à enregistrer dans l'objet tombstone.
Active Directory n'enregistre pas les attributs avec des liens précédents ou des liens suivants dans l'objet tombstone, même si vous spécifiez cet enregistrement dans l'attribut searchFlags de l'objet de schéma. En particulier, Active Directory n'enregistre pas les éléments tels que l'attribut de membre d'un groupe ou l'attribut memberOf d'un utilisateur. Ainsi la réanimation des objets tombstone n'offre pas de solution de récupération des d'appartenances aux groupes dans Active Directory. Sur ce thème, reportez-vous à mon article « Récupération après incident : utilisateurs et groupes Active Directory » à l'adresse technetmagazine.com/issues/2007/04/ADRecovery . Vous devrez donc toujours fournir un mécanisme alternatif pour récupérer ces informations lors de la réanimation des objets tombstone.
Si vous voulez utiliser la réanimation des objets tombstone dans le cadre de votre stratégie de récupération de données, vous devez vous assurer que les attributs importants sont enregistrés dans l'objet tombstone ou vous devez proposer une autre façon d'enregistrer et de récupérer les attributs importants, telle que l'utilisation de LDIFDE ou d'un autre modèle de sauvegarde et de restauration. Certains produits de récupération de données Active Directory tiers proposent un mécanisme automatisé de sauvegarde et de restauration des attributs qui ne sont pas enregistrés dans l'objet tombstone, ni récupérés à partir de cet objet.

Réanimation des objets à partir du contexte de nommage de configuration
La réanimation des objets tombstone souffre d'une autre restriction importante : en général vous ne pouvez pas réanimer des objets qui ont été supprimés du contexte de nommage de configuration. Ces objets sont soumis à des règles spéciales concernant le déplacement et la modification du nom, définies par l'attribut systemFlags de l'objet. Sauf indication contraire de l'attribut systemFlags, les objets du contexte de nommage de configuration ne peuvent pas être déplacés ou renommés, ce qui signifie que leurs objets tombstone ne peuvent pas être réanimés. Active Directory applique certaines valeurs pour l'attribut systemFlags lorsqu'il crée des objets de classes spécifiques, tel que définies à la figure 11. Notez qu'Active Directory applique l'opération logique au niveau du bit OR à ces valeurs en combinaison avec n'importe quelle valeur de systemFlags spécifiée dans l'opération d'ajout. De cette façon, même si l'application spécifie une valeur différente pour l'attribut systemFlags, les bits nécessaires sont correctement définis.
Figure 11 Paramètres par défaut de systemFlags (Close Figure 11)

Classe | Paramètre par défaut
serveur | FLAG_DISALLOW_MOVE_ON_DELETE FLAG_CONFIG_ALLOW_RENAME FLAG_CONFIG_ALLOW_LIMITED_MOVE
site | FLAG_DISALLOW_MOVE_ON_DELETE
serversContainer | FLAG_DISALLOW_MOVE_ON_DELETE
nTDSDSA | FLAG_DISALLOW_MOVE_ON_DELETE
siteLink | FLAG_CONFIG_ALLOW_RENAME
siteLinkBridge | FLAG_CONFIG_ALLOW_RENAME
nTDSConnection | FLAG_CONFIG_ALLOW_RENAME
Les seuls objets du contexte de nommage de configuration que vous pouvez réanimer en temps normal sont les objets serveur. Il est intéressant de constater que, lorsque Active Directory supprime un objet serveur, son objet tombstone n'est pas déplacé vers le conteneur CN=Deleted Objects pour le contexte de nommage de configuration ; l'objet tombstone reste simplement à l'endroit où se trouve l'objet. Ceci permet au vérificateur de cohérence des données, un processus chargé du calcul de la topologie de réplication d'Active Directory, de récupérer automatiquement après certains scénarios dans lesquels les objets serveur supprimés risquent d'entraver une réplication correcte. Donc si vous essayez de réanimer un objet serveur, souvenez-vous que vous ne le trouverez pas dans le conteneur CN=Deleted Objects.

Réanimation dans votre plan de récupération
La réanimation des objets tombstone doit constituer un élément essentiel de votre boîte à outils de récupération de données. Ce mécanisme est le seul moyen de récupérer des objets supprimés sans déconnecter un contrôleur de domaine et, tout aussi important, le seul moyen de récupérer les informations d'identité d'un objet supprimé. Il résout habilement le problème de la recréation d'un utilisateur ou d'un groupe supprimé et de la réorganisation de toutes les anciennes références ACL.
Mais la réanimation des objets tombstone est une solution incomplète. Vous devez fournir votre propre mécanisme de récupération des attributs qu'Active Directory ne conserve pas dans les objets tombstone et votre capacité de récupération des objets supprimés du contexte de nommage de configuration est limitée. N'oubliez pas que si vous ne choisissez pas de réanimer un utilisateur ou un groupe supprimé, vous devrez toujours récupérer les appartenances aux groupes, ainsi que les autres attributs liés dont vous pouvez avoir besoin.

Gil Kirkpatrickest directeur technique chez NetPro et développe des logiciels pour Active Directory depuis 1996. Avec Guido Grillenmeier, qui travaille chez HP, il anime des ateliers consacrés à la récupération après incident Active Directory, qui connaissent un grand succès. Gil est également le fondateur de Directory Experts Conference (www.dec2007.com).


 Communications: Connexion des utilisateurs avec Office&#160;Communications&#160;Server&#160;2007
Communications Alan Maddison

Connexion des utilisateurs avec Office Communications Server 2007
Vue d'ensemble:
  • Architecture d'Office Communications Server
  • Fonctionnalités de conférence
  • Enterprise Voice
  • Présence diversifiée

La communication unifiée est désormais une réalité. Le lancement imminent d'Office Communications Server 2007 va révolutionner les services offerts jusqu'à présent par Live Communications Server 2005. Outre des améliorations au niveau de l'architecture et de l'administration, Office
Communications Server 2007 inclut un nouveau client, Office Communicator. Il comprend également de nouvelles fonctionnalités améliorées, telles que Enterprise Voice, la conférence Web sur site, la présence diversifiée et la messagerie instantanée, sans oublier la fédération. Ensemble, ces fonctionnalités constituent la plate-forme de la stratégie de communications unifiées de Microsoft®, et permettront d'améliorer la productivité et la collaboration à distance.
Cette mise à jour inclut également une interface standard avec le composant logiciel enfichable MMC (Microsoft Management Console). La figure 1 illustre l'une des nouvelles améliorations de gestion pour les compteurs de performances.
Figure 1 Le nouveau composant logiciel enfichable MMC inclut des compteurs de performances.
Figure 1 Le nouveau composant logiciel enfichable MMC inclut des compteurs de performances.
Le nouvel Office Communications Server 2007 est disponible dans deux éditions : Standard et Enterprise. Office Communications Server 2007 Standard est idéal pour les déploiements impliquant moins de 10 000 utilisateurs. Dans un déploiement type de l'édition Standard, un serveur frontal unique héberge tous les services.
Pour les plus grands déploiements, l'édition Enterprise peut être déployée dans une configuration consolidée ou étendue. Dans une topologie consolidée, tout le matériel est rassemblé dans un pool unique de serveurs frontaux. Pour optimiser l'évolutivité, vous pouvez utiliser la configuration étendue, qui permet d'utiliser des serveurs Web dédiés exécutant les Services Internet (IIS), la téléconférence Web et les serveurs de conférence audio/visuelle (A/V) en dehors du pool de serveurs frontaux de l'entreprise. La figure 2 illustre une topologie de configuration étendue.
Figure 2 Topologie de configuration étendue
Figure 2 Topologie de configuration étendue

Architecture
L'architecture d'Office Communications Server 2007 repose sur des serveurs de base : serveurs frontaux, serveurs de périphérie et serveurs d'applications. Les serveurs frontaux assurent l'authentification des utilisateurs, la gestion des carnets d'adresses, la gestion de la présence, la gestion des conférences et l'hébergement d'applications, ainsi que la gestion des signaux entre les serveurs et les clients, la gestion des supports (y compris le partage de fichiers), ainsi que le routage des messages instantanés et le trafic de téléconférence.
La fonctionnalité de téléconférence de base d'Office Communications Server 2007 est fournie par une série de serveurs intégrés, également appelés MCU (unité de contrôle multi-point). La figure 3 propose un récapitulatif de ces serveurs et de leurs rôles.
Figure 3 Les serveurs de conférence et leurs fonctions (Close Figure 3)

Serveur de conférence (MCU) | Fonctionnalités prises en charge
Messagerie instantanée | Active la messagerie instantanée de groupe en routant le trafic de messagerie instantanée vers les participants. Intégré au serveur frontal ; ne peut pas être installé sur un serveur distinct.
Téléphonie | Active la prise en charge de la tonalité entrante ou sortante. Intégré au serveur frontal ; ne peut pas être installé sur un serveur distinct.
Web | Responsable de la fonctionnalité de collaboration, telle que la mise en place de tableaux blancs, le partage d'applications et les séances de Questions-Réponses. Ce serveur prend également en charge le partage de documents Office et les présentations PowerPoint. Peut être installé sur le serveur frontal ou dans le pool de configuration étendu sur un serveur distinct.
A/V | Utilisé pour le mixage et le relais A/V multigroupe sur IP. Peut être installé sur le serveur frontal ou dans le pool de configuration étendu sur un serveur distinct.
Une autre fonction importante du serveur frontal réside dans l'hébergement du serveur de carnet d'adresses. Toute personne connaissant Live Communications Server 2005 SP1 reconnaîtra ce service. Dans Office Communications Server 2007, il joue un rôle central et n'est plus un composant facultatif. Le serveur de carnet d'adresses comprend deux composants : le service de carnet d'adresses et le magasin de fichiers du carnet d'adresses. Ce serveur fournit les informations relatives aux contacts, que ce soit à partir de sources internes ou externes. La liste d'adresses globales et les listes de distribution d'Active Directory® et Exchange Server constituent des exemples types de sources internes. Les sources externes incluent les utilisateurs des partenaires fédérés ou des contacts publics de messagerie instantanée.
Office Communications Server 2007 améliore la connectivité des utilisateurs externes introduite dans Live Communications Server 2005 et permet aux utilisateurs externes de participer aux conférences sur site. Cette fonctionnalité supplémentaire nécessite deux nouveaux serveurs de périphérie : Le serveur Edge de conférence Web et le serveur Edge de conférence A/V. Suite à une autre modification, l'ancien serveur proxy d'accès est désormais connu en tant que serveur Edge d'accès. Les serveurs de périphérie d'Office Communications Server sont conçus pour être placés dans votre périmètre réseau (le sous-réseau filtré) et assurer la connectivité critique des utilisateurs externes. La figure 4 propose un résumé des rôles des serveurs de périphérie et de leur domaine d'application.
Figure 4 Rôles des serveurs de périphérie (Close Figure 4)

Serveur | Fonctionnalités prises en charge
Serveur d'accès Edge | Fédération ; connectivité d'utilisateur distant ; Connectivité PIC.
Serveur Edge de conférence Web | Conférence Web externe.
Serveur Edge A/V | Conférences A/V et appels A/V point à point avec des utilisateurs externes.
Serveur proxy inversé | Expansion de groupes, téléchargement du fichier de carnet d'adresses, accès au contenu de la réunion à partir de la conférence Web. Ne constitue pas réellement un rôle Office Communications Server, mais offre une fonctionnalité essentielle. Isa Server 2006 peut également fournir une fonctionnalité de proxy inversé.
Outre les serveurs intégrés décrits précédemment, Office Communications Server bénéficie de divers serveurs d'applications pour exécuter des fonctions essentielles telles que l'authentification, le stockage des métadonnées de conférence et la mise en place d'une fonctionnalité de liste de distribution. Les serveurs d'applications couramment utilisés avec Office Communications Server incluent IIS, les serveurs de certificats, les serveurs de catalogue global de votre environnement Active Directory, SQL Server® 2005, Exchange Server 2007 et les serveurs de fichiers.
IIS est utilisé pour fournir l'accès au contenu des réunions, les mises à jour du carnet d'adresses, l'expansion des groupes de distribution d'Active Directory pour la messagerie instantanée et l'expansion des listes de distribution d'Outlook® pour les utilisateurs externes, et pour faciliter la communication sous-jacente entre les composants d'Office Communications Server.
Les serveurs de certificats jouent un rôle crucial dans Office Communications Server en termes de sécurisation des communications client/serveur et serveur/serveur. Si vous utilisez un serveur de certificats d'entreprise interne, tous les clients et les serveurs internes doivent approuver l'autorité de certification (CA). En tant que tel, chaque chaîne de certificat de certification CA doit être installée dans le magasin Racine de confiance sur chaque ordinateur. Si vous utilisez les services de fédération d'Office Communications Server, votre organisation partenaire doit faire de même.
L'authentification des participants à la conférence est prise en charge par les serveurs de catalogue global dans votre environnement Active Directory. Pour les utilisateurs internes et fédérés, vos serveurs de catalogue global utiliseront le protocole Kerberos pour l'authentification. Les utilisateurs distants de votre entreprise emploieront leurs informations d'identification Active Directory avec NTLM. Les utilisateurs anonymes seront authentifiés avec l'authentification Digest.
SQL Server 2005 est utilisé pour gérer les données d'état sur les conférences, l'inscription des utilisateurs et les informations de présence. En cas de défaillance, vous pouvez restaurer rapidement une réunion en utilisant les données stockées dans SQL Server, ce qui offre une méthode rapide et fiable de récupération sans perte de contenu.
Exchange Server 2007 et ses fonctionnalités de messagerie constituent un complément important d'Office Communication Server 2007 en incluant des fonctionnalités de messagerie vocale et d'automatisation.
Les serveurs de fichiers permettent de stocker les données requises par les clients. Par exemple, les fichiers physiques requis par les clients lors du téléchargement du carnet d'adresses sont stockés sur un serveur de fichiers. De même, le contenu de réunion supplémentaire est également stocké sur un serveur de fichiers.
L'architecture de protocole sous-jacente d'Office Communications Server 2007 repose sur un mélange de protocoles IP (Internet Protocol) et Microsoft standard. Par exemple, le protocole SIP (Session Initiation Protocol) est largement utilisé pour des fonctionnalités telles que la messagerie instantanée, la conférence et les abonnements de présence. Les protocoles utilisés par les divers composants d'Office Communications Server offrent le maximum de puissance et de souplesse. La figure 5 propose un résumé des protocoles de base et de leur usage.
Figure 5 Les protocoles et leur usage (Close Figure 5)

Protocole | Fonctionnalités prises en charge
Protocole HTTP (Hypertext Transfer Protocol) | Accès client, téléchargement du contenu de la réunion et données du carnet d'adresses. Également utilisé pour les communications entre les serveurs de conférence et Focus, un composant d'Office Communications Server.
Protocole SIP (Session Initiation Protocol) | Création et gestion de session par les divers composants d'Office Communications Server, notamment Enterprise Voice, la messagerie instantanée, les serveurs de conférence et la présence diversifiée.
Protocole CCCP (Centralize Conference Control Protocol) | Protocole personnalisé utilisé pour établir et contrôler les conférences et les clients de conférence.
Protocole PSOM (Persistent Shared Object Model) | Protocole personnalisé utilisé pour le transport de contenu de conférence Web, notamment les clés de sécurité et les rôles et droits utilisateur.
Protocole RTP (Real-Time Transport Protocol) | Remise de données en temps réel. Dans Office Communications Server 2007, fournit le mécanisme de transport d'Enterprise Voice et de la conférence d'A/V.
Protocole SRTP (Secure Real-Time Transport Protocol) | Services de sécurité tels que le chiffrement, l'authentification de message et la protection de l'intégrité des données RTP. Dans Office Communications Server 2007, est utilisé pour le transport sécurisé du contenu audio et vidéo vers les périphériques multimédias, tels que les microphones et les haut-parleurs.
Protocole RTCP (Real-Time Transport Control Protocol) | Utilisé avec SRTP pour transmettre des informations sur la qualité du signal des sessions de conférence A/V entre les périphériques multimédias.

Enterprise Voice
Enterprise Voice est l'implémentation Microsoft du protocole de téléphonie VoIP (Voice over Internet Protocol) et constitue l'ajout le plus important à ce produit. Basé sur une implémentation qui utilise le protocole SIP (Session Initiation Protocol) pour la signalisation et RTP (Real Time Protocol) pour le trafic vocal, Enterprise Voice permet d'envoyer et de recevoir des appels de PC à PC ou vers tout type de téléphone. De plus, Enterprise Voice fournit des fonctionnalités telles que le contrôle, le routage et la normalisation des numéros d'appel. Il offre une prise en charge du réseau téléphonique public commuté (RTPC) et de l'interopérabilité avec les autocommutateur privés (PBX) qui prennent en charge le protocole SIP ou CSTA (Computer-Supported Telecommunications Applications), ou qui servent d'interface directe pour l'API d'Office Communications Server 2007.
Office Communications Server 2007 peut être déployé sans modification significative de votre infrastructure vocale, tout en offrant des avantages significatifs. En tant que tel, Enterprise Voice prend en charge trois configurations de déploiement : SIP–PBX, SIP–IP–PBX et IP-RTPC.
Dans la configuration SIP–PBX, tous les appels distants sont contrôlés par le PBX et vous conservez vos téléphones existants. Cette intégration est rendue possible par la passerelle RCC (Remote Call Control) et CSTA.
La configuration SIP–IP-PBX exploite la passerelle IP-RTPC pour contourner CSTA, ce qui permet au client Office Communicator de composer des numéros et de contrôler le téléphone IP-PBX. Si vous n'avez pas de postes de téléphone, vous pouvez configurer Office Communicator en tant que « téléphone virtuel ».
Le déploiement d'Office Communications Server 2007 avec le composant IP-RTPC permet de router les contrôles d'appel vers les serveurs frontaux. Office Communicator peut servir d'interface pour les points de terminaison VoIP ou les SIP tiers certifiés par Microsoft (dans de nombreuses organisations ce point de terminaison est généralement un téléphone) pour émettre et recevoir des appels sur Internet.
Les passerelles multimédias sont des passerelles de fournisseurs tiers qui convertissent les signaux et les médias entre protocole VoIP et le RTPC. Office Communications Server 2007 prend en charge trois types de passerelles multimédias, qui peuvent être classés comme basique, avancé et hybride. Pour prendre en charge des passerelles non avancées, Office Communications Server 2007 propose le rôle Serveur de médiation, qui fournit la fonctionnalité de traduction multimédia et de protocole critique. L'intégration de bureau distant est également possible grâce aux composants disponibles avec Office Communications Server.
Comme pour les autres composants d'Office Communications Server 2007, Enterprise Voice repose sur des serveurs de périphérie pour offrir la connectivité aux utilisateurs externes. En particulier, le serveur d'accès Edge est indispensable (pour son rôle dans le signalement SIP) pour les utilisateurs situés hors du périmètre d'entreprise, tandis que le serveur Edge A/V permet aux utilisateurs externes qui accèdent aux services vocaux ou vidéo de se connecter par l'intermédiaire de services réseau de périmètre, tels que votre pare-feu et l'implémentation NAT (Network Address Translation).
Á terme, Enterprise Voice prendra en charge un grand nombre de clients, mais pour l'heure, le client recommandé pour Enterprise Voice est la dernière version d'Office Communicator. Par ailleurs, Microsoft et ses partenaires ont annoncé des projets de matériel téléphonique VoIP intégré directement avec Office Communications Server.
Enterprise Voice s'intègre également avec le rôle Messagerie unifiée d'Exchange Server 2007, offrant ainsi une interface unique pour la messagerie vocale, la messagerie électronique, les calendriers, les contacts et la réception de télécopies, accessible à partir d'un téléphone via Outlook Voice Access ou d'un ordinateur. De plus, la messagerie unifiée fournit des services de standard automatique, qui permettent d'implémenter un système de menus téléphoniques automatisé.

Présence diversifiée
Le concept de présence, que vous connaissez peut être déjà si vous avez utilisé Live Communications Server 2005 a été étendu et amélioré dans Office Communications Server 2007. En général, la présence est associée à l'état et à la disponibilité des utilisateurs. Dans Office Communications Server, l'infrastructure de base a créé un environnement plus riche, avec davantage de granularité pour la configuration des informations de présence.
Les utilisateurs peuvent désormais choisir parmi six modes d'état : l'état peut être défini sur En ligne, Occupé(e), Ne pas déranger, De retour dans une minute, Absent(e) ou Apparaître hors connexion. Les utilisateurs peuvent également personnaliser cet état avec des informations supplémentaires. Par exemple, si un état utilisateur est défini sur Ne pas déranger, l'utilisateur peut fournir des informations indiquant pourquoi il ne doit pas être dérangé.
La présence diversifiée permet également aux utilisateurs de filtrer les informations qui sont présentées aux autres utilisateurs grâce à de cinq niveaux de présence facultatifs : Personnel, Équipe, Lieu de travail, Public et Bloquer. Ces niveaux fournissent une approche hiérarchique de la gestion de présence. Par exemple, le niveau de présence Personnel offre davantage de souplesse aux contacts en autorisant des actions telles que les contacts par messagerie instantanée, même lorsque l'état de l'utilisateur est défini sur Occupé(e). Les niveaux de présence contrôlent également la quantité d'informations qui sont présentées aux contacts.
De plus, lors de l'utilisation d'Office Communicator, un utilisateur peut définir son état d'emplacement, qui peut être un emplacement personnalisé ou l'un des choix par défaut, à savoir la maison ou le bureau. Les informations d'emplacement sont mises à la disposition des contacts classés en tant que Personnel ou Équipe.
Les améliorations de la présence sont importantes et feront leurs preuves en termes d'uniformisation des communications ; toutefois c'est l'infrastructure sous-jacente d'Office Communications Server et le moteur de présence qui auront le plus gros impact sur les organisations. Par exemple, Office Communications Server 2007 est fourni avec le composant WebPart Member, un composant WebPart d'Office SharePoint Server 2007 qui permet aux utilisateurs d'afficher la présence des utilisateurs associés à un site Web SharePoint ou un portail. Ce composant WebPart peut être facilement ajouté à vos sites SharePoint pour faciliter la diffusion des informations de présence dans votre infrastructure de collaboration critique.
Les informations de présence sont intégrées dans l'ensemble de la suite d'applications Microsoft® Office 2007 grâce à l'utilisation d'espaces de travail de documents et de boutons d'action de balise active. Par exemple, les boutons d'action de balise active peuvent afficher les informations d'état, contact et de calendrier des utilisateurs. Les utilisateurs peuvent utiliser les actions de balise active pour partager le travail, planifier des réunions ou lancer une conversation avec la messagerie instantanée.

Conférence sur site
Les conférences sur site constituent une autre amélioration majeure d'Office Communications Server 2007. La possibilité d'héberger des conférences en temps réel avec des utilisateurs internes ou externes (anonymes ou fédérés) sera sans aucun doute un outil précieux pour de nombreuses organisations. Ces conférences peuvent être planifiées ou improvisées et peuvent inclure les conférences par messagerie instantanée, les conférences A/V et les conférences Web, ainsi que d'autres outils de collaboration, tels que le partage de fichiers, les tableaux blancs, l'annotation de diapositives, l'interrogation des participants et les séances de Questions-Réponses. Office Communications Server prend également en charge la transition d'un type de conférence à l'autre. Par exemple, un utilisateur peut choisir d'ajouter la collaboration à une session de messagerie instantanée existante et créer une conférence improvisée.
Office Communicator est le recommandé pour la conférence. Toutefois, Office Communications Server 2007 prend également en charge Office Live Meeting 2007 et le complément Office Live Meeting pour Outlook 2007. Office Communicator 2007 prend en charge la messagerie instantanée, la participation aux séances A/V, le partage d'applications, les tableaux blancs et le transfert de fichiers. Office Live Meeting 2007 inclut la prise en charge de la participation aux conférences, ainsi que la planification et l'enregistrement des séances, l'interrogation des participants et les séances de Questions-Réponses.
Le complément Office Live Meeting 2007 pour Outlook 2007 inclut la prise en charge des tâches de conférence avec Outlook 2007, ainsi que la possibilité de désigner des participants comme participants ou présentateurs et d'envoyer des invitations distinctes aux différents rôles. De plus, les utilisateurs dont le rôle est Organisateur, Présentateur ou Participant, peuvent également être classés comme appartenant à un groupe d'utilisateurs internes ou externes en fonction de leur emplacement et de leurs informations d'identification. Les utilisateurs internes disposent d'une ouverture de session Active Directory et sont sur le réseau local de l'entreprise. Les utilisateurs externes sont répartis dans trois catégories : Distant, Fédéré et Anonyme.
Les utilisateurs distants correspondent à toute personne disposant d'un compte Active Directory au sein d'une organisation. Cela peut inclure les télétravailleurs ou les sous-traitants. Tous les utilisateurs distants peuvent héberger, participer et présenter des conférences.
Les utilisateurs fédérés ont des informations d'identification définies lors de l'établissement d'une fédération dans Office Communications Server. Les utilisateurs fédérés peuvent assister à des réunions et tenir le rôle de présentateur, mais ils ne peuvent pas organiser de réunion.
Les utilisateurs anonymes appartiennent au groupe le plus restreint. Ils peuvent uniquement assister aux réunions auxquelles ils ont été invités.
Pour obtenir une couche de sécurité supplémentaire pour une réunion donnée, vous pouvez spécifier différents types de paramètres de contrôle d'entrée. Office Communications Server 2007 propose les types d'authentification suivants : authentification ouverte, authentification fermée et anonyme.
Une réunion à authentification ouverte permet à tout utilisateur distant ou interne disposant d'informations d'ouverture de session Active Directory de participer. Tout utilisateur fédéré peut également participer. Une réunion à authentification fermée limite la réunion aux utilisateurs invités par l'organisateur. Les utilisateurs fédérés ne peuvent pas participer à la réunion.
Une réunion anonyme est ouverte à toute personne qui reçoit une invitation. Pour participer, un utilisateur doit appuyer sur une touche de conférence et se soumettre à l'authentification Digest afin de faire vérifier ses informations d'authentification. Un utilisateur anonyme ne peut être que participant, à moins d'être promu au rôle de présentateur par la suite. Certains des paramètres disponibles sont illustrés à la figure 6.
Figure 6 Paramètres de réunion
Figure 6 Paramètres de réunion

Numérotation
En rationalisant les communications, en intégrant différents médias de communication et en donnant le contrôle à l'utilisateur, Office Communications Server 2007 a le potentiel de révolutionner le mode de travail de votre entreprise. Le concept de communications contextuelles, où les informations de présence et un moyen de communication sont intégrés dans l'application, sera le ferment de cette révolution. Si vous n'avez pas encore expérimenté Office Communications Server 2007, n'attendez plus.
Pour obtenir plus d'informations sur Office Communications Server 2007 et essayer la version bêta, consultez le TechCenter TechNet Office System à l'adresse technet.microsoft.com/en-us/office/bb267356.aspx. Consultez également le blog de l'équipe du groupe Unified Communications sur blogs.technet.com/uc.

Alan Maddison est consultant senior chez MTI Technology Corporation. Ses domaines de spécialisation sont Active Directory, Exchange Server et la virtualisation.


 Le mot du r&#233;dacteur en chef: Cursus Informaticus
Le mot du rédacteur en chef
Cursus Informaticus
Joshua Trupin

Depuis que nous créons des magazines, nous concevons notre numéro de septembre sur le thème « rentrée des classes ». Il va sans dire que nous nous rendons bien compte que ce calendrier n'est pas toujours exact. Par exemple, la plupart des enfants reprennent l'école fin août aux États-Unis. Sans oublier toutes ces personnes qui semblent n'avoir jamais quitté les bancs de l'école.
Quoi qu'il en soit, pour la plupart d'entre nous, septembre n'est plus très loin. Or, TechNet Magazine est l'institution d'enseignement supérieur par excellence qui délivre le diplôme de pro de l'informatique. Bon d'accord, on exagère un peu. Il n'empêche que vous trouverez effectivement de nombreuses sources de formation dans notre magazine. Ce mois-ci, nous avons élaboré un cursus complet.
Comme toute institution d'enseignement supérieur qui se respecte, nous offrons tout un éventail d'options, de cours d'introduction au code SQL pour les amateurs de script (dans « Hé, vous le scripteur ! ») à une étude des outils de gestion d'Active Directory.
Nos études de niveau intermédiaire incluent une formation diplômante à Windows Vista. Vous apprendrez tout d'abord à déployer Windows avec BDD 2007 (Business Desktop Deployment). Ensuite, après avoir déployé Windows Vista dans votre entreprise, vous verrez comment mettre en place des sauvegardes régulières sur vos systèmes et serez initié aux technologies clés disponibles dès aujourd'hui.
Maintenant que vous vous rapprochez du niveau requis pour le diplôme de pro de l'informatique, vous pouvez bénéficier de notre cours avancé sur Active Directory. Si vous vous êtes déjà interrogé sur la vie des objets après la mort, mais n'avez pas la patience d'attendre notre édition spéciale d'Halloween, le numéro de ce mois-ci vous donnera le grand frisson.
TechNet Magazine ne constitue bien sûr que l'une des voies de formation disponibles. Le site Microsoft TechNet vous propose davantage de possibilités de formation à distance. TechNet propose des centaines de webcasts destinés aux professionnels de l'informatique sur les technologies clés, y compris des démonstrations sur la façon dont le service informatique de Microsoft traite la technologie en interne. Les offres de webcasts sont classées par type de public (professionnels de l'informatique, cadres, etc.) et par technologies. Elles sont également classées par niveau de difficulté, exactement comme dans un programme scolaire.
Pour vous donner un exemple, TechNet Magazine offre ce mois-ci plusieurs articles de fond sur Active Directory. Mais peut-être n'êtes-vous pas encore tout à fait prêt à en faire le meilleur usage possible. Visionnez alors les webcasts TechNet et notamment la présentation de niveau 200 appelée « Principes de base d'Active Directory » (msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032295120 ).
Les opportunités de formation actuelles prennent de nombreuses formes. Que ce soit dans ce magazine ou sur Internet, nous faisons tout notre possible pour vous communiquer les informations dont vous avez besoin. Après avoir lu certains de nos articles, pourquoi ne pas consulter le blog TechNet Magazine (blogs.technet.com/tnmag) pour une petite discussion entre deux classes autour d'un bon café ?
—Joshua Trupin

Remerciements aux experts techniques Microsoft suivants : Paul Bowden, Justin Hall, Anand Lakshminarayanan, Eduardo Laureano, Mike Lewis, Tim Mintner, Michael Murgolo, Mark Russinovich et Jim Truher.


 Lettres: R&#233;ponses &#224; vos questions
Lettres
Réponses à vos questions

PsTools
Dans la rubrique Histoires de Bureau de mars 2007, Wes Miller aborde les utilitaires PsTools (« Introduction à PsTools », voir technetmagazine.com/issues/2007/03/DesktopFiles). J’ai un peu de mal à faire fonctionner ces utilitaires exceptionnels. PsLoggedOn m’intéresse tout particulièrement. Pourriez-vous s’il vous plaît m’expliquer comment au juste mettre ces formidables utilitaires dans un dossier sur mon chemin ? Un exemple serait très utile.
—Tim

Pour commencer, la meilleure chose à faire est de télécharger le package PsTools complet (download.sysinternals.com/Files/PsTools.zip) dans un répertoire de travail (par exemple, c:\toolbox). Une fois que vous avez extrait le fichier ZIP dans ce répertoire, les outils sont prêts à être utilisés. Si vous souhaitez ajouter ce répertoire à votre CHEMIN pour pouvoir exécuter les outils de n’importe où, il vous suffit d’exécuter la commande suivante à partir d’une invite de commande, en remplaçant votre répertoire de travail par c:\toolbox:
SET PATH=%PATH%;c:\toolbox

Éloge de Robocopy
Avant que votre article de novembre 2006 sur l’Interface graphique de Robocopy ne paraisse (technetmagazine.com/issues/2006/11/UtilitySpotlight), notre support technique était bloqué et ne trouvait aucun moyen de conserver les horodateurs des fichiers déplacés depuis des dossiers réseau vers des magasins SharePoint®. Robocopy est un excellent outil !
—Cristino

Vérification de sous-clés de Registre
Ces deux dernières semaines, j’ai cherché comment tester si la valeur pour la sous-clé de Registre EnableLUA est activée ou non. Lorsqu’elle ne l’est pas, le contrôle de compte utilisateur est désactivé. C’est ce que nous souhaitons, pour pouvoir installer des programmes automatiquement dans notre laboratoire de test sans avoir à se connecter avec un compte administrateur pour obtenir la confirmation. Nous voulons mettre ce test au début de tous nos scripts d’installation puis exécuter un script qui modifie la valeur de EnableLUA de 1 (activé) à 0 (désactivé) avant d’exécuter le script. Je n'ai toutefois pas eu jusqu'ici l'illumination qui me permettrait de faire fonctionner ce test. Toute aide serait vraiment la bienvenue.
—Derek

Voici un script de base pour lire une clé de Registre, vérifier la valeur et la modifier si nécessaire. Cet exemple lit la touche HKLM\Software\Microsoft\Test\TestKey, vérifie si la valeur est 1, et le cas échéant, modifie la valeur en 0 ; si la valeur n’est pas 1, le script s’arrête :
On Error Resume Next
Set WSHShell =  Wscript.CreateObject _
    ("Wscript.Shell")
RegLoc = _
    "HKLM\Software\Microsoft\Test\TestKey"
KeyValue = WSHShell.RegRead(RegLoc)
If (KeyValue = "1") then
  WSHShell.RegWrite RegLoc,"0"
end If
Wscript.Quit
Comme toujours, soyez très prudent lorsque vous utilisez des scripts qui modifient le Registre (surtout dans un cas comme celui-ci).

ReadyBoost
Pourriez-vous m’expliquer ReadyBoost un peu plus clairement ? Si je comprends bien, ReadyBoost agit comme un tampon entre la mémoire vive (RAM) d’un ordinateur et le disque dur, mais les données sont écrites simultanément. Est-ce que cela signifie que les performances vont diminuer au fur et à mesure que le système copie les données en double ? Comment tester les performances du système avec et sans ReadyBoost ?
—Alex

Le but de ReadyBoost est de permettre à la mémoire flash (clé USB etc.) de se servir d’une mémoire cache temporaire, ce qui augmente la quantité (souvent plus chère) de mémoire vive (RAM) traditionnelle. ReadyBoost n’écrit pas nécessairement les mêmes données sur la mémoire flash et le disque dur simultanément. Il se comporte plutôt comme une couche de mise en cache intermédiaire entre la RAM et le disque. Mark Russinovich explique ceci plus en détails dans son article de mars 2007 « Dans le noyau de Windows Vista : 2ème partie » où il dit :
« Une fois que le service ReadyBoost a initialisé la mise en cache, le pilote de périphérique Ecache.sys intercepte toutes les lectures et écritures vers des volumes du disque dur local (C:\, par exemple) et copie toutes les données écrites dans le fichier de mise en cache que le service a créé...
...Lorsque ReadyBoost voit des lectures aléatoires qui peuvent être satisfaites à partir du cache, il les gère à partir de cet endroit, mais comme les disques durs ont un meilleur accès en lecture séquentiel que la mémoire flash, il laisse les lectures qui font partie de modèles d’accès séquentiel atteindre le disque directement, même si les données sont dans le cache. »
Vous pouvez lire le reste de l’article de Mark en ligne à l’adresse suivante : technetmagazine.com/issues/2007/03/VistaKernel.

Téléchargement de Windows PE
Il semble y avoir une certaine incohérence dans la rubrique Lettres du numéro de mai 2007. Dans la réponse à la première question, « Création d’images », vous dites : « Vous pouvez créer et personnaliser des images Windows® PE 2.0 grâce aux outils trouvés dans le WAIK... » Ceci implique que Windows PE est inclus dans les outils et peut être téléchargé.
Dans la dernière question, « Obtention de Windows PE » vous répondez cependant que « Windows PE est disponible au titre d’avantage de Software Assurance... » Je pense que votre première réponse est bonne, mais que la seconde est obsolète.
—Xihui

Windows PE 2.0 est disponible en tant que téléchargement dans le Kit d'installation automatisée (Windows AIK). Ses règles de licence sont différentes de celles de Windows PE 1.6 (la version précédente mentionnée l’année dernière dans « Prise en main de Windows PE ». Vous pouvez lire cet article à l’adresse suivante : technetmagazine.com/issues/2006/09/WindowsPE). Windows PE 1.6 est uniquement disponible dans le cadre du contrat Software Assurance.

Sécurité Windows PowerShell
Windows PowerShell™ a donné lieu à de nombreuses discussions. De nombreux articles vendent sa syntaxe de type UNIX, la simplicité de formatage de la sortie de commande, et bien d'autres choses encore, mais je n’ai jamais rien entendu sur les problèmes en matière de sécurité lors du déploiement de Windows PowerShell dans le centre de données.
Quels sont les problèmes de sécurité qui entrent en jeu lors du déploiement ou de l’exécution d’un environnement de ligne de commande aussi puissant que Windows PowerShell sur les serveurs de production ?
—Carlos

Nous sommes tout à fait d’accord avec vous, la sécurité autour de Windows PowerShell est un sujet important. À vrai dire, notre chroniqueur de Windows PowerShell, Don Jones, approfondit ce sujet dans ce numéro de TechNet Magazine. Vous pouvez également jeter un coup d’œil sur deux livres importants qui ont récemment été publiés : Windows PowerShell in Action de Bruce Payette (Manning Publications, 2007) et Windows PowerShell : TFM de Don Jones et Jeffrey Hicks (SAPIEN Press, 2007). Ces deux livres analysent Windows PowerShell en profondeur et comportent tous deux des chapitres complets dédiés à la sécurité.

Meilleures pratiques SQL
Je ne suis pas du tout d’accord avec vos recommandations concernant Best Practices Analyzer (BPA) et les objets de qualification de schéma (voir technetmagazine.com/issues/2007/05/SQLQA). SQL Server™ 2005 doit encore résoudre des schémas (par opposition aux propriétaires dans SQL Server 2000, que l’auteur appelle à tort des « schémas »). L'ordre de résolution pour SQL Server 2005 est bien documenté dans Books Online (BOL).
Ainsi, la qualification d’objets fait toujours partie des meilleures pratiques pour éviter les erreurs d’ambiguïté et pour économiser les cycles de processeur de l’optimiseur résolvant les noms d’objet. La recommandation figurant dans l'article semble en contradiction avec le livre blanc de Microsoft « Problèmes de la compilation par lot, de la recompilation et de la mise en cache des plans dans SQL Server 2005 ».
—Mike

Nous sommes allés à la source pour trouver la réponse : David Browne, collaborateur de notre rubrique Forum aux questions sur SQL et architecte technologique pour le Microsoft Technology Center de Dallas (Texas). Voici ses propos :
Les meilleures pratiques sont un sujet sur lequel les gens peuvent êtres et seront en désaccord. En ce qui concerne les performances en particulier, les perceptions des uns et des autres diffèrent sur ce qui constitue une différence de performances significative et ce que peut être une optimisation qui en vaut la peine.
Par exemple, je n’ai jamais envisagé d’écrire des requêtes d’une certaine manière pour économiser les cycles de processeur de l’optimiseur pendant la compilation, et je doute que cela ait des conséquences significatives sur une charge de travail réaliste.
En revanche, la réduction de la fréquence des compilations en favorisant la réutilisation des plans de requêtes donne lieu à une optimisation des performances qui est généralement acceptée.

WinPE
Pour l’installation de systèmes d’exploitation, nous utilisons le pack de déploiement de système d’exploitation (OSDFP) pour Systems Management Server (SMS). Maintenant que Windows Vista® est sorti, nous souhaitons l’installer par l’intermédiaire de OSDFP et nous nous sommes mis à niveau avec la dernière version. Quelle est la version de Windows PE fournie avec l’OSDFP le plus récent ?
Auparavant, nous créions un fichier .iso d’image d’installation et de le copier dans les Services d’installation à distance (RIS). Nous avons ensuite utilisé l’option de démarrage réseau pour mettre un autre ordinateur en route. Mais nous avons mis RIS à niveau vers les Services de déploiement Windows (WDS), lesquels ne prennent en charge un fichier Windows Imaging (WIM) qu’en tant qu’image de démarrage. Comment pouvons-nous créer une image WIM par l’intermédiaire d’une option d’installation à partir du pack de déploiement de système d'exploitation ?
—Vasishta

La version de Windows PE n’a pas été mise à jour avec la dernière version du OSDFP, qui comprend encore la version 1.5 (également connue sous le nom de Windows PE 2004). Bien que Windows PE n’ait pas été mis à jour, le déploiement de Windows Vista est maintenant entièrement pris en charge dans la dernière version de OSDFP.
Le meilleur moyen de créer une image de bureau facile à déployer est celui décrit dans Solution Accelerator for BDD (Business Desktop Deployment). Vous pouvez trouver tous les composants nécessaires et la documentation en ligne à l’adresse suivante : microsoft.com/technet/desktopdeployment/bdd/2007. Lisez également l’article de Michael Niehaus « Déploiement de Windows Vista avec BDD 2007 » dans ce numéro de TechNet Magazine.

Posters de Windows Server 2003
Je viens de recevoir mon TechNet Magazine de juillet 2007, et je suis enchanté d’y découvrir deux posters de Windows Server® 2008 ! Un de mes collègues a reçu un poster de Windows Server 2003 dans le numéro précédent. Savez-vous comment je pourrais obtenir la version Windows Server 2003 de ces posters, imprimée ou en PDF ?
—Jason

Nous sommes ravis que vous ayez aimé les posters de Windows Server 2008 ! Une version PDF du Windows Server 2003 est disponible en ligne à l’adresse suivante : go.microsoft.com/fwlink/?LinkID=80428. Nous n’avons créé qu’une seule version du poster Windows Server 2003.


 Bo&#238;te &#224; outils: Nouveaux produits pour les professionnels de l’informatique
Boîte à outils
Nouveaux produits pour les professionnels de l’informatique
Greg Steen

Transfert de bases de données SQL Server
xSQL Bundle Professional Edition
www.xsqlsoftware.com
Peu importe que vous vous consacriez au support d'exploitation, au développement d'applications, aux tests d'assurance qualité ou à la gestion de la configuration. Si vous êtes un professionnel de l'informatique (et je devine que c'est le cas puisque vous lisez TechNet Magazine), le transfert de bases de données SQL Server™ fait probablement partie de vos activités habituelles. Lorsque vous déplacez des données et des schémas de données, vous devez faire attention aux incohérences. Pour vous aider à les éviter, vous devez disposer d'un bon jeu d'outils pour la comparaison des schémas et la synchronisation des schémas et des données.
J'ai récemment utilisé xSQL Bundle de xSQL Software. Cette offre groupée se compose de quatre applications différentes : xSQL Object, xSQL Data Compare et leurs utilitaires de ligne de commande associés.
xSQL Object vous permet de comparer et de synchroniser les schémas de base de données. Il fournit un certain nombre d'options de comparaison pour les types et les instances d'objets que vous souhaitez comparer entre les bases de données. Cette application vous permet également de créer des instantanés de schéma, très pratiques pour la maintenance de l'historique des versions. Cette fonctionnalité facilite la restauration à un état de schéma précédent. Vous pouvez même générer des scripts de schéma avec xSQL Object,
ce qui vous permet de transporter ou d'empaqueter votre schéma de base de données.
xSQL Data Compare peut comparer et synchroniser les données contenues dans deux bases de données SQL Server. Il vous permet de choisir de comparer l'ensemble du contenu de deux bases de données ou de sélectionner une série de tables à comparer. Dans le cas où vos tables ne correspondent pas exactement, vous pouvez définir un mappage de table personnalisé pour vous assurer que les données de ces tables sont identiques. Lorsque vous synchronisez de grandes quantités de données, l'application bascule vers le mode d'insertion en bloc, ce qui permet de gagner du temps lors du processus de synchronisation.
xSQL Data Compare et xSQL Object vous permettent d'enregistrer votre espace de travail de sorte que vous ne deviez pas recréer constamment votre environnement de comparaison. La synchronisation des deux applications est transactionnelle, donc vous pouvez être sûr que toutes les opérations sont validées avec succès ou restaurées dans leur ensemble. Toutes les applications de xSQL Bundle Professional Edition prennent en charge les instances de base de données SQL Server 2000 et SQL Server 2005. Vous pouvez comparer et synchroniser les données et les objets pertinents entre les versions.
Les deux utilitaires de ligne de commande représentent probablement l'une des fonctionnalités les plus puissantes de xSQL Bundle dans la mesure où ils vous permettent d'exécuter vos tâches de comparaison et de synchronisation via n'importe quels build, processus, contrôle ou planificateur de tâches automatisées dont vous pouvez disposer. (D'après moi, l'automatisation des tâches redondantes rend toujours le travail plus facile et plus productif). Les utilitaires de ligne de commande puisent dans un fichier de configuration XML que vous pouvez créer à l'aide d'un Assistant de configuration à partir de l'interface utilisateur de l'application principale, et chaque utilitaire dispose d'un certain nombre d'options de journalisation en fichier texte pour que vous puissiez suivre les opérations qui surviennent pendant votre exécution automatisée.

Prix : xSQL Bundle Professional Edition est disponible à partir de 499 USD pour une licence utilisateur unique.
xSQL Data Compare peut synchroniser les données contenues dans deux bases de données SQL Server.
xSQL Data Compare peut synchroniser les données contenues dans deux bases de données SQL Server.

Une communication plus sécurisée
WinSSHD
www.bitvise.com
Si vous recherchez des moyens d'améliorer la sécurité au sein de votre organisation, vous pouvez envisager Secure Shell Handling 2 (SSH2) et Secure FTP (SFTP). Pour résumer, le tunnel SSH2 permet de vous connecter en toute sécurité aux services sur les ordinateurs distants. Il peut également vous aider à limiter l'exposition aux pirates informatiques potentiels en réduisant le nombre de ports d'écoute avec accès direct à l'application ouverts sur votre pare-feu. SFTP constitue une alternative à votre serveur FTP standard et utilise SSH2 pour sécuriser vos données et vos commandes.
Si ces protocoles vous paraissent intéressants, vous devriez vraiment vous pencher sur WinSSHD de Bitvise. WinSSHD est un serveur SSH2 conçu spécifiquement pour Windows.
L'installation est simple. L'application fournit un panneau de configuration intuitif pour la gestion du service WinSSHD. Ce panneau de configuration permet d'accéder à toutes les fonctions disponibles, des fonctionnalités de démarrage/arrêt de base à un affichage personnalisé du Journal des événements Windows® (où vous pouvez filtrer les événements WinSSHD). C'est également de là que vous lancez le panneau de paramètres qui vous permet de configurer les moindres détails de votre installation. Vous pouvez définir les liaisons d'interface et de port, affiner la configuration de journalisation, spécifier les méthodes de chiffrement de session SSH que vous souhaitez activer, configurer l'expiration des sessions, choisir les méthodes d'authentification, spécifier les configurations de proxy et contrôler les utilisateurs ayant accès à l'instance. Vous pouvez également importer et exporter des configurations.
Les paramètres de contrôle d'accès vous permettent de limiter l'accès à l'aide de règles IP (avec prise en charge du masquage pour le contrôle de sous-réseau) et de règles de nom DNS (qui sont traitées après les règles IP).
WinSSHD prend en charge la virtualisation, qui est extraordinaire pour les implémentations SFTP. Cela signifie que vous pouvez affecter des milliers d'utilisateurs virtuels à un compte Windows unique, ce qui simplifie les informations sur les comptes et la sécurité. L'application prend également en charge les groupes Windows pour le contrôle d'authentification et d'accès, de sorte que vous ne devez pas définir une stratégie pour chaque utilisateur.
Avec la prise en charge de l'authentification Kerberos 5 et NTLM, WinSSHD peut être intégré dans un environnement d'authentification unique. Ce type d'intégration nécessite cependant un client SSH compatible GSSAPI tel que Tunnelier, un produit associé intéressant également proposé par Bitvise. Tunnelier est, comme vous pouvez le deviner, tout à fait compatible avec le serveur WinSSHD. Il peut également être utilisé pour configurer votre serveur WinSSHD à distance.
Si votre environnement serveur SFTP ou SSH2 est stratégique, vous pouvez effectuer une mise en clusters de WinSSHD pour obtenir une disponibilité élevée. Cette tâche est assez simple, mais si vous avez besoin d'assistance, le site Web de l'entreprise fournit des informations et des guides de configuration sur l'installation des clusters, le réacheminement de port, la tunnellisation du Bureau à distance, etc.

Prix : $99.95.
WinSSHD vous permet de spécifier les méthodes de chiffrement de session SSH
WinSSHD vous permet de spécifier les méthodes de chiffrement de session SSH

Contrôle de l'activité USB
USB Monitor Professional
www.hhdsoftware.com
Voici un produit pour tous les types d'utilisateurs. Vous êtes peut-être un fan des logiciels maison, qui passez vos journées, voire vos nuits, à créer et modifier des pilotes pour vos périphériques USB. Ou peut-être êtes-vous un ingénieur en matériel informatique qui crée des périphériques USB. Peut-être encore avez-vous simplement observé le voyant d'activité d'un périphérique USB en vous interrogeant sur la cause exacte de cette activité. Si vous vous reconnaissez dans l'un de ces scénarios, USB Monitor Professional de HHD Software peut vous intéresser. Cet utilitaire vous permet d'enregistrer, d'afficher et d'analyser les données transférées entre un périphérique USB et un système Windows à l'aide du contrôleur d'hôte USB.
L'interface utilisateur est un peu compliquée, mais une fois que vous y êtes habitué, vous pouvez recueillir de grandes quantités d'informations sur les données transférées depuis et vers le périphérique USB contrôlé. Par défaut, l'application enregistre la plupart des commandes et des jeux de commandes transmis à un périphérique USB. Avec certains périphériques, notamment le stockage de masse, les données peuvent être assez détaillées. Heureusement, vous pouvez personnaliser les données que l'application doit enregistrer pour les périphériques de stockage de masse.
Une fois que vous avez enregistré une session, vous pouvez analyser les données de diverses façons. Pour les périphériques de stockage de masse, vous obtenez l'affichage de stockage de masse. Il y a également des options pour un graphique linéaire des statistiques et du débit du périphérique, un affichage des paquets bruts et des requêtes de contrôle, un affichage du décodeur de paquet de données, un affichage spécifique à l'HID et un affichage Still Image (qui décodera le protocole USB Still Image pour les périphériques applicables).
Vu la quantité de données enregistrées par l'application, vous ne voudrez pas laisser une session d'enregistrement USB s'exécuter trop longtemps. Vous pouvez néanmoins limiter la quantité maximale d'espace disque autorisée pour les sessions d'enregistrement actives et comprimer les données enregistrées pour réduire l'espace nécessaire.

Prix : À partir de 175,99 USD pour une licence normale.
USB Monitor Professional enregistre les commandes transmises à un périphérique USB
USB Monitor Professional enregistre les commandes transmises à un périphérique USB

Gestion des supports virtuels
Virtual CloneDrive
www.elby.ch/fun/software
L"utilisation de supports physiques peut être très fastidieuse. Depuis que je suis passé à Windows Vista et que j'ai perdu la compatibilité directe avec Microsoft Virtual CD-ROM Control Panel, je recherche une solution de remplacement pour monter les images de CD et DVD. (À propos, pour ceux d'entre vous que cela intéresse, vous pouvez trouver Microsoft® Virtual CD-ROM Control Panel pour Windows XP à l'adresse go.microsoft.com/fwlink/?LinkId=94801.)
Bien sûr, il est possible d'exécuter Virtual CD-ROM Control Panel dans Windows Vista. Le problème est que vous devez toujours ouvrir la session en tant qu'administrateur et que vous pouvez ne voir le lecteur installé que dans le contexte Administrateur, c'est-à-dire à l'aide d'une invite de commande Exécuter en tant qu'administrateur, mais pas dans le contexte utilisateur de l'Explorateur Windows. Par conséquent, non seulement l'outil ne fonctionne pas comme je le souhaite, mais il nécessite en outre que j'exécute l'application dans un environnement moins sécurisé.
J'ai découvert un outil qui fonctionne dans le contexte utilisateur de Windows Vista.
Il s'agit de Virtual CloneDrive de Elaborate
Bytes. L'application s'installe en tant qu'application de gestion de l'interface graphique et installe un contrôleur de stockage que vous pouvez afficher à partir du
Gestionnaire de périphériques. Une fois installée, l'application possède trois paramètres de base. Premièrement,
vous pouvez spécifier le nombre de lecteurs virtuels que vous souhaitez utiliser, limité à 8 lecteurs en parallèle. Deuxièmement, et c'est peut-être mon option préférée, vous pouvez choisir de définir le paramètre Virtual Sheep qui remplace l'icône de lecteur de CD/DVD standard par un mouton en colère, de sorte que vous pouvez distinguer les lecteurs ISO des vrais lecteurs physiques de votre système. Enfin, vous pouvez choisir de monter automatiquement la dernière image que vous avez attribuée au lecteur virtuel lors du démarrage.
Outre les fichiers ISO, Virtual CloneDrive peut également monter et lire les fichiers .ccd, .dvd, .img, .udf et .bin. Il s'intègre également à l'Explorateur Windows, vous permettant ainsi de monter et démonter les images rapidement. Et l'un des aspects les plus attrayants de Virtual CloneDrive, c'est qu'il est gratuit. Si vous êtes passé à Windows Vista® et que vous recherchez une nouvelle solution pour gérer les fichiers ISO, n'hésitez pas à jeter un œil sur cet outil.

Prix : Gratuit.
Le mouton en colère de Virtual CloneDrive
Le mouton en colère de Virtual CloneDrive

Critique
SharePoint Products and Technologies Administrator's Pocket Consultant
microsoft.com/MSPress/books/10623.aspx
Le papier n'a peut-être pas encore disparu des bureaux, mais les documents électroniques sont assurément de plus en plus répandus. La gestion de ces documents et de leur partage représente un problème croissant et de nombreuses entreprises envisagent Microsoft SharePoint® Services et SharePoint Server comme solutions. Microsoft SharePoint Products and Technologies Administrator's Pocket Consultant, de Ben Curry peut vous aider. Que vous envisagiez d'utiliser SharePoint, que vous soyez au beau milieu des étapes de planification ou que vous possédiez déjà une infrastructure SharePoint, cette référence en matière de fonctionnalités administratives et de tâches quotidiennes est une aide précieuse.
Pour ceux qui connaissent la série Administrator's Pocket Consultant, ce guide paraîtra très familier. Il est comparable aux autres en termes de niveau de contenu et de structure. Ce livre particulier couvre Windows SharePoint Service 3.0, SharePoint Server 2007 Standard, et SharePoint Server 2007 Enterprise Edition. Il comprend quatre sections.
La première section, « SharePoint Products and Technologies Fundamentals », fournit une vue d'ensemble des composants, des versions, de la configuration et de l'installation des produits SharePoint Server. Cette section explique ce qui différencie Windows SharePoint Services 3.0 des les versions Standard et Enterprise de SharePoint Server. Elle vous ensuite guide tout au long de l'installation de chacun des trois produits. Elle détaille également les bases de données SQL Server et sites Web IIS créés pendant le processus d'installation.
La section suivante, « SharePoint Core Administration », couvre l'interface utilisateur de l'administration centrale et offre des références sur la façon de créer de nouveaux sites et collections de sites, d'importer, d'utiliser et de modifier des composants WebPart et de configurer les paramètres de groupe et de messagerie électronique pour l'installation. Dans cette section, vous pouvez également voir comment gérer les différentes fonctionnalités de flux de travail et contrôler ces flux de travail.
La troisième partie du livre, « Working with SharePoint Server 2007 », est consacrée aux outils et fonctionnalités spécifiques aux versions Standard et Enterprise de SharePoint Server. Elle couvre des sujets tels que la configuration de la gestion du contenu d'entreprise, la création et la configuration des portails SharePoint, la définition de la recherche et de l'indexation et la configuration des services de calcul Excel®. La section sur les services de calcul Excel fournit également des conseils sur la façon de configurer les services dans un environnement multiserveur pour augmenter les performances et la disponibilité.
La quatrième section développe les aspects opérationnels d'une implémentation SharePoint Server, et vous explique comment faire évoluer SharePoint Server 2007 vers une batterie de serveurs ainsi que les différentes configurations possibles pour cette implémentation. Enfin, le livre décrit les principes fondamentaux des opérations de sauvegarde et de restauration, l'analyse des performances et l'utilisation des fonctionnalités de journalisation de SharePoint Server pour vous aider à maintenir et améliorer votre site.
Bien que le livre se présente lui-même comme une référence quotidienne pour les administrateurs, je pense que ceux qui sont engagés dans les étapes de planification et ceux qui veulent mieux connaître SharePoint y trouveront un moyen rapide de mieux comprendre SharePoint. La structure du livre, qui commence avec une présentation très simple des différentes technologies SharePoint et de ce qu'elles peuvent apporter, puis aborde des sujets de plus en plus complexes tels que les services de calcul Excel et l'évolution vers une batterie de serveurs, garantit que cet ouvrage constituera une référence utile pour un utilisateur souhaitant se familiariser avec les technologies SharePoint et qu'il restera une référence utile à mesure que les connaissances de cette personne augmenteront.

Prix : $29.99.

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


 Forum aux questions sur SQL: Goulots d'&#233;tranglement du processeur, restauration et d&#233;placement de bases de donn&#233;es, et bien plus encore.
Forum aux questions sur SQL
Goulots d'étranglement du processeur, restauration et déplacement de bases de données, et bien plus encore.
Par Nancy Michell

Q : L'utilisation du processeur de SQL Server™ a bondi tout d'un coup de façon excessive, mais rien n'a été modifié. Aucun nouvel utilisateur n'a été ajouté, aucun matériel n'est tombé en panne et aucune nouvelle table n'a été créée. Alors que se passe-t-il ?

Conseil : Accès pendant la création d'index
Dans certaines circonstances, vous avez besoin de créer des index sur des tables de grande taille (ce qui peut prendre énormément de temps), tout en conservant l'accès aux données pendant ce processus. Comment atteindre ces deux objectifs ?
Lors de la création, de la suppression ou de la reconstruction d'un index en cluster, SQL Server place un verrou de modification du schéma (SCH-M) sur la table, ce qui empêche les utilisateurs d'accéder à toutes les données sous-jacentes pendant l'opération. C'est le cas lorsque vous créez un index en cluster sur une table. En revanche, lorsque vous créez un index non mis en cluster sur une colonne, SQL Server met un verrou partagé (Shared, S) sur la table, ce qui empêche également la mise à jour des données dans la table sous-jacente, tout en permettant d'exécuter des instructions SELECT pour lire les données.
Si vous avez de réels besoins de lecture de la table pendant la création de l'index en cluster, vous pouvez créer un index sur une table et le transformer en opération en ligne. Voici la commande :
CREATE UNIQUE CLUSTERED INDEX CLUST_IDX_SQLTIPS
ON SQLTips (tip) with (ONLINE=ON) Go;
Lors de l'utilisation des opérations d'indexage en ligne sur les tables, SQL Server placera toujours un verrou SCH-M pour un index en cluster ou un verrou partagé pour un index non mis en cluster sur la table sous-jacente, mais seulement pour une période très courte : pendant les phases de début et de fin de l'opération d'indexage. Cette option fournit donc un meilleur accès pour l'interrogation et la mise à jour de la table sous-jacente durant le processus de création d'index. Notez cependant que la création d'index et les opérations d'indexage en ligne sont uniquement disponibles avec SQL Server 2005 Enterprise Edition.

R : Un goulot d'étranglement du processeur qui survient soudainement et subitement sans aucune modification ou charge supplémentaire sur le serveur peut avoir plusieurs causes, mais les plus fréquentes sont un plan de requêtes non optimisé, une mauvaise configuration de SQL Server, une conception inappropriée d'application ou de base de données, ou encore des ressources matérielles insuffisantes.
Dans une situation comme celle-ci, la première chose à faire est d'identifier si votre serveur fait un usage intensif du processeur, et si c'est le cas, d'identifier les instructions qui sont les plus gourmandes en processeur sur votre système SQL Server local. Vous pouvez utiliser l'Analyseur de performances pour déterminer si le serveur fait un usage intensif de votre processeur en consultant le compteur PROCESSOR:% PROCESSOR TIME. Si vous trouvez une valeur de temps utilisé par processeur supérieure à 75 %, vous avez un goulot d'étranglement de processeur.
Vous devez également contrôler les planificateurs de SQL Server en interrogant le script DMV (vue de gestion dynamique) du système appelé SYS.DM_OS_SCHEDULERS pour voir la valeur des tâches exécutables. Une valeur différente de zéro indique que les tâches doivent attendre leur tour pour s'exécuter. Les valeurs élevées dans ce compteur constituent également un symptôme de goulot d'étranglement de processeur.
Vous pouvez utiliser la requête suivante pour lister tous les planificateurs et consulter le nombre de tâches exécutables :
SELECT
 Scheduler_ID,
 Current_Tasks_Count,
 Runnable_Tasks_Count
FROM
 SYS.DM_OS_SCHEDULERS
WHERE
 Scheduler_ID < 255
Pour obtenir les 50 instructions SQL qui consomment le plus de processeur, utilisez la requête reproduits à la figure 1.
Figure 1 Les 50 plus grands consommateurs de processeur (Close Figure 1)
SELECT TOP 50 (a.total_worker_time/a.execution_count) AS [Avg_CPU_Time],
 Convert(Varchar,Last_Execution_Time) AS 'Last_execution_Time',
 Total_Physical_Reads,
 SUBSTRING(b.text,a.statement_start_offset/2,
 (case when a.statement_end_offset = -1 then len(convert(nvarchar(max), b.text)) * 2
 else
 a.statement_end_offset end - a.statement_start_offset)/2) AS Query_Text,
 dbname=Upper(db_name(b.dbid)),
 b.objectid AS 'Object_ID'
 FROM sys.dm_exec_query_stats a
 CROSS APPLY
 sys.dm_exec_sql_text(a.sql_handle) AS b
 ORDER BY
 [Avg_CPU_Time] DESC

Q : J'ai dû récupérer une base de données SQL Server 2005 à partir d'une bande. Après la restauration, la plupart des autorisations accordées aux utilisateurs de la base de données étaient perdues. Pouvez-vous me dire où je me suis trompé pendant la restauration ? Il n'y a aucun problème avec les données, mais les autorisations sont sens dessus dessous.

R : Vous n'avez probablement pas restauré la base de données MASTER au même point dans le temps, si bien que les ID de connexion de la base de données d'utilisateurs ne correspondent pas à la base de données MASTER actuelle. Vous devez les synchroniser. L'encadré « Où trouver de l'aide lors du déplacement d'une base de données » répertorie les ressources les plus utiles pour déterminer la source des problèmes que vous rencontrez lors de la restauration ou du déplacement d'une base de données.

Q : J'ai développé une application dans laquelle j'utilise une procédure stockée qui décompose des données XML dans des tables relationnelles en utilisant OpenXML dans SQL Server 2005 SP1. Le document XML le plus lourd pèse 5 Ko (la moyenne est de 2,5 Ko). La procédure stockée est appelée plusieurs fois en parallèle (jusqu'à 50 fois).
Je rencontre de sérieux problèmes de conflits de verrouillage et je pense qu'ils sont causés par OpenXML. Qu'en pensez-vous ?

R : Si OpenXML peut être plus rapide que la méthode des nœuds pour décomposer ou convertir des données sur un thread unique, la méthode des nœuds s'adapte normalement mieux, surtout lors d'une utilisation en parallèle. Cependant, si vous utilisez OpenXML, vous devriez suivre les recommandations suivantes pour améliorer les performances générales d'OpenXML.
Au lieu d'appeler OpenXML cinq fois avec le même modèle de ligne (comme vous dites le faire dans votre solution), vous devriez extraire toutes les données avec le même modèle de ligne dans une table temporaire et exécuter ensuite vos instructions SELECT à partir de la table temporaire. Essayez de libérer de la mémoire avec sp_xml_removedocument dès que possible. Essayez également d'éviter autant que possible d'utiliser des caractères génériques comme * et //. Fournissez le chemin explicite pour améliorer les performances de vos requêtes.

Q : DBCC SHRINKFILE s'exécute vraiment lentement sur mon serveur. Est-ce que j'obtiendrais de meilleures performances sur une machine multiprocesseur ? Que puis-je faire pour améliorer la situation ?

R : DBCC SHRINKFILE est une opération à un seul thread, qui ne tirera donc pas parti de plusieurs processeurs. Il déplace des pages de la fin du fichier au début du fichier, une page à la fois. Et la réduction, comme cette opération est souvent appelée, n'effectue pas de défragmentation ; à vrai dire, dans la plupart des cas, la réduction augmente la fragmentation logique.
Pour améliorer les performances de la réduction, vous pouvez par exemple déplacer les pages dans des index en clusters. Si vous avez énormément de pages et qu'elles possèdent de nombreux index non mis en clusters, la vitesse sera particulièrement lente (par rapport à une situation où les index sont en clusters).
Notez également que le déplacement de pages pour des données d'objet BLOB est lent, parce que les données en ligne doivent être lues pour trouver la racine de ces données.
Si la majorité du contenu d'un index ou d'une table réside à la fin du fichier, vous pouvez reconstruire les index pour les transférer au début du fichier. La reconstruction des index tirera parti de processeurs multiples et pourrait utiliser moins d'espace de journal en mode bulk_logged. Après cela, la réduction s'exécutera plus rapidement.
Pour plus d'informations sur les opérations de réduction, commencez par lire les articles suivants : blogs.msdn.com/sqlserverstorageengine/archive/2007/03/29/how-does-your-schema-affect-your-shrink-run-time.aspx et blogs.msdn.com/sql-serverstorageengine/archive/2007/04/15/how-to-avoid-using-shrink-in-sql-server-2005.aspx.
Où trouver de l'aide lors du déplacement d'une base de données
  • COMMENT FAIRE : Déplacer des bases de données entre des ordinateurs qui exécutent SQL Server
  • Comment faire pour déplacer des bases de données SQL Server vers un nouvel emplacement à l'aide des fonctions Détacher et Attacher dans SQL Server
  • INF : utilisation de l'option WITH MOVE avec l'instruction RESTORE
  • Comment faire pour résoudre les problèmes d'autorisation lorsque vous déplacez une base de données entre des serveurs SQL Server
  • INF : Comment faire pour transférer des noms d'accès et des mots de passe entre instances de SQL Server
  • INF : Comprendre et dépanner l'Assistant Copie de base de données SQL Server 2000
  • Les connexions et autorisations des utilisateurs sur une base de données peuvent être incorrectes après la restauration d'une base de données
  • Vous ne pouvez pas restaurer des sauvegardes de base de données système à une version différente de SQL Server
  • Comment faire pour extraire une table ou des lignes spécifiques à partir de sauvegardes de bases de données ou de journaux des transactions dans SQL Server

Conseil : Modification des ports
Tous ceux qui connaissent SQL Server savent que le numéro de port par défaut qu'écoute SQL Server est le 1433. Si des instances nommées de SQL Server sont configurées pour utiliser des Ports dynamiques (c'est-à-dire qu'elles peuvent sélectionner tout port disponible au démarrage d'une instance de SQL Server), l'instance de SQL Server par défaut écoute toujours le port 1433. Donc si votre serveur écoute le port par défaut et qu'il n'est pas correctement sécurisé, il court un risque. Mais vous pouvez contrecarrer les attaques en modifiant le port par défaut. Voici comment.
Ouvrez le Gestionnaire de configuration SQL Server et développez Configuration du réseau SQL Server 2005, puis Protocoles. Ensuite, double-cliquez sur TCP/IP. La liste des propriétés TCP/IP et de leurs fonctions est affichée dans le tableau ci-dessous : paramétrez-les en conséquence.
Notez que le moteur de base de données SQL Server peut écouter plusieurs des ports sur la même adresse IP. Vous devez donc créer une liste des ports que vous voulez utiliser en les séparant par une virgule, au format 1433,1500,1501. Si vous souhaitez configurer une seule adresse IP pour écouter plusieurs ports, vous devez également définir le paramètre « Ecouter tout » sur Non dans l'onglet Protocoles de la boîte de dialogue Propriétés TCP/IP.
Maintenant, cliquez avec le bouton droit sur chaque adresse et cliquez sur Propriétés pour identifier l'adresse IP que vous souhaitez configurer. Si la boîte de dialogue Ports TCP dynamiques contient 0, ce qui indique que le moteur de base de données écoute les ports dynamiques, supprimez le 0. Dans la zone Propriétés IP de la boîte de dialogue Port TCP, saisissez le numéro du port que vous voulez que cette adresse IP écoute, puis cliquez sur OK. Dans le volet de console, cliquez sur Services SQL Server 2005, et dans le volet de détails, cliquez avec le bouton droit sur SQL Server (<nom de l'instance>), puis cliquez sur Redémarrer pour arrêter et redémarrer SQL Server.
Une fois que vous avez configuré SQL Server pour qu'il écoute un port spécifique, un client pour se connecter au port de trois façons. Vous pouvez exécuter le service Explorateur SQL Server sur le serveur pour vous connecter à l'instance Moteur de base de données par son nom ; vous pouvez créer un alias sur le client, en spécifiant le numéro de port ; ou vous pouvez programmer le client pour qu'il se connecte en utilisant une chaîne de connexion personnalisée.

Propriété | Description
Actif | Indique que SQL Server écoute le port indiqué. Indisponible pour IPAll.
Activé | Activer ou désactiver cette connexion. Indisponible pour IPAll.
Adresse IP | Afficher ou modifier l'adresse IP utilisée par cette connexion. Répertorie l'adresse IP utilisée par l'ordinateur, et l'adresse IP de bouclage, 127.0.0.1. Indisponible pour IPAll.
Ports TCP dynamiques | Vierge si les ports dynamiques ne sont pas activés. Pour utiliser les ports dynamiques, paramétrez sur 0.
Port TCP | Afficher ou modifier le port d'écoute de SQL Server. Par défaut, l'instance par défaut écoute le port 1433. Ce champ est limité à 2 047 caractères.

Merci aux professionnels de l'informatique de Microsoft suivants pour avoir répondu aux questions de ce mois : Chad Boyd, Cindy Gross, John Hadden, Saleem Hakani, Stephen Jiang, Mahesh Nayak, Paul Randal et Wayne Yu.


 Coup de projecteur sur les utilitaires: PageDefrag
Coup de projecteur sur les utilitaires
PageDefrag
Lance Whitney
Télécharger le code de cet article: PageDefrag (70KB)

L'outil de défragmentation Windows® habituel peut optimiser la plupart des fichiers sur votre disque dur, mais certains éléments sont hors d'atteinte de la plupart des outils de défragmentation. Les fichiers qui sont ouverts et verrouillés pour un usage exclusif, tels que le fichier de pagination Windows et les ruches de Registre, ne sont en général pas traités par l'outil de défragmentation Windows intégré ou par les utilitaires tiers. Les API Windows standard ne prennent pas en charge la défragmentation de ces fichiers lorsqu'ils sont en cours d'utilisation. Heureusement, l'utilitaire PageDefrag, créé par Mark Russinovich pour Sysinternals, permet de défragmenter les éléments qui ne sont pas pris en charge par d'autres outils.
PageDefrag peut défragmenter le fichier de pagination Windows, les ruches de Registre, les journaux d'événements et le fichier de mise en veille prolongée (la zone du disque dans laquelle la mémoire est enregistrée lorsqu'un ordinateur portable passe en mode de veille prolongée). Le programme optimise ces fichiers pendant la séquence de lancement de l'ordinateur, avant qu'ils soient utilisés.
Pour exécuter PageDefrag, double-cliquez simplement sur le fichier bginfo.exe. Le programme affiche le nom de chaque fichier qu'il peut défragmenter (voir la figure 1). pagefile.sys est le fichier de pagination. Les ruches de Registre apparaissent en tant que fichiers individuels pour chaque ruche (DEFAULT, SAM, SECURITY, SOFTWARE et SYSTEM). Les journaux d'événements s'affichent également en tant que fichiers individuels correspondants. Par exemple, AppEvent.evt est le journal d'application, SecEvent.evt est le journal de sécurité et SysEvent.evt est le journal système. Enfin, Hiberfil.sys est le fichier de mise en veille prolongée.
Figure 1 PageDefrag affiche le nom de chacun des fichiers qu'il peut traiter.
Figure 1 PageDefrag affiche le nom de chacun des fichiers qu'il peut traiter.
À côté de chaque nom de fichier apparaît une colonne Clusters affichant le nombre de clusters du disque qui sont alloués au fichier, ainsi qu'une colonne Fragments indiquant le nombre de morceaux de fichier fragmentés ou non contigus qui sont disséminés sur le disque. Sur la base de ces données, vous pouvez déterminer si les fichiers doivent d'être défragmentés.
Vous avez deux possibilités : Vous pouvez défragmenter les fichiers au démarrage suivant ou à chaque démarrage. À moins que les fichiers ne soient lourdement utilisés ou que l'ordinateur ne soit un serveur ou tout autre ordinateur rarement redémarré, la défragmentation des fichiers au démarrage suivant devrait être suffisante. Vous pouvez également activer un compte à rebours pour avoir le temps d'annuler la défragmentation dès le démarrage de l'ordinateur.
Au redémarrage suivant de l'ordinateur, la commande chkdsk normale s'exécute, puis PageDefrag passe à l'action. Les fichiers déjà organisés en clusters contigus sont ignorés. Les fichiers décomposés en fragments sont optimisés un à un. Le programme affiche le nom de chaque élément en cours de défragmentation, vous indique si la défragmentation a réussi, et répertorie le nombre de clusters alloués au fichier, avant et après la défragmentation.
PageDefrag risque de ne pas pouvoir optimiser un fichier si l'espace disque disponible sur l'ordinateur n'est pas suffisant ou si cet espace libre est trop fragmenté. Dans ces cas, vous devez libérer de l'espace et exécuter un outil de défragmentation dans Windows pour optimiser l'espace libre, puis relancer PageDefrag.
En général, PageDefrag s'exécute rapidement, car il ne traite qu'un nombre réduit de fichiers. Cependant, si les fichiers sont lourdement fragmentés, il peut prendre du temps, du moins la première fois. Après l'exécution de PageDefrag, Windows est se charge comme d'habitude. Vous pouvez alors rouvrir le programme pour confirmer que chaque fichier consiste maintenant en un fragment unique.
Vous pouvez exécuter PageDefrag de manière non interactive à l'aide de la ligne de commande ou d'un script en utilisant les options -e (Défragmenter au démarrage), -o (Défragmenter une fois), -n (Ne jamais défragmenter) et -t (Définir un compte à rebours sur un nombre de secondes spécifié) avec le fichier pagedfrg.exe.
Pour en savoir plus et télécharger une copie, visitez le site microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx.

Lance Whitney est consultant en informatique, formateur et rédacteur technique. Il a passé un nombre d'heures incalculable à affiner des postes de travail et serveurs Windows. Journaliste de formation, il s'est reconverti à l'informatique il y a 15 ans.


 Le petit c&#226;bleur: Mod&#232;les d'h&#244;te fort et faible
Le petit câbleur
Modèles d'hôte fort et faible
Joseph Davies

Une configuration de plus en plus courante pour les hôtes réseau consiste à d'être connectés avec plusieurs interfaces réseau. Un hôte multirésident offre une connectivité améliorée parce qu'il peut être connecté simultanément à plusieurs réseaux, tel qu'un intranet ou Internet. Cependant, puisqu'ils peuvent être connectés à la fois à un intranet et à
Internet, les services qui s'exécutent sur des hôtes multirésidents peuvent être vulnérables aux attaques. Pour vous aider à empêcher les attaques et à comprendre comment le trafic IP est traité pour un hôte multirésident, je vais me pencher sur les modèles d'hôte fort et faible d'hôtes multirésidents, avant de décrire comment ces modèles sont pris en charge dans Windows®.
RFC 1122 est la spécification qui décrit ces deux modèles pour un hôte multirésident qui n'agit pas comme un routeur et se contente d'envoyer et de recevoir du trafic IP monodiffusion. Ces modèles, connus sous les noms d'hôte fort et d'hôte faible, indiquent si le trafic monodiffusion envoyé ou reçu doit être associé avec l'interface réseau empruntée par le trafic. Ces modèles déterminent la façon dont un hôte envoie et reçoit les paquets et influe sur la vulnérabilité des services s'exécutant sur l'hôte.
Bien que RFC 1122 définisse ces modèles pour IPv4, ils s'appliquent également à IPv6. Un exemple d'hôte multirésident pour IPv6 est un ordinateur utilisant IPv4 et IPv6 qui possède une carte réseau connectée à un intranet et une interface de tunnel IPv6.

Modèle d'hôte faible
Dans le modèle d'hôte faible, un hôte IP (IPv4 ou IPv6) peut envoyer des paquets sur une interface à laquelle l'adresse IP source du paquet en cours d'envoi n'est pas attribuée. On appelle cela le comportement d'envoi d'hôte faible. Un hôte IP peut également recevoir des paquets sur une interface à laquelle l'adresse IP de destination du paquet en cours de réception n'est pas attribuée. On appelle cela le comportement de réception d'hôte faible
Lorsque vous avez un hôte IP multirésident avec plusieurs interfaces, le fait d'activer le comportement d'envoi d'hôte faible sur les interfaces peut parfois rendre l'hôte vulnérable aux attaques multi-hébergement. Par exemple, la figure 1 illustre un hôte A connecté à la fois à Internet et à un intranet. L'hôte A possède l'adresse IPv4 publique 131.107.89.211 attribuée à son interface Internet et l'adresse IPv4 privée 192.168.17.48 assignée à son interface intranet.
Figure 1 Exemple d'ordinateur multirésident
Figure 1 Exemple d'ordinateur multirésident
Avec le comportement d'envoi d'hôte faible activé sur ses interfaces Internet et intranet, l'hôte A peut envoyer des paquets de 131.107.89.211 sur son interface Internet, des paquets de 192.168.17.48 sur son interface Internet, des paquets de 131.107.89.211 sur son interface intranet et des paquets de 192.168.17.48 sur son interface intranet.
Avec le comportement de réception d'hôte faible activé, l'hôte A peut recevoir les types de paquets suivants (en supposant que les règles du pare-feu d'hôte permettent le trafic entrant) : des paquets vers 131.107.89.211 sur son interface Internet, des paquets vers 192.168.17.48 sur son interface Internet, des paquets vers 131.107.89.211 sur son interface intranet et des paquets vers 192.168.17.48 sur son interface intranet.
Lorsque le comportement de réception d'hôte faible est activé, un utilisateur malveillant sur Internet peut envoyer des paquets vers l'interface Internet de l'hôte A pour attaquer des services s'exécutant sur l'hôte A qui sont uniquement accessibles aux hôtes sur l'intranet. Ce type d'attaque peut survenir si l'infrastructure Internet prend en charge le transfert des paquets destinés à 192.168.17.48 vers l'interface Internet de l'hôte A. Vous pouvez empêcher ce type d'attaque en paramétrant des règles de pare-feu appropriées sur l'interface Internet de l'hôte A. Cependant, même si vous le faites, les services s'exécutant sur l'hôte A qui sont disponibles aux clients de l'intranet peuvent courir un risque.

Modèle d'hôte fort
Dans le modèle d'hôte fort, les comportements d'envoi et de réception sont différents. Avec l'envoi d'hôte fort, l'hôte peut uniquement envoyer des paquets sur une interface à laquelle l'adresse IP source du paquet en cours d'envoi est attribuée. Avec la réception d'hôte fort, l'hôte peut uniquement recevoir des paquets sur une interface à laquelle l'adresse IP source du paquet en cours de réception est attribuée.
Lorsque le comportement d'envoi d'hôte fort est activé sur ses interfaces Internet et intranet, l'hôte A de la figure 1 peut uniquement envoyer des paquets provenant de 131.107.89.211 sur son interface Internet, et provenant de 192.168.17.48 sur son interface intranet.
Lorsque le comportement de réception d'hôte fort est activé, l'hôte A peut uniquement recevoir des paquets à l'adresse 131.107.89.211 sur son interface Internet et à l'adresse 192.168.17.48 sur son interface intranet.
Dans la figure 1, le modèle d'hôte fort pour l'hôte A dépose tous les paquets entrants sur l'interface Internet qui sont adressées à 192.168.17.48 sans que vous ayez besoin de configurer des règles du pare-feu, isolant ainsi efficacement l'interface intranet de l'hôte A d'Internet.
Si vous choisissez le modèle d'hôte fort, gardez à l'esprit qu'il pourrait affecter certains types de connectivité conçus pour le comportement d'hôte faible. Par exemple, certaines implémentations d'équilibrage de charge peuvent utiliser le comportement de réception d'hôte faible pour recevoir des paquets sur n'importe quelle interface avant de les router de façon interne vers l'interface appropriée. Un hôte qui utilise l'envoi d'hôte faible pour envoyer le trafic à partir de n'importe quelle adresse source vers une interface correspondant à une connexion rapide peut également être affecté.

Envoi et réception d'hôte fort
Voyons maintenant le fonctionnement du processus d'envoi et de réception sur hôte générique pour IPv4 ou IPv6 lorsque vous autorisez l'activation et la désactivation de l'envoi et de la réception d'hôte fort en fonction de l'interface.
Pour les paquets en cours d'envoi, l'IP vérifie d'abord si une adresse source a déjà été spécifiée. Si ce n'est pas le cas, l'IP effectue une recherche non limitée de l'adresse de destination du paquet dans la table de routage. Dans une recherche non limitée, tous les itinéraires de la table de routage sont considérés. Selon l'itinéraire sélectionné pour la destination, l'IP détermine l'interface du saut suivant (l'interface utilisée pour placer le paquet sur la couche de laison) et l'adresse du saut suivant. Selon l'interface du saut suivant, l'IP utilise la procédure de sélection d'adresse définie dans RFC 3484 en fonction des besoins pour déterminer la meilleure adresse source. À ce stade, l'IP possède toutes les informations dont il a besoin pour envoyer le paquet : les adresses de source et de destination, l'interface du saut suivant et l'adresse du saut suivant.
Si l'adresse source a été spécifiée, l'interface source est connue. L'adresse source est attribuée à l'interface source. L'IP détermine ensuite si l'envoi d'hôte fort est activé sur l'interface source.
S'il est désactivé, l'IP effectue une recherche non limitée de l'adresse de destination du paquet dans la table de routage. Selon le meilleur itinéraire correspondant à la destination, l'IP détermine l'interface du saut suivant et l'adresse du saut suivant. L'IP dispose des adresses de source et de destination, de l'interface du saut suivant et de l'adresse du saut suivant. Notez que lorsque le comportement d'envoi d'hôte fort est désactivé sur l'interface source, il est possible que l'interface du saut suivant ne soit pas identique à l'interface source.
Si l'envoi d'hôte fort est activé sur l'interface source, l'IP effectue une recherche limitée de l'adresse de destination du paquet dans la table de routage. Dans une recherche limitée, seuls les itinéraires avec une interface de saut suivant de l'interface source sont considérés. Selon l'itinéraire sélectionné pour la destination, l'IP détermine l'adresse du saut suivant. L'IP dispose des adresses de source et de destination, de l'interface du saut suivant et de l'adresse du saut suivant. Notez que lorsque le comportement d'envoi d'hôte fort est activé sur l'interface source, l'interface du saut suivant est toujours identique à l'interface source. La figure 2 illustre le processus générique d'envoi IP par un hôte.
Figure 2 Processus générique d'envoi IP par un hôte
Figure 2 Processus générique d'envoi IP par un hôte
Lorsque l'adresse source a été spécifiée, la recherche d'itinéraire limitée peut sélectionner un itinéraire avec une métrique plus élevée parmi les différents itinéraires de la table de routage qui correspondent le mieux à la destination. Par exemple, l'hôte A de la figure 1 possède deux itinéraires par défaut ; l'un pointe vers Internet avec une métrique de 10 et un autre point vers l'intranet avec une métrique de 20. Le comportement d'hôte fort est activé sur les deux interfaces de réseau local.
Si l'application d'envoi de l'hôte A ne spécifie pas d'adresse source, le résultat de la recherche d'itinéraire est l'itinéraire par défaut avec la métrique la plus faible ; l'hôte A envoie toujours le trafic depuis l'interface Internet avec l'adresse source 131.107.89.211. Cependant, si l'application d'envoi de l'hôte A spécifie une adresse source de 131.107.89.211, le résultat de la recherche est l'itinéraire par défaut pour l'interface Internet ; l'hôte A envoie le trafic depuis l'interface Internet. Si l'application d'envoi de l'hôte A spécifie une adresse source de 192.168.17.48, la recherche sélectionne l'itinéraire par défaut pour l'interface de l'intranet ; l'hôte A envoie le trafic depuis l'interface d'intranet. Avec la recherche d'itinéraire limitée, l'IP envoie le trafic avec une adresse source de 192.168.17.48 en utilisant l'itinéraire par défaut avec la métrique la plus élevée.
Pour le trafic reçu, l'IP détermine d'abord si le trafic est destiné à l'hôte. Sinon, l'IP rejette silencieusement le paquet parce que l'hôte ne sert pas de routeur. L'IP détermine ensuite si la réception d'hôte fort est activée sur l'interface entrante (l'interface sur laquelle le paquet a été reçu). Si elle est désactivée, l'IP traite le paquet. Si elle est activée, l'IP détermine si l'adresse de destination du paquet est attribuée à l'interface entrante. Si oui, l'IP traite le paquet. Sinon, l'IP rejette silencieusement le paquet. La figure 3 illustre le processus générique de réception par un hôte.
Figure 3 Processus de réception par un hôte
Figure 3 Processus de réception par un hôte

Comportement d'hôte faible et fort dans Windows
Windows XP et Windows Server® 2003 utilisent le modèle d'hôte faible pour l'envoi et la réception pour toutes les interfaces IPv4, et le modèle d'hôte fort pour l'envoi et la réception pour toutes les interfaces IPv6. Vous ne pouvez pas configurer ce comportement. La pile TCP/IP nouvelle génération de Windows Vista et Windows Server 2008 prend en charge par défaut l'envoi et la réception d'hôte fort pour IPv4 et IPv6 sur toutes les interfaces, à part l'interface de tunnel Teredo pour un relais Teredo spécifique à l'hôte. La figure 4 répertorie les commandes que vous pouvez utiliser pour configurer le comportement d'envoi et de réception à la fois pour IPv4 et IPv6, interface par interface. Notez que InterfaceNameOrIndex est soit le nom de l'interface du dossier Connexions réseau, soit son index d'interface. Vous pouvez obtenir l'index d'interface d'une interface à partir de l'affichage de la commande :
Figure 4 Commandes permettant de configurer les comportements d'envoi et de réception fort et faible (Close Figure 4)

• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
netsh interface ipv6 show interface
Comportement d'hôte faible et fort et RFC 3484
Afin de fournir une méthode standardisée pour la sélection des adresses IPv6 et IPv4 de source et de destination avec lesquelles tenter des connexions, RFC 3484 définit deux algorithmes. Le premier est un algorithme de sélection d'adresse source pour choisir la meilleure adresse source à utiliser avec une adresse de destination. L'autre est un algorithme de sélection d'adresse de destination pour trier la liste des adresses de destination possibles par ordre de préférence.
Le comportement d'hôte fort et faible entre en scène lorsque l'hôte détermine la liste des adresses source candidates pour une adresse de destination donnée, et ceci affecte également la liste finale triée des adresses de destination. Pour le comportement d'envoi d'hôte fort, la liste des adresses source candidates est constituée d'adresses monodiffusion attribuées à l'interface d'envoi pour la destination. Pour le comportement d'envoi d'hôte faible, la liste des candidats peut inclure des adresses attribuées à n'importe quelle interface dont l'envoi d'hôte faible est activé. Pour plus d'informations de la sélection des adresses de source et de destination, veuillez consulter l'article de la page microsoft.com/technet/community/columns/cableguy/cg0206.mspx.

Par défaut, l'envoi et la réception d'hôte faible sont désactivés pour IPv4 et IPv6 pour toutes les interfaces sauf l'interface de tunnel Teredo pour un relais Teredo spécifique à l'hôte.
Pour plus d'informations sur RFC 3484, reportez-vous à l'encadré « Comportement d'hôte faible et fort et RFC 3484. »

Désactivation des itinéraires par défaut pour les connexions VPN d'accès distant
Un client de réseau privé virtuel (VPN) d'accès distant constitue un autre exemple d'hôte multirésident. Bien qu'il puisse n'avoir qu'une seule interface LAN connectée à Internet, lorsqu'un client VPN d'accès distant établit une connexion VPN, il est multirésident. Il possède deux interfaces : son interface LAN et une interface basée sur le protocole PPP (Point-to-Point Protocol) pour la connexion VPN. Il possège également deux adresses IPv4 : une adresse IPv4 attribuée par le fournisseur d'accès Internet pour l'interface de réseau local, et une autre adresse IPv4 attribuée par le serveur VPN pour l'interface PPP.
Pour s'assurer que le client VPN envoie le trafic d'itinéraire par défaut via la connexion VPN à l'intranet, Windows XP et Windows Server 2003 modifient la table de routage IPv4 en augmentant la métrique de l'itinéraire par défaut et en ajoutant un nouvel itinéraire par défaut avec une métrique inférieure qui utilise l'interface PPP. Ce comportement par défaut donne accès aux emplacements sur l'intranet et rend presque tous les emplacements sur Internet inaccessibles pendant la connexion VPN. Pour disposer d'un accès simultané aux emplacements Internet et intranet, il est possible de configurer un client VPN pour la tunnellisation fractionnée en n'ajoutant pas l'itinéraire par défaut pour la connexion VPN et en ajoutant des itinéraires spécifiques pour les destinations intranet. Cependant, il existe un risque que les clients VPN à tunnelisation fractionnée puissent router des paquets entre Internet et l'intranet. Pour plus d'informations, consultez l'article de la page microsoft.com/technet/community/columns/cableguy/cg1003.mspx.
Le comportement par défaut du client VPN sous Windows XP et Windows Server 2003 a été conçu pour un comportement d'envoi d'hôte faible. La recherche d'itinéraire utilise toujours l'itinéraire par défaut pour la connexion VPN parce qu'il possède la métrique la plus faible. Cependant, lorsque vous utilisez le comportement d'envoi d'hôte fort, l'itinéraire par défaut utilisé pour le trafic envoyé dépend de l'adresse IP source du paquet. La recherche d'itinéraire pour le trafic provenant de l'adresse IPv4 attribuée par le FAI utilisera l'itinéraire par défaut qui utilise l'interface de réseau local, rendant accessibles tous les emplacements Internet. La recherche d'itinéraire pour le trafic provenant de l'adresse IPv4 attribuée par le serveur VPN utilisera l'itinéraire par défaut qui utilise l'interface PPP, rendant accessibles tous les emplacements intranet. Par conséquent, lorsque vous utilisez le comportement d'envoi d'hôte fort, le client VPN possède une configuration de tunnelisation fractionnée et dispose d'un accès simultané à Internet et à l'intranet, même pour les applications qui n'ont pas de privilèges de niveau administrateur pour modifier directement la table de routage IPv4.
Pour empêcher le comportement d'envoi d'hôte fort de créer par défaut une configuration de tunnelisation fractionnée, le client VPN de Windows Vista® et Windows Server 2008 désactive automatiquement les itinéraires par défaut des interfaces de réseau local lorsque la connexion VPN est établie. Ce comportement garantit qu'il n'existe qu'un itinéraire par défaut actif dans la table de routage qui utilise l'interface PPP. Ce comportement garantit également que les applications sans privilèges de niveau administrateur ne peuvent pas exécuter une tunnelisation fractionnée.
Même si le trafic provenant de l'ordinateur client VPN doit provenir de l'adresse IPv4 attribuée par le serveur VPN, ce comportement fournit une meilleure isolation de l'intranet contre Internet. Lorsque la connexion VPN est terminée, les itinéraires par défaut désactivés sont activés.
Vous pouvez contrôler ce comportement par défaut avec la commande :
netsh interface ipv4 set interface [InterfaceNameOrIndex]
ignoredefaultroutes=enabled|disabled

Joseph Daviesest rédacteur technique chez Microsoft. Il enseigne et rédige des articles sur les questions relatives aux réseaux Windows depuis 1992. Il a écrit cinq livres pour Microsoft Press et est l'auteur de la chronique en ligne mensuelle Le petit câbleur de TechNet.


 Windows&#160;PowerShell: S&#233;curisation de l'environnement de ligne de commande
Windows PowerShell
Sécurisation de l'environnement de ligne de commande
Don Jones

Lorsque l'équipe de Windows PowerShell s'est réunie pour créer un nouvel environnement de ligne de commande et que le terme « script » a été prononcé, les cris de consternation ont sans doute été entendus dans tout Redmond. Après tout, les précédents efforts de Microsoft en matière de scripts d'administration (je parle ici de VBScript), étaient loin d'être exempts de problèmes. Un
modèle d'exécution trop permissif, allié à la tendance de la plupart des utilisateurs à ouvrir une session en tant qu'administrateurs complets, a ouvert la boîte de Pandore.
« Toute de même », doivent avoir imploré les personnes participant à cette première réunion de Windows PowerShell™ « on va pas remettre ça ». Elles ont été exaucées. Microsoft a fortement amélioré sa réputation en matière de sécurité, en grande partie parce qu'il a commencé à penser à la sécurité au début du cycle de développement du produit plutôt qu'à la fin. Cette philosophie est tout à fait évidente dans Windows PowerShell.

Pourquoi mes scripts ne s'exécutent-ils pas ?
Installez Windows PowerShell sur un ordinateur propre et double-cliquez sur un fichier .ps1 : voici qu'apparaît le Bloc-notes, pas Windows PowerShell. C'est parce que l'extension de nom de fichier .ps1 (l'extension utilisée pour les scripts Windows PowerShell), n'a pas d'association avec l'environnement de ligne de commande même. En d'autres termes, vous ne pouvez pas exécuter un script simplement en double-cliquant sur celui-ci. Le seul moyen d'exécuter un script est d'ouvrir Windows PowerShell, de taper le nom du script, puis d'appuyer sur Entrée.
En fait, il ne suffit pas de taper le nom de script, non plus. Vous pouvez voir à la figure 1 que le fichier Demo1.ps1 existe dans le dossier actuel, pourtant lorsque vous tapez sur demo1 et que vous appuyez sur Entrée, une erreur est générée : « The term « demo1 » is not recognized as a cmdlet, function, operable program, or script file. » (« Le terme « demo1 » n'est pas reconnu en tant qu'applet de commande, fonction, programme exécutable ou fichier de script. ») Pourquoi ? Après tout, le fichier se trouve juste là.
Figure 1 Pour éviter le détournement de commande, Windows PowerShell a besoin du chemin de votre script.
Figure 1 Pour éviter le détournement de commande, Windows PowerShell a besoin du chemin de votre script.
C'est un autre aspect du modèle de sécurité de Windows PowerShell. Une astuce fréquemment tentée par les utilisateurs malveillants dans d'autres environnements de ligne de commande consiste en effet à créer un script avec le même nom de fichier qu'une commande intégrée. Ainsi, par exemple, si vous souhaitez qu'un utilisateur exécute votre script, vous pouvez le nommer Dir.ps1 et le déposer dans un dossier. Si vous avez convaincu l'utilisateur de taper Dir et d'appuyer sur Entrée, votre script peut s'exécuter, pas la commande Dir que l'utilisateur attendait. Cette technique est appelée détournement de commande. Dans Windows PowerShell, vous devez toujours fournir un chemin pour un tel script, ce qui protège Windows PowerShell contre tout détournement de commande.
L'exécution de demo1 ne fonctionne pas, puisqu'il n'y a pas de chemin, mais ./demo1 fonctionne. C'est parce que j'ai maintenant spécifié le chemin, le dossier actuel. Cette ligne de commande est moins susceptible d'être confondue avec une commande intégrée puisque vous ne taperiez jamais aucun chemin si vous faisiez référence à une commande intégrée. Ainsi, la nécessité d'un chemin aide Windows PowerShell à éviter tout détournement de commande et toute confusion sur ce qui peut se produire lorsque vous appuyez sur Entrée.

Stratégie pour l'exécution de scripts
Vous disposez donc d'une copie fraîchement installée de Windows PowerShell, vous utilisez la syntaxe correcte et vous tentez d'exécuter un script. À votre grande surprise, vous êtes accueilli avec un autre message d'erreur, vous informant que Windows PowerShell n'est pas autorisé à exécuter des scripts. Pardon ??? Bienvenue dans la stratégie d'exécution de l'environnement de ligne de commande.
Vous pouvez afficher la stratégie d'exécution actuelle en exécutant Get-ExecutionPolicy dans l'environnement de ligne de commande. Par défaut, il est défini sur Restricted, ce qui signifie tout simplement que les scripts ne s'exécuteront pas. Jamais. Pour personne. Par défaut, Windows PowerShell ne peut être utilisé que de manière interactive, plutôt que pour exécuter des scripts. Vous pouvez utiliser l'applet de commande Set-ExecutionPolicy pour choisir un des quatre paramètres de stratégie d'exécution possibles :
  • Restricted, le paramètre par défaut, n'autorise pas l'exécution des scripts.
  • AllSigned n'exécute que les scripts de confiance (plus d'informations sur cette question dans un instant).
  • RemoteSigned exécute les scripts locaux sans qu'ils doivent être approuvés, mais les scripts téléchargés à partir d'Internet doivent être approuvés avant de pouvoir être exécutés.
  • Unrestricted autorise l'exécution de tous les scripts, même les scripts non approuvés.
En fait, AllSigned est le paramètre le plus bas sur lequel tout ordinateur de production devrait être défini. Je trouve RemoteSigned utile dans les environnements de développement et de test, mais ce n'est pas nécessaire pour l'utilisateur type. Unrestricted me paraît inutile et je n'aurais aucune objection si une version future de Windows PowerShell omettait ce paramètre trop permissif.

Une question de confiance
Votre ordinateur est préconfiguré pour approuver certaines autorités de certification racines (CA), c'est-à-dire des serveurs qui émettent des certificats numériques. La figure 2 affiche l'application du Panneau de configuration Options Internet, qui énumère les autorités de certification racines de confiance. Dans Windows Vista®, cette liste est assez courte et inclut seulement quelques autorités de certification racines commerciales majeures. Par contre, dans Windows® XP, la liste par défaut est longue et inclut de nombreuses autorités de certification racines dont je n'ai jamais entendu parler. Lorsqu'une autorité de certification racine figure sur cette liste, cela signifie essentiellement que vous approuvez l'entreprise qui utilise cette autorité de certification pour vérifier l'identité d'une personne avant d'émettre un certificat numérique.
Lorsque vous obtenez un certificat numérique de Classe III, couramment appelé certificat de signature de code, l'autorité de certification (qui peut être une autorité de certification commerciale ou privée existant dans votre organisation) doit vérifier votre identité. Ce certificat numérique est comme un passeport ou une carte d'identité électronique. Avant de me donner un ID indiquant que je suis Don Jones, par exemple, l'autorité de certification doit prendre certaines mesures pour s'assurer que je suis vraiment Don Jones. Lorsque vous utilisez votre certificat pour signer numériquement un script Windows PowerShell, ce que vous pouvez faire en utilisant l'applet de commande Set-AuthenticodeSignature, vous signez votre nom sur le script. Bien sûr, si vous pouvez obtenir un faux certificat contenant le nom d'une autre personne, vous pouvez signer son nom sur le script, c'est pourquoi il est si important que seules les autorités de certification dignes de confiance figurent dans la liste de la figure 2.
Figure 2 Autorités de certification racines par défaut dans Windows Vista
Figure 2 Autorités de certification racines par défaut dans Windows Vista
Lorsque Windows PowerShell vérifie si un script est approuvé, ce qu'il fait sous les paramètres de stratégie d'exécution AllSigned et RemoteSigned, il pose trois questions :
  • Ce script est-il signé ? Si non, le script est non approuvé.
  • La signature est-elle intacte ? En d'autres termes, le script a-t-il été modifié depuis sa signature ? Si la signature n'est pas intacte, le script est non approuvé.
  • La signature a-t-elle été créée à l'aide d'un certificat numérique émis par une autorité de certification racine de confiance ? Si non, le script est non approuvé.
Applet de commande du mois : Set-AuthenticodeSignature
Set-AuthenticodeSignature est essentiel pour signer numériquement vos scripts Windows PowerShell, ce qui vous permet d'utiliser la stratégie d'exécution de l'environnement de ligne de commande la plus sûre, AllSigned. Pour utiliser cette applet de commande, vous démarrez avec une autre applet de commande, Get-ChildItem, qui extrait un certificat de signature de code installé :
$cert = Get-ChildItem –Path cert:\CurrentUser\my –codeSigningCert
Vous devez remplacer le chemin d'accès de ce fichier par un chemin qui pointe vers un certificat installé, tout certificat installé étant accessible via le lecteur cert: . Une fois le certificat chargé, exécutez la commande suivante pour signer un script :
Set-AuthenticodeSignature MyScript.ps1
–cert $cert
Bien sûr, vous devez fournir le chemin complet de votre fichier script .ps1. L'environnement de ligne de commande ajoute un bloc de signature au fichier.

Comment la confiance améliore-t-elle la sécurité ? Bien sûr, un pirate informatique pourrait potentiellement écrire un script malveillant, le signer et convaincre un utilisateur de votre environnement de l'exécuter. Puisque le script a été signé, il s'exécutera. Mais comme il a été signé, vous pouvez utiliser la signature pour découvrir l'identité de l'auteur et prendre les mesures nécessaires (comme appeler les autorités chargées de l'application de la loi). Il faudrait toutefois qu'une personne soit extrêmement stupide pour créer un script malveillant, puis y apposer son vrai nom !
Bien sûr, si un utilisateur malveillant peut obtenir, par exemple d'une autorité de certification qui ne dispose pas d'un processus de vérification d'identité fiable, un certificat pour l'identité d'une autre personne, vous ne pourrez pas utiliser la signature pour identifier le véritable coupable. C'est pourquoi les autorités de certification racines que vous approuvez doivent avoir un processus de vérification d'identité que vous jugez satisfaisant.
Si vous utilisez le paramètre de stratégie d'exécution AllSigned, vous devez même signer numériquement chaque script que vous créez vous-même pour qu'il puisse s'exécuter. L'applet de commande Set-AuthenticodeSignature est assez facile à utiliser, mais elle peut être un peu embêtante. C'est là que les logiciels tiers peuvent s'avérer utiles. Je vous recommande de sélectionner un éditeur de script ou un environnement de développement visuel qui signera automatiquement vos scripts en utilisant le certificat que vous spécifiez. Ainsi, l'utilisation des signatures est transparente et ne nécessite aucun effort supplémentaire. Si vous souhaitez des suggestions d'éditeurs et d'environnements de développement prenant en charge ces éléments, visitez quelques-uns des forums d'écriture de script en ligne (tels que mon site à l'adresse SscriptingAnswers.com) et publiez un message pour demander aux autres fans de Windows PowerShell ce qu'ils utilisent.
Une fois que vous possédez un certificat, vous pouvez également exécuter le code uniligne suivant pour signer tous les scripts d'un emplacement particulier :
Get-Childitem *.ps1 | %{Set-AuthenticodeSignature $_.fullname $cert}

Sécurisation centralisée
La stratégie d'exécution de Windows PowerShell peut, évidemment, être configurée ordinateur par ordinateur. Mais cela n'est pas une bonne solution pour les environnements d'entreprise. Au lieu de cela, vous pouvez utiliser la stratégie de groupe. (Vous pouvez télécharger les modèles d'administration de Windows PowerShell sur le site go.microsoft.com/fwlink/?LinkId=93675.) Il suffit de déposer le fichier dans un objet de stratégie de groupe (GPO) qui affecte l'ensemble de votre domaine et de le définir sur Restricted. Ainsi, quel que soit l'endroit où Windows PowerShell est installé, vous pouvez être sûr que les scripts ne s'exécuteront pas. Vous pouvez ensuite appliquer un paramètre plus permissif (par exemple, AllSigned) uniquement sur les ordinateurs qui doivent exécuter des scripts (comme votre propre poste de travail).

Informations d'identification alternatives
Contrairement aux précédents langages de script administratifs pour Windows, Windows PowerShell est même conçu pour traiter des informations d'identification alternatives de façon sécurisée. Par exemple, l'applet de commande Get-WMIObject possède un paramètre d'informations d'identification qui vous permet de spécifier des informations d'identification alternatives pour les connexions WMI distantes. Le paramètre acceptera un nom d'utilisateur mais pas un mot de passe, vous empêchant ainsi de coder en dur des mots de passe sensibles dans un script en texte clair. Au lieu de cela, lorsque vous fournissez le nom d'utilisateur, Windows PowerShell vous invite à saisir un mot de passe à l'aide d'une boîte de dialogue. Si vous envisagez d'utiliser à nouveau les informations d'identification alternatives, vous pouvez stocker ces informations à l'aide de l'applet de commande Get-Credential :
$cred = Get-Credential DOMAIN\USER
Vous serez immédiatement invité à entrer un mot de passe et les informations d'identification finales seront stockées dans la variable $cred. La variable $cred peut ensuite être transmise au paramètre d'informations d'identification aussi souvent que nécessaire. Vous pouvez même utiliser les applets de commande de ConvertTo-SecureString et ConvertFrom-SecureString pour convertir les informations d'identification en chaîne chiffrée ou convertir une chaîne chiffrée précédemment en informations d'identification.
Le problème c'est que votre clé de chiffrement se retrouve stockée dans un script en texte brut, ce qui va à l'encontre de la sécurité. Donc au lieu de cela, vous pouvez ajouter un appel à Get-Credential dans votre profil Windows PowerShell. Lorsque Windows PowerShell s'exécute, vous êtes alors immédiatement invité à saisir un nom d'utilisateur et un mot de passe, qui sont ensuite stockés dans une variable nommée $cred. Ainsi, vous disposez toujours d'une variable $cred disponible dans l'environnement de ligne de commande représentant un compte d'administrateur de domaine. Vous ne devez en outre pas vous soucier d'enregistrer de ces informations d'identification. Comme celles-ci sont recréées chaque fois que vous ouvrez l'environnement de ligne de commande, il n'est pas nécessaire de les stocker.

Sécurisation par défaut
Par défaut, Windows PowerShell est installé et configuré avec les paramètres probablement les plus sûrs que vous puissiez imaginer pour un environnement de ligne de commande d'administration prenant en charge l'écriture de scripts. Á moins que vous ne modifiez ces paramètres, Windows PowerShell restera aussi sûr que possible. En d'autres termes, tout ce qui réduit la sécurité dans Windows PowerShell résulte de votre décision et de votre action. Donc avant de modifier les valeurs par défaut (par exemple reconfigurer les associations d'extension de fichier, modifier la stratégie d'exécution, etc.), assurez-vous que vous comprenez les conséquences de vos actions et que vous êtes prêt à assumer la responsabilité de vos modifications.

Don Jones est le gourou principal des scripts chez SAPIEN Technologies et formateur pour Scriptingtraining Com. Vous pouvez le joindre par le biais de son site Web à l’adresse suivante : scriptingAnswers.com.


 H&#233;, vous le scripteur&#160;!: Cette relation peut-elle &#234;tre sauv&#233;e&#160;?
Hé, vous le scripteur !
Cette relation peut-elle être sauvée ?
The Microsoft Scripting Guys
Télécharger le code de cet article: HeyScriptingGuy2007_09.exe (150KB)

Les relations sont importantes. Mais comment les scripteurs, eux entre tous, savent-ils que les relations sont importantes ? Hé bien, d'abord, nous regardons beaucoup la télévision, et la télé nous répète sans cesse que les relations sont importantes.
Et pas seulement dans les feuilletons ou les téléfilms hebdomadaires. Par exemple, il existe une publicité de société de crédit qui encourage les téléspectateurs à leur accorder leur clientèle. Est-ce parce qu'elle n'hésite pas à prêter de l'argent à des personnes qui ne devraient en aucun cas obtenir de prêt ? Non. Est-ce parce qu'elle prend un intérêt annuel de 900 % sur ce prêt ? Bien sûr que non. C'est parce que cette société de crédit noue une relation personnelle avec le client. Comme la publicité le clame, « Les relations sont importantes ».
Remarque : bien sûr, nous essuyons une larme, et nous n'en avons pas honte. Après tout, il faudrait être de marbre pour ne pas verser une larme à la pensée des liens solides et durables qui lient une personne à sa société de crédit.
Bien sûr, nous savons ce que vous pensez : « Bon sang, si les relations sont importantes pour les sociétés de crédit, les relations doivent vraiment être importantes pour les personnes qui écrivent des scripts qui interagissent avec des bases de données. » Et la vérité est que les relations devraient être importantes pour les personnes qui écrivent des scripts qui interagissent avec des bases de données. Malheureusement, ces scripteurs ne se rendent pas toujours compte que les relations sont importantes. Mais ne vous inquiétez pas, dans la chronique de ce mois, nous mettons les choses au clair.
Nous savons que de nombreux administrateurs système utilisent des bases de données, souvent pour suivre leur inventaire matériel. Le problème est qu'un grand nombre de ces bases de données sont configurées de façon moins qu'optimale. Par exemple, supposons que vous ayez besoin d'une base de données capable de suivre les lecteurs de disque connectés à tous vos ordinateurs. Si vous n'avez aucune expérience de la conception de base de données, il y a de fortes chances que vous créerez une base de données à une table, telle que celle illustrée à la figure 1.
Figure 1 Base de données à une table
Figure 1 Base de données à une table
Comme vous pouvez le constater, il s'agit d'une conception très simple : un champ pour le nom de l'ordinateur, et deux champs d'option Oui/Non pour indiquer si un ordinateur dispose d'un lecteur C: et d'un lecteur D:. Et c'est à peu prêt tout. Clair, net et direct.
Alors, qu'est-ce qui ne va pas avec cette base de données ? Pour être honnête, rien ou presque ne va. Si vous pouvez être sûr qu'aucun de vos ordinateurs n'a plus de deux lecteurs de disque, cette conception fonctionnera (en quelque sorte). Mais, que se passe-t-il si un de vos ordinateurs dispose de trois lecteurs de disque ? Dans ce cas, vous devrez ajouter un autre champ pour le suivi du lecteur E. Bien, mais que se passe-t-il si un de vos ordinateurs est doté de 11 lecteurs de disque ? Et que se passe-t-il si vous voulez suivre les propriétés de chacun de ces lecteurs ? Par exemple, supposons que vous souhaitiez suivre la taille totale de chaque lecteur. Dans ce cas, vous aurez besoin d'un champ Taille_lecteur_C, d'un champ Taille_lecteur_D et d'un champ Taille_lecteur_E, etc. Enfin, vous avez compris. (Dieu vous garde de souhaiter suivre également l'espace disque disponible ou le type de connecteur de disque, ou si les quotas de disque ont été activés sur le lecteur, et ainsi de suite.)
Voici une règle de base à retenir : lorsqu'une entité peut avoir plus d'un quelque chose (par exemple, un ordinateur peut avoir plus d'un lecteur de disques), ce type de conception « fichier plat » (une seule table) n'est pas recommandé. Il est vrai que, dans le cas des lecteurs de disque, vous pouvez probablement vous en sortir ; après tout, vous aurez un nombre limité de lecteurs connectés à un ordinateur. Mais supposons que vous souhaitiez interroger votre base de données et extraire une liste de tous les lecteurs de disque supérieurs à 100 gigaoctets ou plus. Comment pensez-vous faire cela ? Premièrement, vous devrez chercher les lecteurs de 100 gigaoctets dans le champ Taille_lecteur_C, puis dans le champ Taille_lecteur_D, le champ Taille_lecteur_E... Une approche qui n'est ni efficace ni rentable. Mais quelle est l'alternative ? Si vous ne pouvez pas utiliser une base de données à fichier plat, que pouvez-vous utiliser ?
C'est simple : une base de données relationnelle. Les bases de données relationnelles sont notamment conçues pour gérer les relations de type un-à-plusieurs (par exemple, un ordinateur disposant de nombreux lecteurs de disque). Et avant que vous ne le demandiez, non, vous n'avez besoin d'acheter quoi que ce soit pour utiliser une base de données relationnelle. Si vous avez une base de données quelconque (Microsoft® Access™, SQL Server™, Oracle, etc.), vous possédez sans doute déjà une base de données relationnelle. Vous n'avez pas besoin d'acheter quoi que ce soit ; vous devez seulement savoir deux choses : 1) comment configurer une relation entre deux tables dans cette base de données ; et 2) comment écrire un script qui peut tirer profit de cette relation.
Remarque : d'après la télé, vous ne devez jamais essayer de tirer profit d'une relation. Mais notre cas est différent.
Comme le titre de cette rubrique n'est pas Hé, vous le concepteur de base de données !, nous ne nous éterniserons pas sur la conception de base de données. Au lieu de cela, nous vous montrerons une conception de base de données relationnelle très simple qui nous permettra d'aborder l'écriture de requêtes relationnelles. Dans cette base de données, nous créons deux tables. La première s'intitule Computers (Ordinateurs) et contient deux champs : ComputerName (Nom_ordinateur) et SerialNumber (Numéro_série). Vous enregistrez le nom de l'ordinateur dans le champ du nom d'ordinateur, et le numéro de série dans le champ du numéro de série. Tout simplement.
Mais alors, où donc affichons-nous les informations relatives à nos lecteurs de disque ? Dans notre seconde table, qui s'intitule DiskDrives (Lecteurs_disque). Cette table contient trois champs explicites : SerialNumber (Numéro_série), DriveLetter (Lettre_lecteur) et DriveSize (Taille_lecteur).
Le champ clé ici est celui de numéro de série. Si ce nom de champ vous semble familier, c'est qu'il l'est : en effet, ce même champ apparaît dans la table Computers (Ordinateurs). Il ne 'agit pas d'un hasard ou d'une coïncidence ; nous l'avons fait exprès. Afin d'établir une relation entre ces deux tables, nous avons besoin d'un champ commun aux deux tables ; nous pouvons ainsi définir quels lecteurs de disque appartiennent à quels ordinateurs.
Pourquoi avons-nous lié les deux tables à l'aide du numéro de série au lieu du nom de l'ordinateur, par exemple ? En fait, il existe une bonne raison pour cela : les noms des ordinateurs peuvent changer (et cela arrive souvent). Les numéros de série ne changent pas.
Mais assez parlé ! Examinons la figure 2, un script capable d'effectuer une recherche dans ces deux tables et d'extraire une liste des lecteurs de disque appartenant à chaque ordinateur. La figure 3 illustre le type de données renvoyées par ce script.
Figure 3 Résultats de la recherche (Close Figure 3)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-01
E:

atl-ws-02
C:

atl-ws-02
D:
Figure 2 Recherche dans les tables (Close Figure 2)
Const adOpenStatic = 3
Const adLockOptimistic = 3

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open _
 "Provider = Microsoft.Jet.OLEDB.4.0; " & _
 "Data Source = c:\scripts\test.mdb"

objRecordSet.Open "SELECT Computers.*, DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber " & _
 "ORDER BY Computers.ComputerName, DiskDrives.Drive", objConnection, adOpenStatic, _
  adLockOptimistic

objRecordSet.MoveFirst

Do Until objRecordset.EOF
 Wscript.Echo objRecordset.Fields.Item("ComputerName")
 Wscript.Echo objRecordset.Fields.Item("Drive")
 Wscript.Echo
 objRecordset.MoveNext
Loop

objRecordSet.Close
objConnection.Close
Nous n'aborderons pas les principes de base de la connexion et de l'utilisation des bases de données dans la chronique de ce mois. Si vous êtes novice en matière de script, vous devriez jeter un œil sur le webcast des scripteurs intitulé « Écriture de script de base de données pour les administrateurs système » (go.microsoft.com/fwlink/?LinkId=22089). Disons simplement que nous nous connectons à une base de données Access (C:\Scripts\Test.mdb) et que nous utilisons des tables relationnelles nommées Computers (Ordinateurs) et DiskDrives (Lecteurs_disque). Cela doit apparaître clairement dans le script.
Une chose encore : vous devez apporter une petite modification pour que le script fonctionne avec Access 2007 : Il est important de modifier le fournisseur de Microsoft.Jet.OLEDB.4.0 en Microsoft.ACE.OLEDB.12.0, comme ceci :
objConnection.Open _
 "Provider = Microsoft.ACE.OLEDB.12.0; " & _
 "Data Source = c:\scripts\test.accdb"
Voilà. Ce que nous allons faire, plutôt, c'est nous concentrer sur la requête SQL qui extrait les données de nos deux tables :
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Compliqué ? Peut-être un peu. Voyons donc si nous pouvons décomposer quelque peu tout cela pour la rendre plus digeste.
La première partie de notre requête est en fait assez facile. Nous voulons sélectionner tous les champs dans les deux tables : Computers (Ordinateurs) et DiskDrives (Lecteurs_disque). D'où ce petit bout de SQL :
SELECT Computers.*, DiskDrives.*
Cela n'est pas trop compliqué ; l'astérisque, inutile de le dire, est simplement un caractère générique signifiant « tout ».
Si vous avez déjà écrit des requêtes SQL (ou si vous avez écrit des requêtes Windows® Management Instrumentation ou WMI, qui utilisent un sous-ensemble du langage de requête SQL), vous connaissez la routine : après avoir spécifié les éléments que vous voulez sélectionner, vous spécifiez l'emplacement à partir duquel vous voulez sélectionner ces éléments. La partie suivante de notre requête est donc :
FROM Computers INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber
Ne vous laissez pas décourager. Il est vrai que c'est plus compliqué qu'une instruction FROM typique, mais pour une bonne raison. Après tout, dans une requête SQL typique, nous sélectionnons seulement des données d'une table ; cette fois, nous sélectionnons des données de deux tables à la fois.
Observons de plus près la syntaxe et son fonctionnement. Comme vous le voyez, nous demandons au script de sélectionner des données de la table Computers (Ordinateurs) et de la table DiskDrives (Lecteurs_disque). Notez, cependant, que nous n'utilisons pas le mot « and » (et), mais INNER JOIN (JOINTURE INTERNE). Ce terme définit le type de relation, puis décrit comment joindre les informations des deux tables séparées en un jeu d'enregistrements unique. (Il existe d'autres types de jointures, mais nous les aborderons plus loin).
Comme nous l'avons sous-entendu, nous devons spécifier le type de relation qui existe entre nos tables, et spécifier exactement comment ces tables sont liées. C'est que ce bout de code fait pour nous :
ON Computers.SerialNumber = DiskDrives.SerialNumber
Ce que nous faisons ici, c'est définir comment nous allons joindre nos tables. Les enregistrements seront regroupés chaque fois que le champ de numéro de série de la table Computers (Ordinateurs) correspond au champ de numéro de série de la table DiskDrives (Lecteurs_disque). Que se passe-t-il si nous utilisons un champ différent (par exemple, ComputerName [Nom_ordinateur]) comme champ de jointure ? Notre code se présentera comme suit :
ON Computers.ComputerName = DiskDrives.ComputerName
Si vous vous posez la question, non, les deux champs n'ont pas besoin d'avoir le même nom, ils doivent simplement contenir les mêmes données. L'utilisation d'un même nom permet d'identifier plus facilement le champ relationnel. Il existe toutefois un petit point à retenir : comme nous avons deux champs avec le même nom, nous devons toujours utiliser la syntaxe : Nom_Table.Nom_Champ pour les références à l'un de ces champs. Cela signifie qu'il faut utiliser le code comme ceci : Wscript.Echo obj- Recordset.Fields.Item("Computers.SerialNumber").
C'est tout ce dont nous avons besoin. Le reste de la requête permet simplement de trier les données, d'abord par nom d'ordinateur, puis par lecteur :
ORDER BY ComputerName, Drive
Voilà, ce n'était pas si compliqué que ça, n'est-ce pas ? Il nous fait maintenant nous interrompre un instant pour parler des jointures. Pourquoi avons-nous utilisé une jointure interne dans notre requête ? C’est simple : Une jointure interne renvoie uniquement les enregistrements qui ont des valeurs correspondantes dans chaque table. En d'autres termes, supposons que nous ayons le numéro de série 121989. Si ce numéro de série apparaît dans les deux tables Computers (Ordinateurs) et DiskDrives (Lecteurs_disque), les enregistrements correspondants sont renvoyés. (Bien sûr, le numéro de série ne peut pas apparaître n'importe où ; il doit se trouver dans le champ de numéro de série.) Ca paraît logique ? Bon.
Supposons maintenant que nous ayons un ordinateur avec le numéro de série 121989, mais qu'il n'existe pas de lecteur de disque associé à ce numéro de série. Dans ce cas, aucune donnée ne sera renvoyée pour l'ordinateur avec le numéro de série 121989. Cela tient au fait qu'une jointure interne ne renvoie des informations que si un enregistrement a des valeurs correspondantes dans chacune des tables jointes.
En d'autres termes, une requête de jointure interne renvoie tous les ordinateurs qui ont des disques durs. Elle ne renvoie pas les ordinateurs qui n'ont pas de disque dur, ni les disques durs qui ne sont pas installés sur un ordinateur. C'est une bonne chose, car dans la plupart des cas, c'est ce que nous recherchons. Mais qu'en est-il si vous voulez une liste d'ordinateurs qui n'ont pas de disque dur ou des disques durs qui n'ont pas d'ordinateur ? Que se passe-t-il alors ?
C'est là qu'intervient la jointure externe. (Ah, c'est à cela que sert la jointure externe !) Dans un premier temps, disons qu'il existe deux types de jointures externes : La jointure gauche et la jointure droite. Dans notre base de données nous avons deux tables : Computers (Ordinateurs) (qui est considérée comme la table « gauche » parce qu'il s'agit de la table principale) et DiskDrives (Lecteurs_disque) (qui est considérée comme la table « droite » parce qu'il s'agit de la table secondaire). Supposons que notre jeu d'enregistrements renvoyé doive inclure tous les ordinateurs, y compris ceux qui n'ont pas lecteur de disque installé. Dans ce cas, nous utilisons la syntaxe LEFT OUTER JOIN (JOINTURE EXTERNE GAUCHE) et une requête qui ressemble à ceci :
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "LEFT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Comme vous l'avez sans doute compris, une jointure externe gauche renvoie tous les enregistrements de la table gauche, même s'il n'existe pas d'enregistrement correspondant dans la table droite. Nous obtenons donc tous les ordinateurs, mais seulement les enregistrements de la table droite (lecteurs de disque) qui sont associés à un ordinateur.
Nous pouvons également rechercher une liste de tous les lecteurs de disque, y compris ceux qui ne sont pas installés sur un ordinateur. La table DiskDrives (Lecteurs_disque) étant celle de droite dans la relation, nous utilisons la syntaxe RIGHT OUTER JOIN (JOINTURE EXTERNE DROITE), comme suit :
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "RIGHT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Ce qui nous fait penser que si DiskDrives (Lecteurs_disque) est la table droite dans la relation, alors la table Computers (Ordinateurs) devrait être appelée table mari dans la relation au lieu de table gauche. Comme le savent certains scripteurs par expérience, le mari n'est jamais l'entité droite dans une relation.
Avec la jointure externe droite, nous obtenons tous les enregistrements de la table droite (tous les lecteurs de disque), mais uniquement les ordinateurs (les enregistrements de la table gauche) qui sont associés à un lecteur de disques.
Cela ne vous semble peut-être pas très clair pour le moment, mais si vous faites des essais, vous verrez comment cela fonctionne. Si vous avez besoin d'une base de données pour faire des essais, un exemple est à votre disposition à la page microsoft.com/technet/scriptcenter/resources/tnmag/archive.mspx.
Il est important de préciser que chaque fois que vous utilisez une jointure externe, vous devez également, tout au moins, commencer votre script par la ligne On Error Resume Next. Pourquoi ? Supposons que nous créions une jointure externe gauche. Dans ce cas, il est possible que nous obtenions des ordinateurs qui n'ont pas de disque dur installé. Pas de problème (après tout, c'est ce que nous voulons obtenir), au moins jusqu'à ce que nous rencontrions cette ligne de code, qui renvoie en écho la lettre de lecteur :
Wscript.Echo objRecordset.Fields.Item("Drive")
Etant donné qu'il n'existe pas de champ Drive (Lecteur) pour cet ordinateur, le script s'arrêtera :
C:\Scripts\database.vbs(22, 9) Microsoft VBScript runtime error: Type mismatch
Si nous implémentons l'instruction On Error Resume Next, le script peut ignorer le fait qu'un ordinateur n'a pas lecteur de disque et poursuivre son travail. Vous pourriez utiliser un code comme celui-ci pour vérifier la valeur du champ Drive (Lecteur), puis prendre les mesures nécessaires :
If IsNull(objRecordset.Fields.Item("Drive")) _Then
    Wscript.Echo "No disk drives installed."
Else
    Wscript.Echo _
      objRecordset.Fields.Item("Drive")
End If
Avec ce code, nous vérifions si nous obtenons une valeur nulle au lieu d'une véritable lettre de lecteur. Le cas échéant, nous renvoyons en écho le message « No disk drives installed » (Pas de lecteur de disque installé).. Si nous n'obtenons pas une valeur nulle, nous renvoyons tout simplement en écho la valeur du champ Drive (Lecteur). Le résultat net s'affiche comme illustré à la figure 4.
Figure 4 Affichage des résultats appropriés (Close Figure 4)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-02
C:

atl-ws-02
D:

alt-ws-03
No disk drives installed.
Sans entrer dans trop d'explications, examinons quelques autres requêtes. Par exemple, voici une requête de jointure interne qui renvoie une liste d'ordinateurs et leurs lecteurs de disque installés, à condition que la taille de ces lecteurs de disque soient supérieurs à 50 gigaoctets (nous supposons que la taille des lecteurs est enregistrée en gigaoctets) :
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "WHERE DriveSize > 50 " & _
 "ORDER BY Computers.ComputerName, " & _
 "DiskDrives.Drive", objConnection, _
 adOpenStatic, adLockOptimistic
Comme vous pouvez le constater, nous avons simplement ajouté une clause WHERE standard à la requête d'origine :
WHERE DriveSize > 50
Que se passe-t-il si nous voulons uniquement des informations sur le lecteur E des ordinateurs ? Aucun problème, il suffit d'ajouter la clause WHERE appropriée :
WHERE Drive = 'E:'
Voici maintenant une requête légèrement plus compliquée, qui renvoie une collection d'ordinateurs sans lecteur de disque installé :
objRecordSet.Open _
 "SELECT Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "FROM Computers LEFT JOIN DiskDrives " & _
 "ON Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "GROUP BY Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "HAVING (DiskDrives.Drive) Is Null " & _
 "ORDER BY Computers.ComputerName", _
 objConnection, adOpenStatic, adLockOptimistic
Comme indiqué, cette requête est un peu plus compliquée, et nous manquons d'espace pour expliquer son fonctionnement. Mais elle fonctionne, ce qui est le plus important.
Ou du moins assez important. Comme nous l'avons indiqué plusieurs fois, le plus important, ce sont les relations. Cela ne signifie pas que les relations ne peuvent pas mal tourner. Comme Woody Allen dit à la fin de « Annie Hall » « Une relation...c'est comme un requin ; si elle n'avance pas elle meurt. Et je pense qu'on a un requin mort entre les mains ». Ah, si seulement Woody avait connu les jointures internes et externes ! Avec ces techniques de requêtes, vos relations seront toujours réussies !

The Microsoft Scripting Guys 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.


 Questions et r&#233;ponses Exchange: Installation, journalisation des messages, options de stockage, et bien plus encore
Questions et réponses Exchange
Installation, journalisation des messages, options de stockage, et bien plus encore
KC Lemson and Nino Bilic

Q. J'exécute une installation d'Exchange Server 2007 et j'aimerais savoir si je peux contourner la vérification préalable. Je ne veux pas réparer tous les problèmes signalés par la vérification préalable ; je veux simplement exécuter l'installation, c'est tout !

R. La réponse rapide est non, vous ne pouvez pas. Vous devez vraiment réparer tous les problèmes signalés par la vérification préalable si ces problèmes empêchent l'installation de continuer, sans quoi votre expérience d'Exchange à long terme en souffrira.
Certains administrateurs ont tenté de modifier le fichier ExBPA.PreReqs.xml (le fichier qui contient la liste des conditions requises pour l'installation d'Exchange 2007) et de supprimer les vérifications qui provoquent l'arrêt de l'installation. Cela ne fonctionne pas car le fichier XML est signé numériquement, et la modification de son contenu rend la signature non valide.
Le but est de vous empêcher de créer une installation qui ne fonctionne pas correctement. Nous avons testé Exchange 2007 dans différents environnements et savons que certains configurations et paramètres fonctionnent mieux que d'autres, et que certains peuvent présenter de véritables problèmes. Les conditions requises ont été mises en place pour assurer la réussite de votre installation, en fonction de nos expériences et nos tests.
Si vous détectez un véritable problème lié à la vérification préalable d'Exchange 2007, et que l'installation dans votre environnement en souffre, nous vous recommandons de contacter le support technique d'Exchange.

Q. Où puis-je trouver le journal d'installation ? Je ne le trouve pas dans la racine du lecteur C: .

R. Tous les journaux d'installation sont maintenant stockés dans le répertoire %SYSTEMDRIVE%\ExchangeSetupLogs, ce qui, dans la plupart des installations, signifie c:\ExchangeSetupLogs. Vous trouverez plusieurs fichiers à cet emplacement, notamment les deux fichiers suivants :
ExchangeSetup.log Journal contenant les informations relatives aux tâches et paramètres utilisés lors de l'exécution de l'installation. Lorsque les rôles de serveur sont configurés, les informations relatives aux tâches exécutées pour configurer le serveur sont également enregistrées dans ce journal. Ce journal vous permettra également de vérifier la plupart des informations relatives à l'installation de votre serveur. L'installation du Service Pack s'ajoutera également au même fichier.
ExchangeSetup.msilog Fichier contenant des informations sur la phase de décompression de l'installation. Lorsque Microsoft® Installer copie des fichiers vers leurs destinations à partir d'un emplacement temporaire, il utilise ce fichier pour l'enregistrement. Si vous avez un problème lié à la capacité de copier des fichiers ou d'accéder aux fichiers pendant l'installation, c'est dans ce journal que vous avez le plus de chance de trouver des solutions.

Q. Je sais que la vérification préalable est optimisée par Exchange Server Best Practices Analyzer (BPA). Où puis-je donc trouver le rapport des conditions requises ?
R. Si vous voulez rechercher un rapport créé par BPA pendant la vérification préalable, regardez dans le dossier suivant :
%SYSTEMDRIVE%\Exchangesetuplogs\PreReqs
Les noms de fichier ont un format standard :
ExBPA.<dateandtime>.data.xml
Si vous tentez de deviner ce qu'une vérification préalable spécifique recherchait, localisez le fichier XML contenant le message d'erreur reçu et, juste au-dessus du message, vous verrez la définition de la règle testée.
Q. Comment lire les journaux d'installation ? Quelles sont les options dont je dispose ?
R. Il existe en général deux méthodes de lecture des journaux d'installation. Vous pouvez exécuter le fichier Get-SetupLog à partir de l'environnement de ligne de commande Exchange Management Shell, ou vous pouvez tout simplement ouvrir le fichier journal d'installation dans le Bloc-notes ou dans votre éditeur de texte préféré.
Si vous utilisez le fichier Get-SetupLog, voici un exemple de méthode d'extraction des avertissements ou erreurs :
Get-SetupLog c:\exchangesetuplogs\exchangesetup.log –error
Si vous voulez faire ça correctement, vous devez obtenir les scripts Out-HTML.ps1 et Out-IE.ps1, qui sont disponibles dans le pack de démonstration Exchange 2007 PowerShell Scriptacular. (Pour en savoir plus, consultez notre blog à la page msexchangeteam.com/archive/2006/12/27/431998.aspx.)
Une fois en possession de ces scripts, placez-les dans le dossier des scripts Exchange (par défaut, c:\program files\microsoft\exchange server\scripts), puis exécutez la commande suivante :
Get-SetupLog –tree:$false –error:$false | Where { $_.status –eq "Error" } | select datetime, depth, description, status | Out-HTML | Out-IE
Celle-ci ouvre une fenêtre facile à parcourir affichant une vue HTML des erreurs éventuellement survenues pendant l'installation (voir la figure 1).
Figure 1 Out-HTML et Out-IE facilitent la lecture de vos journaux d'installation.
Figure 1 Out-HTML et Out-IE facilitent la lecture de vos journaux d'installation.
En revanche, si vous choisissez d'afficher le fichier exchangesetup.log dans le Bloc-notes, voici quelques conseils :
  • Pour trouver un début d'exécution de l'installation, recherchez : [0] Starting Microsoft Exchange 2007 Setup.
  • Pour trouver une fin d'exécution de l'installation, recherchez : [0] End of Setup.
  • Les tâches principales de l'installation sont séparées par : [0] **************.
  • Pour trouver un compte ayant exécuté une installation, recherchez : [0] Logged on user.
  • Si vous voulez voir le contrôleur de domaine utilisé pendant l'installation, recherchez : [0] Setup will use the domain controller.
En général, lorsque vous examinez les journaux d'installation dans le Bloc-notes, vous devez commencer par la fin du fichier et revenir en arrière pour voir où était le problème Les erreurs apparaissent généralement parmi les dernières informations consignées dans le journal d'installation.

Q. Puis-je utiliser Exchange 2007 - Messagerie unifiée avec mon PBX ?

R. Vous pouvez probablement. Consultez la page microsoft.com/technet/prodtechnol/exchange/telephony-advisor.mspx pour obtenir une liste des passerelles VoIP et des PBX pris en charge. Toute modification apportée à la liste des produits pris en charge sera ajoutée à cette page.
Q. Je possède un client qui exécute Small Business Server 2003 avec Exchange, et la stratégie de l'entreprise exige que tout le courrier soit contrôlé. Pour exécuter le contrôle, je souhaite envoyer une copie de tout courrier entrant et sortant au compte de l'administrateur. Comment faire ?
R. Vous avez besoin de la journalisation des messages, qui vous permet de garder une copie de tous les messages envoyés vers ou à partir d'une base de données de boîte aux lettres spécifique dans une boîte aux lettres de journalisation séparée. Il existe toute une série d'options vous permettant de configurer le détail des copies journalisées (par exemple, voulez-vous capturer les destinataires en copie invisible ?), ainsi qu'un outil supplémentaire avec des fonctionnalités avancées téléchargeable à l'adresse go.microsoft.com/fwlink/?LinkId=93725. La journalisation dans Exchange 2003 est activée à un niveau par base de données, ce qui signifie que chaque utilisateur de cette base de données est journalisé. Une fois la boîte aux lettres devant contenir les messages journalisés créée, accédez aux propriétés de la banque de boîtes aux lettres dans le Gestionnaire système Exchange et cochez la case permettant d'archiver les messages envoyés vers ou reçus par les boîtes aux lettres de cette banque. Selon la stratégie de votre entreprise, vous souhaiterez peut-être également activer le gestionnaire de boîte aux lettres pour nettoyer automatiquement les anciennes copies de journal de la boîte aux lettres des journaux.
Exchange 2003 dispose d'une autre fonctionnalité de journalisation similaire, appelée le récepteur d'archivage. Contrairement à la journalisation, qui enregistre des copies des messages dans une autre boîte aux lettres dans Exchange, le récepteur d'archivage enregistre les messages dans un dossier spécifié sur le disque dur du serveur. Pourquoi choisir une méthode plutôt que l'autre ? La journalisation est généralement conçue pour les scénarios de conformité aux réglementations, tandis que le récepteur d'archivage peut s'avérer utile si vous souhaitez capturer tous messages provenant ou destinés à Internet, par exemple.
Exchange 2007 simplifie considérablement ces scénarios, et vous pouvez facilement journaliser en fonction d'un utilisateur ou d'une liste de distribution. Si vous ne voulez pas que les utilisateurs sachent que leur courrier est journalisé, vous pouvez masquer la liste de distribution de la liste d'adresses globale (notez qu'il s'agit d'une fonction différente de l'appartenance masquée d'une liste de distribution) ou définir un attribut personnalisé sur les utilisateurs, puis créer un groupe de distribution basé sur des requêtes (également appelée liste de distribution dynamique ou DDL) pour supprimer les utilisateurs avec cet attribut personnalisé. Si vous voulez journaliser tout le courrier de l'organisation entière dans le même emplacement, laissez le champ de destinataire vide lors de la création de la règle de journalisation. Notez également que si vous voulez utiliser une journalisation autre que la journalisation par base de données dans Exchange 2007, vous aurez besoin de la licence d'accès client (CAL) Entreprise pour ces utilisateurs. Vous trouverez plus d'informations à la page microsoft.com/exchange/howtobuy/licensingFAQ.mspx. Si vous ne souhaitez pas cette CAL ou l'une des autres fonctionnalités, vous pouvez continuer à utiliser la fonctionnalité de journalisation par base de données d'Exchange 2003. Enfin, jetez un coup d'œil sur l'article de David Strome dans le numéro de décembre 2006 de TechNet Magazine intitulé « Une journalisation plus puissante dans Exchange 2007 » à l'adresse : technetmagazine.com/issues/2006/12/journaling.

Q. Tous mes utilisateurs exécutent Microsoft Office 2003, et nous n'envisageons de passer à Office System 2007 qu'après une actualisation de matériel en 2008. D'après ce que j'ai compris, je crains qu'ils ne bénéficient pas de certaines fonctionnalités à cause de cela. Pourront-ils utiliser la messagerie unifiée ?

R. Absolument. Dans Office 2003, les utilisateurs de la messagerie unifiée peuvent recevoir des messages vocaux et des télécopies dans leurs boîtes aux lettres, ainsi qu'appeler pour accéder à leur boîte aux lettres via n'importe quel téléphone. Si vous ne passez pas à Outlook 2007, les fonctionnalités de la messagerie unifiée dont vous ne bénéficierez pas sont d'une part la possibilité de configurer des paramètres de messagerie vocale via l'onglet Options dans Outlook, et d'autre par le formulaire personnalisé spécial qui s'affiche sur un message vocal dans Outlook et permet de lire le message incorporé sans lancer un lecteur multimédia séparé. De plus, la fonctionnalité qui vous permet d'écrire des notes audio et de les enregistrer avec le message vocal ne sera pas disponible. Mais, même sans Outlook 2007, les utilisateurs qui ont activé la messagerie unifiée peuvent toujours utiliser OWA 2007 pour accéder aux paramètres de messagerie unifiée (sur la page d'options OWA), ainsi que le formulaire personnalisé pour message vocal dans OWA.

Q. Mon entreprise dispose déjà d'un réseau SAN et je souhaite y connecter Exchange 2007. Mais j'ai entendu beaucoup de choses sur le stockage DAS (direct attached storage), et j'hésite à choisir cette solution. Qu'en pensez-vous ?

R. Il n'existe pas de bonne ou de mauvaise réponse à cette question ; cela dépend vraiment de la stratégie et des scénarios de votre entreprise (surtout si vous disposez déjà d'un réseau SAN). Si vous envisagez l'achat d'un nouveau SAN, l'ajout d'un autre réseau SAN ou une mise à niveau, nous vous recommandons de considérer DAS. Voici des informations à prendre en compte : Depuis juin 2007, Microsoft IT a déployé 17 serveurs de boîte aux lettres Exchange 2007 pour 40 000 boîtes aux lettres (avec des quotas variant de 500 Mo à 10 Go), qui utilisent tous la réplication continue en cluster (CCR) avec DAS. D'ici à septembre, nous comptons avoir 35 serveurs de boîte aux lettres Exchange 2007 avec 152 500 boîtes aux lettres, tous sur DAS. Donc, si vous vous demandez si DAS est approprié et utilisable à l'échelle d'une entreprise, la réponse est : absolument. Le stockage DAS est l'un des éléments clés qui ont permis à Microsoft IT d'augmenter les quotas d'utilisateurs tout en diminuant les coûts de stockage globaux. Pour plus d'informations sur cette topologie et ce déploiement et les économies impliquées, consultez la page microsoft.com/technet/itshowcase/content/64bitexchange2007.mspx.
Bien que le fait d'avoir tous vos serveurs connectés au même réseau SAN puisse a priori sembler représenter une économie de stockage énorme, cela n'est pas sans risque. Par exemple, l'un des problèmes courants est lié aux différents scénarios d'utilisation du logiciel connecté au réseau SAN. Si vous disposez d'une application de RH sur le SAN exécutant un processus par lot tous les soirs à 17:00 h, par exemple, ce pic d'E/S peut sérieusement affecter vos utilisateurs Exchange. L'absence d'E/S déterministe est un problème courant avec les déploiements SAN partagés.
L'un des avantages dont nous nous sommes également rendu compte avec DAS réside dans le fait qu'il est plus simple à gérer, car qu'il ne requiert pas d'administrateur de stockage dédié ou d'équipement spécial. Il est incrémentiel et facile à acheter et développer ultérieurement. Il est généralement assez bon marché, si bien que si vous souhaitez disposer de rechanges, cela ne vous ruinera pas.

Q. J'ai installé mon premier serveur Exchange 2007. Depuis, lorsque je tente de me connecter à l'aide d'Outlook 2003, j'obtiens une erreur indiquant que l'administrateur a bloqué ma version d'Outlook. (« L'administrateur de votre serveur Exchange a bloqué la version d'Outlook que vous utilisez. Veuillez contacter votre administrateur pour obtenir de l'aide. ») Or, je suis l'administrateur et je ne l'ai jamais bloquée. Que se passe-t-il ?

R. Ce comportement n'est pas inattendu. Lors de l'installation d'Exchange 2007, l'Assistant d'installation vous demande si vous exécutez des clients Outlook 2003 ou antérieurs ou Entourage dans votre organisation (voir la figure 2). Si vous avez répondu non à cette question, vous pouvez rencontrer ce problème.
Figure 2 Question sur les clients hérités lors de l'installation d'Exchange 2007
Figure 2 Question sur les clients hérités lors de l'installation d'Exchange 2007
Pour résoudre ce problème a posteriori (après l'installation), vous pouvez simplement créer une banque de dossiers publics à l'aide de la console de gestion ou de l'environnement de ligne de commande Exchange Management Shell et redémarrer le service Banque d'informations. Le redémarrage du service Banque d'informations est obligatoire dans ce cas, et les clients hérités (Outlook 2003 et versions antérieures) ne pourront établir de connexion au serveur qu'après ce redémarrage.
Par ailleurs, si vous exécutez l'installation sans assistance d'Exchange 2007, vous pouvez utiliser le commutateur /EnableLegacyOutlook pour spécifier comment vous voulez répondre à la question sur les clients hérités.

Q. En quoi cela intéresse-t-il Exchange 2007 que je me connecte au serveur à l'aide d'anciennes versions d'Outlook ? Pourquoi la création de la banque de dossiers publics et le redémarrage du service Banque d'informations règlent-ils ce problème ?

R. Les réponses à ces questions tournent autour de la présence de la banque de dossiers publics. Si vous vous rappelez, la banque de dossiers publics des versions antérieures d'Exchange est notamment utilisée pour le stockage des données de disponibilité des utilisateurs. Lorsqu'un utilisateur d'un Outlook hérité est connecté à son serveur Exchange via MAPI ou RPC sur HTTP et publie quelque chose sur son calendrier, les informations sur son état de disponibilité sont également publiées sur le serveur dans un dossier public spécial appelé Schedule+. C'est le seul moyen pour les clients Outlook hérités de savoir que les utilisateurs ont publié des données de disponibilité sur le serveur. C'est également leur seul moyen de savoir comment lire les informations de disponibilité des autres utilisateurs.
Exchange 2007 sait cela. C’est pour cette raison que s'il n'existe pas de banque de dossiers publics, Exchange 2007 bloque les versions antérieures des clients. Si Exchange 2007 autorisait la connexion des clients hérités, le client se heurterait à des erreurs fréquentes, car Outlook ne pourrait pas se connecter à la banque de dossiers publics pour publier les données de disponibilité, et la fonctionnalité du client serait limitée, car la recherche des disponibilités d'un utilisateur (lors de la planification d'une réunion avec quelqu'un d'autre, par exemple) ne fonctionnerait pas. C'est également pourquoi la création de la banque de dossiers publics résout le problème, car le serveur Exchange 2007 détecte alors que les clients hérités peuvent utiliser la fonctionnalité de publication des disponibilités et autorise la connexion à la boîte aux lettres.
Vous pourriez également tirer la conclusion suivante : les clients Outlook 2007 ne requièrent pas la banque de dossiers publics pour publier leurs informations de disponibilités. Cela est vrai, mais avec une condition.
Sans trop entrer dans les détails, disons que si une banque de dossiers publics est présente sur un serveur Exchange 2007, même un client Outlook 2007 publie les données de disponibilités des utilisateurs sur ce serveur. Cela permet à d'autres clients (certains probablement des clients Outlook hérités) de rechercher les informations de disponibilité d'un utilisateur Outlook 2007. Si les informations ne se trouvaient pas dans la banque de dossiers publics, les clients hérités ne verraient pas les informations pour l'utilisateur Outlook 2007, car rien n'alimenterait les informations dans la banque de dossiers publics. Toutefois, si la banque de dossiers publics n'est pas présente, un client Outlook 2007 ne tente pas de publier les données de disponibilité. Lorsqu'il n'existe pas de banques publiques, et que tous clients sont au moins des clients Outlook 2007, un autre mécanisme de recherche d'informations de disponibilité est utilisé. Dans ce mécanisme, les données de calendrier sont lues directement depuis les boîtes aux lettres des utilisateurs, sans créer de copie ailleurs. Pour en savoir plus, consultez les informations sur le service de disponibilité dans le fichier d'aide de votre serveur ou la documentation en ligne d'Exchange, à l'adresse go.microsoft.com/fwlink/?LinkId=69434.

Q. Je viens de lire l'article de la Base de connaissances 288894, qui parle du blocage de clients MAPI à l'aide d'une clé de Registre (voir support.microsoft.com/kb/288894). J'ai vérifié le Registre de mon serveur, mais cette clé n'est pas définie. Comment la banque exécute-t-elle ce blocage de version de client hérité ?

R. Bonne question ! En effet, la Banque d'informations Exchange 2007 n'utilise pas la valeur de Registre de désactivation de clients MAPI mentionnée dans cet article de la Base de connaissances pour bloquer les clients hérités. Ceci s'explique par le fait qu'il existe une possibilité qu'aucune banque de dossiers publics n'existe et, par conséquent, aucune modification de cette clé de Registre ne peut débloquer ces clients si aucune banque de dossiers publics n'est présente.
Le comportement de blocage des clients antérieurs à Outlook 2007 est simplement codé en dur dans la Banque d'informations Exchange 2007. Au démarrage du service, la banque vérifie la présence de la banque de dossiers publics, puis décide si seul Outlook 2007 sera autorisé à se connecter ou si des versions antérieures pourront également se connecter à leurs boîtes aux lettres. Cette vérification ne se produit qu'au démarrage du service. C'est pour cette raison que vous devez redémarrer le service de Banque d'informations après avoir créé la banque de dossiers publics afin que la modification prenne effet.

KC Lemson est Directeur expérience utilisateur pour Exchange Server. Elle prépare actuellement un doctorat dans une université prestigieuse non accréditée.
Nino Bilic est responsable du programme de capacité de prise en charge pour Exchange Server. Il envisage de devenir pilote de voiture de course professionnel dans Forza Motorsports 2.


 Vigilance s&#233;curit&#233;: Impact &#224; long terme du contr&#244;le de compte d'utilisateur
Vigilance sécurité
Impact à long terme du contrôle de compte d'utilisateur
Dr. Jesper M. Johansson

Le problème de l'exécution en tant qu'administrateur est évident : tout logiciel malveillant qui attaque les utilisateurs ou les applications qu'ils exécutent, bénéficiera du contrôle total de 90 % des ordinateurs infectés. La fonctionnalité Contrôle de compte d'utilisateur de Windows Vista est la solution apportée par Microsoft à un problème de sécurité répandu : le fait que plus de
90 % des utilisateurs actuellement sur la plate-forme Windows s'exécutent avec des privilèges d'administrateur. Bien qu'une exécution en tant qu'utilisateur standard sur Windows® XP soit possible (je l'ai fait), cela peut s'avérer très pénible. Par exemple, si vous voyagez fréquemment en utilisant Windows XP, vous verrez qu'en tant qu'utilisateur standard, vous ne pouvez pas modifier le fuseau horaire de votre système.
Le contrôle de compte d'utilisateur est la fonctionnalité qui est censée changer tout cela. Á vrai dire, il s'agit là de la première idée reçue. Le contrôle de compte d'utilisateur n'est pas simplement une fonctionnalité. Il s'agit d'une série de fonctionnalités, dont la plupart ne sont pas particulièrement évidentes. Je ne vais pas entrer dans les détails de l'implémentation du contrôle de compte d'utilisateur. Pour cela, je vous recommande vivement l'article de Mark Russinovich dans le numéro de juin 2007 de Technet Magazine, que vous trouverez en ligne à l'adresse technetmagazine.com/issues/2007/06/UAC.
Dans mon article, j'espère vous donner une vue impartiale de ce qu'est et n'est pas le contrôle de compte d'utilisateur et de la manière dont il devrait affecter la façon dont vous gérez les systèmes qui exécutent Windows Vista®.

Ce que semble être le contrôle de compte d'utilisateur
La fonctionnalité la plus visible du contrôle de compte d'utilisateur est la boîte de dialogue d'élévation, affichée à la figure 1. En fait, si vous deviez demander à un échantillon représentatif d'utilisateurs Windows Vista ce qu'est le contrôle de compte d'utilisateur, la majorité d'entre eux évoqueraient probablement la boîte de dialogue d'élévation agaçante.
Figure 1 Boîte de dialogue d'approbation du contrôle de compte d'utilisateur pour l'administrateur en mode d'approbation Administrateur
Figure 1 Boîte de dialogue d'approbation du contrôle de compte d'utilisateur pour l'administrateur en mode d'approbation Administrateur
En dépit de sa visibilité et de toutes les opinions sur le contrôle de compte d'utilisateur, je ne pense pas que l'essentiel du débat autour du contrôle de compte d'utilisateur ait grand chose à voir avec ce qu'est réellement le contrôle de compte d'utilisateur. En fait, on dirait qu'il règne vraiment une certaine confusion. Les experts écrivent des billets de blog, des commentaires dans des groupes de discussions et des articles intitulés par exemple « La fonctionnalité la plus énervante de Vista », et pontifient sur le nombre de personnes qui la désactiveront et pourquoi elle est si énervante.
Puisque peu d'entre vous ont tenté de comprendre ce qu'est le contrôle de compte d'utilisateur, pourquoi ne pas commencer cette chronique par cette explication ?

Qu'est-ce que le contrôle de compte d'utilisateur
Le contrôle de compte d'utilisateur est une tentative visant à permettre à un plus grand nombre d'utilisateurs d'exécuter Windows en tant qu'utilisateurs standard. En un sens, il s'agit de la version 2.0 de cette tentative. La version 1.0 se trouvait dans Windows NT® 3.1 et permettait à un utilisateur d'exécuter le système en tant que non-administrateur. Ce concept s'éloignait considérablement de Windows 3.1 16 bits et ses successeurs, Windows 3.11, Windows 95, Windows 98 et Windows Me, aucune de ces versions ne disposant du concept d'utilisateurs à faibles privilèges. La capacité d'un non-administrateur à faire quoi que ce soit d'utile dépendait de plusieurs facteurs, mais jusqu'aux versions Windows XP et Windows Server® 2003, les privilèges utilisateur moindres pouvaient au mieux être qualifiés d'inutiles, au pire de pénibles. Windows Vista introduit la première série de technologies destinées à faciliter les comportements modèles en ce qui concerne les privilèges utilisateur interactifs.
Bien qu'il soit correct d'affirmer que l'un des objectifs du contrôle de compte d'utilisateur était de fournir un certain niveau de protection pour les applications exécutées en tant qu'administrateur contre les applications qui ne le sont pas, ce n'était pas là l'objectif principal du contrôle de compte d'utilisateur. L'objectif principal consistait à nous lancer dans une voie où un plus grand nombre d'utilisateurs exécuteraient le système d'exploitation en tant qu'utilisateur standard, ce qui obligerait alors les développeurs à écrire davantage de programmes fonctionnant avec des droits d'utilisateur standard, réduisant ainsi le nombre de situations où les utilisateurs doivent être élevés. Á mesure que les développeurs écrivent plus d'applications compatibles avec le contrôle de compte d'utilisateur, le nombre d'invites reçues par l'utilisateur diminue et l'expérience utilisateur s'améliore. Ainsi, nous nous retrouvons idéalement dans une situation où la plupart des utilisateurs ne se connectent pas en tant qu'administrateurs et, avec un peu de chance, commencent à mettre en doute certaines des invites d'élévation qu'ils reçoivent. Moins ils recevront d'invites, plus les utilisateurs les examineront avec précaution avant de les autoriser.
Enfin, en théorie... Par extension, le nombre de logiciels malveillants pourra effectivement diminuer, mais cela dépendra des utilisateurs et de s'ils maintiennent le contrôle de compte d'utilisateur activé, ce qui n'arrivera que si les développeurs écrivent des logiciels qui fonctionnent avec ce contrôle et si les utilisateurs cessent de considérer les invites comme un exercice de clic rapide et prennent le temps de se demander si une requête d'élévation est légitime.
Afin d'atteindre l'objectif principal d'une augmentation du nombre d'utilisateurs pouvant se connecter la plupart du temps en tant que non-administrateur, le contrôle de compte d'utilisateur a été conçu de façon à satisfaire plusieurs objectifs préalables :
  1. Diminuer le nombre de scénarios qui requièrent l'élévation à un compte d'administrateur.
  2. Rendre l'élévation (automatique si possible) beaucoup plus simple qu'auparavant, où des bidouilles telles que l'exécution de runas.exe ou la déconnexion d'un compte et la connexion à un autre étaient nécessaires. En d'autres termes, réduire l'écart jusqu'à ce que les éditeurs de logiciels corrigent leurs applications.
  3. Fournir une certaine isolation aux applications qui s'exécutent avec des droits d'administrateur pour les protéger de celles qui ne le font pas.
  4. Permettre à certaines applications exposées de s'exécuter même avec des privilèges encore moindres chaque fois que cela est possible.
Deux de ces objectifs visent à rendre l'expérience utilisateur d'une connexion en tant que non-administrateur aussi agréable que possible. Les deux autres visent à protéger les applications qui sont particulièrement exposées.
Ce qui est intéressant, c'est que seuls deux de ces objectifs sont liés à la fonctionnalité généralement considérée comme le contrôle de compte d'utilisateur, et qu'un seul d'entre eux concerne réellement la tâche d'élévation. Pourtant l'élévation, c'est-à-dire le mécanisme par lequel une application demande des privilèges supplémentaires, fait l'objet de toutes les récriminations des utilisateurs car il s'agit de la seule manifestation vraiment visible de la série de technologies qui comprend le contrôle de compte d'utilisateur. L'objectif premier global n'a rien à voir avec l'élévation. L'idée était simplement de permettre à un plus grand nombre d'utilisateurs de se connecter en tant que non-administrateurs la majorité du temps. En fait, vous pourriez dire que l'intention était de réduire le nombre d'événements d'élévation.
Les objectifs liés à la tâche d'élévation même sont les objectifs 2 et 3. L'objectif n° 2 vise à faciliter l'élévation dans Windows XP, tandis que l'objectif n° 3 vise à fournir un certain niveau de protection pour les applications élevées. Les objectifs restants concernent des problèmes totalement différents. Toutefois, chacun de ces objectifs nécessitait des modifications du système d'exploitation. L'article de Mark Russinovich mentionné ci-dessus détaille ces modifications pour ceux que cela intéresse.
Comme je l'ai déjà dit, de très très nombreux articles et commentaires recommandent de désactiver le contrôle de compte d'utilisateur. Il est probable qu'un certain nombre d'utilisateurs désactiveront le contrôle sans même l'avoir souhaité, et qu'un plus grand nombre encore achèteront leur ordinateur dans de grands magasins, où il sera vendu avec une version de Windows Vista où le contrôle de compte d'utilisateur est déjà désactivé. Je trouve qu'il est scandaleux que des détaillants désactivent des fonctionnalités de sécurité importantes dans leur image de déploiement de système d'exploitation par défaut.
Malheureusement, la plupart des conseils de désactivation du contrôle de compte d'utilisateur sont souvent basés sur la première expérience. Lors de la configuration de votre ordinateur, vous recevez un certain nombre d'invites lorsque que vous installez des logiciels et effectuez les modifications nécessaires. Vous devez vous attendre à avoir une expérience administrative très différente lors de la configuration de votre ordinateur de celle que vous aurez une fois que l'ordinateur sera dans un état stable. Les premières semaines seront tout à fait différentes des semaines suivantes. Si vous essayez le contrôle de compte d'utilisateur sur un ordinateur qui est dans un état relativement stable, je pense que vous trouverez qu'il n'est vraiment pas particulièrement intrusif.

Ce que le contrôle de compte d'utilisateur n'est pas
Le contrôle de compte d'utilisateur n'a pas été expressément conçu pour être la fonctionnalité la plus agaçante de l'histoire de Windows. Cette série de technologies a plutôt été conçue pour permettre aux utilisateurs de ne pas devoir exposer leurs systèmes à du code potentiellement malveillant aussi fréquemment qu'ils l'ont fait ces dernières années.
Dans sa forme actuelle, le contrôle de compte d'utilisateur n'arrêtera pas vraiment les bons attaquants ou ceux qui sont aidés par de très bons attaquants. Si les pirates ne trouvent aucun autre moyen de contrer le contrôle de compte d'utilisateur, ils finiront certainement par demander l'aide de l'utilisateur pour y parvenir. Lorsqu'ils ont le choix entre des applications ludiques et la sécurité, on sait par expérience que les utilisateurs choisissent à chaque fois les applications ludiques. Les utilisateurs ont appris à ignorer les boîtes de dialogue. Par conséquent, ils continueront à le faire jusqu'à ce que nous réussissions à leur apprendre à faire autrement. Ceci résulte de plusieurs facteurs, notamment le fait que les boîtes de dialogues d'avertissement sont trop nombreuses, que les messages en eux-mêmes sont inutiles et que la plupart des manuels pour tels ou tels périphériques que les utilisateurs achètent incluent une remarque du type « cliquez sur oui dans la boîte de dialogue d'avertissement de sécurité pour l'ignorer ».
Le contrôle de compte d'utilisateur ne fournit pas une sécurité infaillible. En fait, il ressuscite l'intérêt de la bonne vieille attaque d'élévation de privilège local. Il s'agit d'une classe d'attaque qui a été largement ignorée dans la mesure où, sur Windows, presque tout le monde était un administrateur. Par conséquent, l'élévation à d'autres administrateurs était tout à fait inutile. Ceci étant dit, le contrôle de compte d'utilisateur modifie sans aucun doute la nature de telles attaques et transforme les règles du jeu pour ressembler davantage à ce qui prévalait sur UNIX il y a plus de 20 ans.
Le contrôle de compte d'utilisateur n'empêchera pas les pirates d'usurper vos données personnelles. Les données personnelles de l'utilisateur sont accessibles à cet utilisateur quels que soient les privilèges de l'utilisateur. Ainsi, une application, y compris malveillante, peut accéder aux données. Le contrôle de compte d'utilisateur ne modifie pas et ne peut pas modifier cela. Il n'élimine pas la nécessité d'être vigilant, méfiant, et paranoïaque, des qualités que nous devrions inculquer à tous nos utilisateurs finaux dès que possible.
Le contrôle de compte d'utilisateur n'a pas été conçu pour protéger une application s'exécutant avec des privilèges élevés de toutes les attaques par une application qui s'exécute avec des privilèges normaux lors de la même session. Bien que le contrôle de compte d'utilisateur fournisse une isolation de processus faible, l'objectif de conception du contrôle de compte d'utilisateur n'était pas d'isoler les applications les unes des autres.

La rumeur
Microsoft a lui-même contribué à la rumeur concernant le contrôle de compte d'utilisateur et aux malentendus quant à sa fonctionnalité. Dans le Guide sur la sécurité de Windows Vista, par exemple, le chapitre « Protection contre les logiciels malveillants » présente le contrôle de compte d'utilisateur comme la principale technologie impliquée microsoft.com/technet/windowsvista/security/guide.mspx). Il recommandent, pour l'essentiel, d'exécuter le système d'exploitation avec le contrôle de compte d'utilisateur activé et répertorie plusieurs points à prendre en considération lors de l'utilisation du contrôle de compte d'utilisateur pour combattre les logiciels malveillants. Cependant, un point manque cruellement : Le contrôle de compte d'utilisateur n'arrête pas, et n'est pas conçu pour, les logiciels malveillants.
Certains des experts de la sécurité Windows les plus brillants, tels que Joanna Rutkowska, ont compris l'objectif du contrôle de compte d'utilisateur. Comme elle l'a noté dans un billet de blog le 4 février 2007, le contrôle de compte d'utilisateur « is a new security mechanism introduced in Vista, whose primary goal is to force users to work using restricted accounts, instead of working as administrators » (est un nouveau mécanisme de sécurité introduit dans Vista, dont l'objectif premier est d'obliger les utilisateurs à travailler en utilisant des comptes limités, plutôt que de travailler en tant qu'administrateurs) (theinvisiblethings.blogspot.com/2007/02/running-vista-every-day.html). Elle a bien compris le concept mais j'utiliserais plutôt le terme « permettre » au lieu d'« obliger ».
Ceci, cependant, entraîne une modification significative de la nature des attaques courantes contre Windows. Comme je l'ai mentionné précédemment dans cette chronique, ces vulnérabilités d'élévation des privilèges locaux, où un utilisateur peut passer d'un utilisateur standard local à un administrateur local, n'ont jamais été particulièrement intéressantes sur la plate-forme Windows.
Avec Windows Vista, l'idée est que les utilisateurs exécuteront les programmes en tant qu'utilisateur standard. Par conséquent, les problèmes d'élévation des privilèges locaux deviennent très intéressants. Malheureusement, c'est également là que nous rencontrons certaines des limites du contrôle de compte d'utilisateur. Gardez à l'esprit qu'il n'existe pas d'isolation réelle. Il n'existe pas de zone de sécurité qui isole les processus sur le même bureau. Le système d'exploitation inclut certaines mesures de protection destinées à assurer le blocage des voies de communication évidentes et non nécessaires, mais il serait impossible et malvenu de les bloquer toutes. Par conséquent, Microsoft ne considère pas comme des violations de sécurité les infractions de cette zone de sécurité inexistante. Mark Russinovich a évoqué cet aspect dans son blog à l'adresse blogs.technet.com/markrussinovich/archive/2007/02/12/638372.aspx.
Mark a entièrement raison. Microsoft est bien conscient qu'il n'existe pas de zone de sécurité entre un processus faible et un processus élevé sur le même bureau. Comme l'isolation entre les processus du même bureau n'a jamais été envisagée, on ne peut pas vraiment parler de vulnérabilité de sécurité lorsqu'il apparaît qu'il n'existe pas d'isolation entre les processus du même bureau. Évidemment, cela diminue la valeur du contrôle de compte d'utilisateur en tant que mécanisme de lutte contre les logiciels malveillants de premier ordre, mais il n'a pas été conçu à ces fins, malgré ce que vous pourriez lire dans divers articles, y compris dans certains documents provenant de Microsoft.
Ceci diminue-t-il la valeur du contrôle de compte d'utilisateur en ce qui concerne son objectif premier : permettre à un plus grand nombre de personnes d'exécuter le système d'exploitation en tant qu'utilisateur standard ? Non. L'existence ou l'absence d'une zone de sécurité imperméable entre une application malveillante à faible privilège et une application élevée ne modifie pas le fait qu'un plus grand nombre d'utilisateurs peuvent utiliser efficacement le contrôle de compte d'utilisateur et exécuter leurs ordinateurs Windows Vista en tant qu'utilisateur standard. En fait, contrairement à ce que certaines voix du secteur pourraient tenter de vous faire croire, j'ai écrit cet article (ainsi que tout mon livre sur la sécurité dans Windows Vista) en tant qu'utilisateur standard sur Windows Vista, et je n'ai absolument jamais reçu d'invite du contrôle de compte d'utilisateur me demandant d'accepter ce que je venais d'écrire !
Le fait que le contrôle de compte d'utilisateur ne résout pas tous les problèmes de sécurité ou ne possède pas une propriété qu'un grand nombre d'entre nous (moi y compris) aimeraient avoir, à savoir, une protection de premier ordre contre les logiciels malveillants, ne signifie pas qu'il ne s'agit pas d'une technologie de sécurité. La possibilité d'identifier des utilisateurs par comptes utilisateur séparés ne permet pas à elle seule d'empêcher les logiciels malveillants d'infecter votre système. Cependant, personne n'ira jusqu'à dire que les comptes d'utilisateur ne constituent par conséquent pas une technologie de sécurité. Le fait que le contrôle de compte d'utilisateur ne résout pas tous les problèmes que nous aimerions qu'il résolve ne signifie pas que ceux qu'il réussit effectivement à résoudre sont négligeables.
Le contrôle de compte d'utilisateur permet à des technologies telles que le Pare-feu Windows amélioré, Windows Defender et d'autres logiciels anti-programme malveillant d'empêcher le code malveillant de pénétrer dans votre ordinateur, et de l'empêcher de s'exécuter s'il arrive quand même à pénétrer dans votre système (que ce soit dû à une programmation habile ou à une application ludique). Aucune de ces technologies de sécurité ne sera fiable à 100 %, mais ce sont cependant toutes des technologies de sécurité importantes ayant toute leur place. Mais, comme je l'ai dit à maintes reprises, même si toutes les voies d'attaque sont fermées, en fin de compte, tout dépend de l'utilisateur. Si la personne au clavier choisit d'autoriser l'exécution du code malveillant, aucune solution technique au monde ne pourra l'empêcher.

Meilleures pratiques
Comment devez-vous utiliser le contrôle de compte d'utilisateur ? Devez-vous vous connecter en tant qu'administrateur en mode d'approbation Administrateur ? Comme mentionné maintes et maintes fois, le contrôle de compte d'utilisateur n'empêche pas l'injection de code d'une application à moindres privilèges vers une application à privilèges plus élevés située sur le même bureau. Cela signifie que ni l'exécution en mode d'approbation Administrateur ni l'exécution en tant qu'utilisateur avec élévation pendant la session (procuration de privilège) ne fournissent une isolation efficace. Cependant, les deux solutions sont préférables à l'exécution en tant qu'administrateur sous Windows XP ou avec le contrôle de compte d'utilisateur désactivé dans Windows Vista. Enfin, le logiciel malveillant sera probablement écrit pour profiter des applications élevées sur le bureau interactif.
La façon dont vous décidez d'exécuter le système d'exploitation dépend de votre propre philosophie de la gestion des risques. Si vous ouvrez une session en tant qu'utilisateur standard et utilisez la procuration de privilège pour élever une application, l'application élevée dispose d'un environnement utilisateur différent de celui des applications régulières. Cela diminue le risque d'une attaque par empoisonnement, où une application non élevée malveillante empoisonne l'environnement utilisateur pour une application élevée, mais ne supprime pas nécessairement la possibilité qu'une application non élevée prenne le contrôle d'une application élevée. Bien qu'une application malveillante qui s'est exécutée il y a plusieurs semaines ne puisse pas facilement empoisonner une application élevée que vous exécutez aujourd'hui, une application malveillante en cours d'exécution peut être en mesure de prendre le contrôle d'une application élevée. Vous devez prendre en considération le compromis que représente l'utilisation du mode d'approbation Administrateur ou d'une procuration de privilège par rapport à la simplicité d'utilisation qu'il offre.
Ceci renvoie à une série de meilleures pratiques pour le contrôle de compte d'utilisateur, résumée à la figure 2. À mon avis, la meilleure option est également la plus compliquée. Cependant, pour ceux qui sont réellement paranoïaques ou exposés, la meilleure solution consiste à exécuter le système d'exploitation en tant qu'utilisateur standard et à ne jamais effectuer d'élévation. Dans un sens, lorsque vous ouvriez une session en tant qu'administrateur sous Windows XP, si vous exécutiez du code malveillant, la partie était terminée. Sous Windows Vista, si vous exécutez du code malveillant, puis procédez à une élévation pendant cette session, la partie est probablement terminée. Vous êtes libre de choisir l'approche qui vous convient le mieux et fournit un niveau de protection dont vous êtes satisfait.
Figure 2 Meilleures pratiques de l'élévation de compte (Close Figure 2)

Niveau de protection | Méthode d'élévation
Pire | Désactivation du contrôle de compte d'utilisateur.
Mauvais | Élévation automatique des administrateurs.
Bon | Exécution en mode d'approbation Administrateur.
Mieux | Exécution en tant qu'utilisateur standard et élévation vers un compte administratif séparé.
Meilleur | Exécution en tant qu'utilisateur standard et passage de l'utilisateur à compte administratif séparé au lieu de l'utilisation du contrôle de compte d'utilisateur pour l'élévation.
De plus, le vrai paranoïaque ne fait pas confiance à l'éditeur lorsque celui-ci prétend que son application doit s'exécuter avec des droits d'administrateur ! L'un des exemples les plus visibles où cette déclaration est faite mais n'est pas vraie concerne Visual Studio® 2005 Service Pack 1. Lorsque vous lancez Visual Studio, vous êtes invité à l'exécuter en tant qu'administrateur. Cependant, ceci est uniquement vrai pour les développeurs qui doivent exécuter certaines tâches. Des informations supplémentaires sont disponibles à l'adresse msdn2.microsoft.com/en-us/vstudio/aa972193.aspx.

Le pouvoir aux utilisateurs
Les utilisateurs devraient pouvoir prendre plus de décisions réfléchies. Un certain nombre de professionnels de la sécurité pensent que les décisions relatives à la sécurité devraient être masquées à l'utilisateur. Leur justification implicite est les utilisateurs ne s'intéressent pas à la sécurité et ne sont pas assez intelligents pour apprendre à l'assurer correctement. C'est n'est qu'en faisant confiance au précepte InsérezVotreTechnologieAntiPréféréeIci, qu'ils seraient correctement protégés.
Je ne vois pas comment la technologie peut en fin de compte protéger les utilisateurs des attaques ciblant les utilisateurs. La majorité des attaques actuelles, y compris la quasi-totalité des attaques par hameçonnage, ont pour cibles principales les utilisateurs et la façon dont ils exécutent leurs ordinateurs, pas la technologie au sein de ces ordinateurs. Les plus efficaces de ces attaques peut allier des attaques sur les utilisateurs à des attaques sur la technologie, mais elles nécessitent souvent l'interaction de l'utilisateur pour pouvoir s'exécuter. On ne peut pas attendre de la technologie qu'elle offre une protection contre les attaques qui ne ciblent pas la technologie. J'ai écrit de nombreux articles à ce sujet il y a déjà quelques temps : technetmagazine.com/issues/2006/07/SecurityWatch.
Le contrôle de compte d'utilisateur oblige les utilisateurs à prendre des décisions relatives à la sécurité et les fournisseurs de technologie promettent déjà des solutions qui empêchent les utilisateurs de prendre ces décisions. Il est vrai que les utilisateurs préfèrent ne pas prendre la peine de comprendre la sécurité. Cependant, il est également vrai qu'aucun logiciel ne peut comprendre l'intention d'un autre logiciel. Aucun système de prévention d'intrusion ne peut dire si un site Web demande votre numéro de carte de crédit pour pouvoir vous envoyer un exemplaire de Windows Vista Security ou pour envoyer vos informations à une organisation criminelle douteuse. Seul l'utilisateur final peut effectuer cette distinction et uniquement s'il possède des informations correctes. En tant qu'ingénieurs logiciels, nous devons habituer les utilisateurs au fait qu'ils doivent prendre des décisions intelligentes en matière de sécurité, leur apprendre à les prendre et leur fournir les informations nécessaires.
Si nous persistons dans la voie actuelle, à savoir tenter d'empêcher les utilisateurs de prendre des décisions relatives à la sécurité, nous ne pourrons que constater que nous sommes incapables de les protéger. Les utilisateurs finiront par se lasser d'être piratés et de voir leur vie privée, leurs comptes en banque, leur identité, leur dignité et leur estime personnelle violés. Quand cela se produira, ils arrêteront d'utiliser les produits qu'ils doivent acheter pour soutenir l'industrie. Il y a ceux dans l'industrie de pointe qui pensent que nous devons cacher le fait qu'il existe des problèmes de sécurité liés aux ordinateurs et à tout ce qui a trait à l'Internet. Ils pensent que les utilisateurs utiliseront aveuglément tout ce que nous leur proposons. Rien ne pourrait être plus éloigné de la vérité. Lorsque les utilisateurs se rendront enfin compte que nous n'avons pas été clairs et honnêtes avec eux, ils ne nous feront plus confiance et arrêteront d'acheter nos produits, causant ainsi l'effondrement de l'industrie que nous tentons de protéger en leur cachant les faits.
Le contrôle de compte d'utilisateur est une étape importante de la responsabilisation des utilisateurs en termes de sécurisation de leurs systèmes. Il ne s'agit en aucun cas d'une solution de sécurité complète mais, comme première tentative d'incitation des utilisateurs à exécuter leur système avec des privilèges moindres, c'est sans aucun doute un grand pas dans la bonne direction.

Dr. Jesper M. Johansson est ingénieur de sécurité principal chargé des problèmes de sécurité logicielle et contribue à l’élaboration de TechNet Magazine. Jesper est titulaire d'un doctorat en systèmes d'information de gestion et possède plus de 20 ans d'expérience dans le domaine de la sécurité informatique.


 Histoires de Bureau: R&#233;cup&#233;ration d'ordinateur avec Windows&#160;PE
Histoires de Bureau
Récupération d'ordinateur avec Windows PE
Wes Miller

Dans les chroniques précédentes, j'ai évoqué le fait que notre vision initiale de Windows PE était d’en faire un environnement de déploiement. Mais comme tout bon produit, Windows PE a évolué bien au-delà de cette vision. Les clients (OEM, au départ) souhaitaient vivement pouvoir créer une solution unique pour la production et la récupération automatique utilisateur ; ainsi plusieurs entreprises ont créé
des solutions Windows® PE qui fonctionnent dans les deux cas.
La plupart des outils de récupération qui existent aujourd’hui reposent sur la mise en miroir du processus de déploiement pour la remise en état d’un système dans un état correct connu. Windows Vista® facilite considérablement la récupération par rapport à Windows XP et propose une prise en charge intégrée de la création d’image (consultez à ce propos l’article de Christine Fok sur les technologies de sauvegarde de Windows Vista dans ce numéro de TechNet Magazine).
Dans la chronique de ce mois-ci, j’expliquerai comment créer votre propre solution de récupération avec Windows PE. Windows PE 2.0 est disponible gratuitement en tant que composant du Kit d’installation automatisée (Windows AIK) pour tous les détenteurs d’une licence Windows. Cette licence s’applique non seulement au déploiement, mais également à l’utilisation de Windows PE pour la récupération et le dépannage.
De toute évidence, vous devrez tenir compte de vos propres personnalisations et mises au point, mais je traiterai ici des points généraux que vous devez connaître, que vous déployiez Windows XP ou Windows Vista. Si vous êtes familier de la capture d’image, vous en saurez déjà beaucoup à ce sujet.
Les composants clés de toute solution de récupération Windows PE sont :
  • Windows PE
  • Un utilitaire de création d'image
  • Un script de liaison (ou une application formelle) pour maintenir le tout
Vous voudrez peut-être aussi inclure la prise en charge SQL et ADSI (Active Directory® Service Interfaces). Avec la connectivité SQL, vous pouvez créer indirectement une solution qui permet à vos systèmes d’avoir une sorte de « nomenclature » qui définit les éléments nécessaires à l’installation. De même, une connexion à Active Directory peut s'avérer pratique pour la gestion des propriétés d'objet de compte par ordinateur (MAO).
Notez que Microsoft n'assure pas le support pour l’inclusion d'ADSI dans Windows PE, mais plusieurs articles en ligne expliquent comment s’y prendre (et lorsque c’est fait correctement, cela fonctionne plutôt bien). Si vous ne souhaitez pas vous lancer dans cette entreprise, vous pouvez ajouter la prise en charge SQL et y incorporer le flux de travail pour votre outil de récupération Windows PE. Si vous avez besoin de propriétés ADSI, vous pouvez configurer sur un système serveur une tâche planifiée pour interroger SQL Server™ puis Active Directory via ADSI (fonctionnant essentiellement en tant qu'intermédiaire d'intercommunication).
Cette solution n'est pas parfaite, et elle nécessite la création de scripts ou autre mécanisme d'automatisation, mais cette conception vous permettra d’interagir avec Active Directory à partir de Windows PE.
Notez que vous pouvez également utiliser l’utilitaire LDIFDE pour lire les informations Active Directory depuis Windows PE (pour plus d’informations, consultez l’article de la Base de connaissances à ce sujet à l’adresse support.microsoft.com/kb/237677). Vous pouvez par exemple utiliser la commande suivante :
ldifde -m -f x:\output.ldf -b <username> <domain netbiosname> <accountPassword> -s
<DC or domain name> -d "DC=contoso,DC=com" -r "(&(objectclass=<computerclassname>)
(netbuisname=<mycomputername>))" - l "<attributename>"
En entrant cette commande, vous récupérez un attribut à partir de l’objet Ordinateur spécifié dans x:\output.ldf, où le résultat peut ensuite être analysé.

Références SKU, bits et langues
Vous devez prendre en compte les versions, architectures et langues de Windows que vous avez à déployer. Dans une petite entreprise à paramètres régionaux spécifiques, vous ne devez probablement déployer qu'un seul système d’exploitation (Windows XP ou Windows Vista) ou vous utilisez ce qui est déjà installé sur vos nouveaux ordinateurs. Vous déployez probablement peu de systèmes Windows x64 pour l’instant, voire aucun. Et il y a de fortes chances que vous ne deviez prendre en charge qu'une seule langue. Cependant, plus votre entreprise est grande et internationale, plus vous êtes susceptible d'être confronté à diverses architectures, versions et configurations.
Dans une chronique précédente, j'ai expliqué que vous pouvez stocker des images de volume x64 et x86 dans le même fichier Windows Imaging Format (WIM). Cela ne vous fera toutefois pas gagner de place. Si vous créez une solution de récupération et que vous devez tenir compte des deux architectures, il est recommandé de stocker chacune d’elle dans un WIM distinct. De même, si vous assurez le déploiement et le support de Windows XP et Windows Vista, vous ne gagnerez pas de place en stockant les deux systèmes d’exploitation sur la même image. En fait, vous ne gagnerez de la place que si vous incluez de nombreuses instances des mêmes applications (par exemple Microsoft® Office System 2007) dans les deux déploiements. Les fichiers d’application ne doivent alors pas être stockés plusieurs fois, mais même dans ce cas, il est peu probable que cela entraîne des gains de place significatifs.
Méthodes de démarrage de Windows PE
Windows PE 1.6
Démarrage PXE à partir de l’installation à distance
Service (RIS) (sans RAMDisk)
Lecteur de disque dur
Lecteur Flash USB
PXE avec RAMDisk
CD-ROM/DVD avec RAMDisk
Lecteur Flash USB avec RAMDisk
Lecteur de disque dur avec RAMDisk

Windows PE 2.0
PXE avec RAMDisk
CD-ROM/DVD avec RAMDisk
Lecteur Flash USB avec RAMDisk
Lecteur de disque dur avec RAMDisk

Le démarrage PXE à partir des services d'installation à distance est optimal si vous avez besoin du PXE, mais il est important de noter que cette méthode met plus de temps à démarrer et consomme davantage de ressources réseau qu’un RAMDisk avec PXE.
Le lecteur de disque dur utilise une quantité minimale de mémoire mais verrouille le lecteur. Cette méthode est idéale si vous utilisez un scénario de récupération en bascule à double partition.
Le lecteur Flash USB facilite le démarrage. Cependant, que ce soit pour les scénarios avec ou sans RAMDisk, le démarrage UFD (lecteur flash USB) est aléatoire si l’OEM n’a pas vérifié que les systèmes de démarrage peuvent démarrer avec UFD et que ceux-ci ne portent pas le logo Windows Vista Capable (la prise en charge du démarrage UFD est une condition requise du logo). Le démarrage UFD nécessite un lecteur flash hautes performances (pour la lecture et l’écriture), ainsi que la prise en charge du format USB haut débit à partir du contrôleur USB et du BIOS.
Le démarrage RAMDisk (dans toutes ses versions) nécessite davantage de mémoire, mais assure des performances optimales et maintient Windows PE à l’écart en le plaçant dans un RAMDisk en mémoire. Le démarrage RAMDisk de Windows PE 1.6 doit de façon générale uniquement être utilisé sur les systèmes d’au moins 256 Mo de RAM. Windows PE 2.0 (qui est toujours un démarrage WIM avec RAMDisk) doit en général n’être exécuté qu’avec des systèmes disposant d'au moins 384 Mo de RAM.

Notez, cependant, que vous pouvez gagner beaucoup de place en stockant plusieurs SKU d’une version particulière de Windows dans le même WIM. Par exemple, supposons que vous combiniez Windows XP Professionnel à Windows XP Tablet PC Edition ou Windows Vista Édition Entreprise à Windows Vista Édition Intégrale (ces combinaisons occupent l’espace de manière efficace puisque deux SKU de la même version et du même niveau de service pack partagent le même code et les mêmes fichiers).
Pour terminer, la langue entre en jeu. Plus une entreprise est grande, plus le nombre de langues à prendre en compte est important. Avec Windows XP, vous pouvez choisir d’utiliser des versions localisées ou une interface utilisateur multilingue (MUI). Dans les versions de Windows XP entièrement localisées, presque toutes les petites chaînes ont été localisées dans la langue de destination. Dans MUI, en revanche, la langue de base est l’anglais et les modules linguistiques de MUI (et ultérieurement, les packs linguistiques LIP [Language Interface Pack]) ont modifié autant de chaînes de langue que possible. (MUI offrait des résultats satisfaisants dans Windows 2000 et de bien meilleurs résultats dans Windows XP et Windows Server 2003.)
Si votre entreprise utilise MUI, vous obtenez d’assez bons résultats en combinant diverses versions linguistiques dans le même WIM. Ceci s’explique par le fait qu’elles utilisent toutes des binaires anglais à la base. Ce n’est cependant pas le cas pour les versions localisées qui sont antérieures à Windows Vista. Puisque les binaires eux-mêmes sont localisés, le même binaire ne trouvera pas de correspondance entre les langues, ce qui signifie que vous devez stocker presque l’intégralité du système d’exploitation (et toutes les applications localisées) pour chaque langue.
Avec Windows Vista, vous pouvez considérer les versions localisées (localisées en tant qu'élément d’un seul binaire qui contient des ressources) comme obsolètes. Windows Vista utilise des fichiers de ressource .mui pour chaque langue (y compris l’anglais). Pour l'essentiel, l'architecture Windows Vista est dépourvue de langue, presque toutes les informations de langue résidant dans des fichiers MUI. Ainsi le stockage de plusieurs versions linguistiques de Windows Vista dans le même WIM entraînera un gain de place significatif. Le stockage de deux, quatre ou davantage de langues sous un seul WIM n'entraîne pas d'augmentation spectaculaire de la taille de l’image (et vous pouvez modifier ou ajouter des langues par la suite en fonction de vos besoins).
En bref, lorsque vous créez votre solution, vous devez savoir quelles versions de Windows et quelles versions d’autres applications partagent des binaires identiques, permettant ainsi le stockage d'une instance unique des fichiers. Ceci vous aidera à déterminer le nombre de fichiers WIM dont vous avez besoin pour toute l’entreprise.

Scénarios utilisateur
De façon générale, plus une entreprise grandit, plus elle devient complexe. La taille n’est pas la seule responsable, l’introduction de toute une série de variables est également en cause (davantage d’utilisateurs et de divisions, avec des besoins plus spécifiques).
Je me souviens d’une certaine entreprise multinationale qui possédait des dizaines de milliers d’utilisateurs et avait mis en place un processus de déploiement géré à partir d’un seul emplacement, tant au niveau géographique et qu'organisationnel. La personne qui dirigeait cette entreprise soulevait toujours des questions très difficiles. Par exemple, elle s’inquiétait à propos de certains de ses utilisateurs distants situés dans des régions d’Afrique qui n’avaient souvent pas une bonne connexion réseau (en fait, nombre d’entre eux se trouvaient à des centaines de kilomètres d’une ligne téléphonique). Cette personne souhaitait savoir comment ces utilisateurs pourraient récupérer leurs propres systèmes sans être déconnectés pendant des jours et sans devoir parcourir de grandes distances.
Lorsque vous développez un produit (et dans ce sens, vous devriez considérer votre solution de récupération comme un produit) vous devez penser à vos utilisateurs. Pensez aux besoins spécifiques de l’entreprise, mais également aux diverses complexités associées aux différentes catégories d’utilisateurs. Vous devez incorporer des cas d’utilisation, à l'aide de courtes descriptions, pour décrire chaque type d’utilisateur final que vous devez prendre en charge. Ces cas d'utilisation peuvent vous aider à identifier tout utilisateur accidentellement écarté de votre solution de récupération et garantir que vous prenez en compte les besoins de chaque type d’utilisateur.

La bonne version de Windows PE
Une autre décision importante consiste à déterminer quelle version de Windows PE correspond le mieux à vos besoins. Les articles précédents de cette chronique peuvent vous y aider, mais je vais essayer de rendre cette décision plus claire ici. Si l’une des affirmations suivantes est vraie, vous devez utiliser Windows PE 1.6 :
  • Vous récupérez uniquement Windows XP (ou Windows Server 2003)
  • Vous récupérez des systèmes qui ne sont pas compatibles ACPI (Advanced Configuration and Power Interface)
  • Vous récupérez des systèmes qui disposent de moins de 512 Mo de RAM
  • Vous récupérez des systèmes qui doivent démarrer en mode PXE (Pre-boot eXecution Environment) avec moins de 256 Mo de RAM
Si l’une des affirmations suivantes est vraie, vous devez utiliser Windows PE 2.0 :
  • Vous récupérez uniquement Windows Vista (ou Windows Server 2008)
  • Vous récupérez Windows Vista et Windows XP
  • Vous utilisez BitLocker™
Notez qu'ImageX (voir la section « Création, mise à jour et stockage ») et la plupart des solutions de création d’image tierces fonctionnent correctement avec les deux versions de Windows PE.

Démarrage de Windows PE
Il faut ensuite tenir compte de la manière dont Windows PE démarrera. Les scénarios utilisateur jouent ici un rôle clé. Est-il réaliste pour vos utilisateurs de transporter des CD-ROM ou des DVD pour la récupération ? Pourront-ils les installer sur un ordinateur portable lorsqu’ils seront en déplacement ? Et comment mettrez-vous ce support de récupération à jour ? Les images de récupération sur support amovible peuvent très rapidement devenir obsolètes.
Le scénario le plus courant auquel j’ai assisté est celui de la partition de disque dur secondaire. Le démarrage PXE constitue une autre solution. Vous pourriez également envisager l’utilisation de lecteurs USB externes ou même de lecteurs Flash USB (UFD) (mais vous devez garder à l'esprit que le matériel en question doit explicitement prendre en charge le démarrage à partir d’un périphérique UFD).
L'encadré « Méthodes de démarrage de Windows PE » décrit les méthodes prises en charge pour démarrer chaque version de Windows PE et propose des considérations importantes sur chaque méthode.
En termes de démarrage de Windows PE, votre objectif doit être de démarrer le processus de récupération tout en remplissant certains critères :
  • Interaction utilisateur réduite au maximum
  • Nombre d'éléments amovibles (supports ou périphériques) réduit au maximum
  • L'ordinateur ne dispose peut-être pas de connexion réseau
  • L'ordinateur peut ne pas être capable de démarrer localement (Windows ne démarre pas)
Les administrateurs considèrent souvent que mettre Windows PE (tel quel ou dans un RAMDisk) sur le disque dur n’est pas une solution viable en raison d’inquiétudes quant à une éventuelle défaillance du lecteur. Mais il s’agit en réalité d’une option tout à fait viable étant donné la fiabilité des disques actuels, et que si le lecteur physique connaît effectivement une défaillance, l’utilisateur ne pourra de toute façon pas récupérer lui-même son système.
Je préfère créer une partition secondaire et y stocker l’image de récupération. Je ne crois pas au masquage de la partition (cela ne fait que mystifier les utilisateurs). L’utilisation d’une liste de contrôle d’accès (ACL) par-dessus n’est pas viable non plus (à moins que vos utilisateurs ne soient pas des administrateurs locaux.
En réduisant la partition utilisée pour Windows (voir l'encadré « Création d'une partition de récupération »), vous pourrez peut-être libérer suffisamment de place pour enregistrer Windows PE et votre image de récupération. Pour placer Windows PE sur la partition secondaire, il vous suffit de créer le secteur d’amorçage approprié sur la partition de récupération et de placer Windows PE sur cette partition (les documents inclus dans Windows AIK et les versions précédentes de Windows PE expliquent ce processus, donc je ne m’étendrai pas ici). Il convient toutefois de se rappeler que la partition utilisée pour le démarrage est fonction de la partition marquée comme active. Diskpart possède un indicateur actif et un indicateur inactif tout aussi important. Pour démarrer la partition de récupération depuis Windows (ou depuis une copie de Windows PE), utilisez diskpart pour basculer entre les partitions actives (voir la figure 1). Vous trouverez ci-dessous un exemple de script diskpart (utilisez diskpart /s nameofscript.txt) utilisé pour basculer un système à deux partitions sur disque unique :
SEL DIS 0
SEL PAR 1
INACTIVE
SEL PAR 2
ACTIVE
EXIT
Figure 1 Diskpart modifiant la partition active
Figure 1 Diskpart modifiant la partition active
Il s'agit du processus que de nombreux outils de récupération grand public utilisent pour basculer les partitions (ce qui peut uniquement être effectué depuis Windows PE pour certains types de partitions, tels que les partitions OEM masquées). Parfois ces outils démasquent également un type de partition OEM masquée.

Création, mise à jour et stockage
Création d'une partition de récupération
Le processus de création d'une partition de récupération sans modification de Windows est simple, une fois que vous connaissez les étapes que cela implique. Voici une description rapide de ce que vous devez faire. Notez que ce processus nécessite Windows PE 2.0. Vous n’utilisez peut-être pas Windows PE 2.0 pour le déploiement ou la récupération, mais vous devez utiliser la version 2.0 pour cette tâche. Ce processus peut également être utilisé lors du déploiement de Windows Vista et pour créer une partition de démarrage à utiliser pour les fichiers de démarrage BitLocker, puisque BitLocker nécessite au moins deux partitions (une pour les fichiers de démarrage et l’autre pour le reste du système Windows).
  1. Défragmentez votre disque (ceci peut contribuer à accélérer le processus de réduction, qui prend énormément de temps)
  2. Démarrez sur Windows PE 2.0
  3. Exécutez diskpart (si vous le souhaitez, vous pouvez créer un script pour les étapes 4 à 9 et transmettre à diskpart l’argument suivant : /s nom_de_votre_script
  4. SEL VOL 1 (ou le volume que vous voulez réduire)
  5. SHRINK DESIRED=N MIN=N (indiqué en mégaoctets, DESIRED est l’objectif et MIN est le minimum absolu dont vous avez besoin)
  6. Lorsque la réduction est terminée, exécutez SEL DIS 0
  7. CRE PAR PRI (vous pouvez spécifier SIZE=N si vous voulez indiquer une autre taille que celle du reste de disque)
  8. ASSIGN LETTER=N: (cette lettre est uniquement utilisée dans Windows PE)
  9. Quittez diskpart
  10. FORMAT N: /Q /Y /FS:NTFS (NTFS formate la nouvelle partition)
  11. Exécutez bootsect N: /nt60 pour 2.0, /nt52 pour 1.x)
  12. Copiez les fichiers Windows PE souhaités sur la partition de récupération
  13. Arrêtez le système

ImageX est une solution disponible gratuitement, mais vous utilisez peut-être déjà un autre outil de création d’image depuis longtemps. Vous pouvez utiliser l’outil avec lequel vous êtes le plus à l’aise. Si vous envisagez d'utiliser ImageX, il y a plusieurs choses qui valent la peine d’être notées que j’apprécie beaucoup (outre son prix). En particulier, ImageX est agressif en termes de compression. Autre aspect attrayant : il est relativement facile d’ajouter des éléments à une image et de la modifier.
J’apprécie également le fait qu'ImageX permet de mettre en image un ou plusieurs volumes de façon non-destructive, ce qui vous permet de conserver les données utilisateur simplement en les déplaçant. En d’autres termes, lorsque vous récupérez Windows, vous n’avez pas à effacer le volume tout entier.
Ensuite, bien sûr, vous devez décider où stocker l’image. En supposant que votre solution utilise une partition de récupération, vous pouvez y stocker un fichier WIM ou un autre fichier de création d’image. Vous pouvez même envisager d'utiliser des Services de déploiement Windows (WDS), de créer une image de système d’exploitation standard et de la stocker sur le réseau. Ceci permet de jouir d'une solution de récupération commune disponible dans l’ensemble de votre infrastructure. Bien sûr, si vous avez des utilisateurs sur le terrain (tels que les employés cités plus haut qui travaillent dans des parties reculées du monde), vous devrez veiller à ce qu’ils aient leur propre solution disponible lorsqu’ils ne peuvent pas se connecter au réseau.
J’ai mentionné plus haut la possibilité d’utiliser des supports, tels que les DVD, mais je ne suis personnellement pas favorable à cette solution pour une utilisation générale pour différentes raisons. Par exemple, la taille d’une image peut rapidement augmenter et dépasser celle d’un DVD, et ce genre de disque peut difficilement être mis à jour. Cela ne veut pas dire que les supports optiques n’ont pas leur place ; vous devez simplement tenir compte du meilleur scénario pour un type donné d’utilisateurs. Ma préférence, si vous ne l’avez pas encore deviné, va au stockage de l’image sur une partition de récupération, un disque dur USB ou un lecteur flash, ou, lorsque c’est faisable, sur le réseau à l’aide de WDS.
WDS est une option attrayante du fait qu’une image centralisée peut facilement être mise à jour. Vous savez certainement que des mises à jour de Windows sont publiées tous les mois et que ces mises à jour sont généralement critiques. Planifiez votre solution de sorte que l’image de récupération soit la plus à jour possible. Avec WDS, vous pouvez mettre l’image à jour sur chaque serveur et l’image est complète.

Inquiétudes sur les données utilisateur et les paramètres
Lorsque vous planifiez une solution de récupération, vous devez garder certains problèmes à l’esprit. L'un des aspects essentiels de la planification d'une solution de récupération consiste à garantir que les données utilisateur sont également sécurisées. Il faut éviter qu’un utilisateur sur le terrain exécutant une récupération découvre qu’il a perdu toutes ses données importantes au cours de celle-ci. Dans l’idéal, il est préférable de stocker les données utilisateur ailleurs que sur la partition C: à moins de faire très attention à la façon dont la récupération du système est gérée.
J’ai mentionné plus haut qu’ImageX vous permet de restaurer un disque de manière non destructive. Il déplace par exemple l’arborescence du répertoire Documents and Settings (ou Users) vers un autre répertoire pour qu’un utilisateur ou un script puissent récupérer manuellement les fichiers une fois la récupération terminée. Les utilisateurs qui stockent tous leurs fichiers sous leur profil ou qui utilisent des profils itinérants doivent, dans la plupart des cas, pouvoir récupérer un système sans perdre de données utilisateur. Mais il est important de se rappeler qu’à moins de concevoir soigneusement votre solution de récupération ou d’avoir une solution de sauvegarde parfaite, vous pouvez encore perdre une certaine quantité de données utilisateur.
Souvenez-vous que malgré toute votre planification, certains utilisateurs stockeront des informations à d’autres endroits que dans leur profil. Vous devez vous assurer que votre solution tient compte du fait qu’elle écrasera peut-être des données utilisateur par accident et avertir les utilisateurs avant de le faire.
Si vous utilisez le système de fichiers EFS, assurez-vous que votre plan de récupération principal est exécuté (pour éviter de perdre des données en raison d’un chiffrement irrécupérable). De même, si vous utilisez BitLocker, soyez prêt à récupérer les volumes qui ont été chiffrés avec lui. Ceci implique l’utilisation de Windows PE 2.0 (1.x ne peut pas interagir avec BitLocker). Pour plus d’informations sur la récupération BitLocker, consultez le blog à l'adresse blogs.msdn.com/si_team.
Enfin, préparez-vous au fait que certains utilisateurs seront contrariés lorsqu’une partie de leurs personnalisations ou applications auront disparu. Les personnalisations (pour les applications et Windows lui-même) sont stockées à certains endroits aléatoires, et pas uniquement dans le profil utilisateur. En restaurant l’intégralité de la partition du système d’exploitation, certains utilisateurs demanderont « où est passé x ? » ou « pourquoi est-ce que Word n’affiche plus y ? ». Préparez les utilisateurs afin qu’ils sachent que l’environnement ne sera peut-être pas exactement identique à celui de la veille.
La création de votre propre solution de récupération avec Windows PE prend du temps, et vous devez penser à vos utilisateurs lorsque vous planifiez et organisez la solution. Une solution de récupération ne doit pas nécessairement être très complexe, elle doit simplement permettre à votre utilisateur de pouvoir redevenir opérationnel en un minimum de temps et avec un minimum de support technique.

Wes Miller est responsable du développement chez Pluck (www.pluck.com) à Austin, au Texas. Auparavant, il a travaillé chez Winternals Software à Austin et chez Microsoft en tant que responsable de programme et responsable de produit pour Windows. Vous pouvez contacter Wes à l’adresse suivante : technet@getwired.com.


 Sur le terrain: Collation gratuite et conseils de formation
Sur le terrain
Collation gratuite et conseils de formation
Michael Dragone

Je suis ingénieur système dans une compagnie d'assurances de titres qui emploie environ 150 personnes. Nos besoins en informatique sont relativement simples puisque notre application métier principale est de type Web. Par conséquent, nous interagissons principalement avec Internet Explorer® et, bien sûr, Microsoft® Office.
Avec ce type de déploiement d'applications relativement simple, vous pourriez penser que nos utilisateurs rencontrent peu de problèmes pratiques liés à ces applications, voire pas du tout. Pour l'essentiel, vous auriez tout à fait raison. Les problèmes qui se présentent pourraient être résolus en quelques secondes par un lecteur moyen de TechNet Magazine.
Par expérience, j'ai appris qu'une bonne éducation des utilisateurs est essentielle pour limiter ces problèmes au minimum. J'aimerais partager avec vous deux des pratiques que nous avons mises en place pour nos utilisateurs, dans l'espoir que vous pourrez faire de même.
La première porte sur les séances de formation. De temps à autre, nous organisons une séance de formation couvrant les systèmes que nous venons d'installer, les nouvelles applications que nous déployons et les nouvelles stratégies en place. De même, si nous introduisons une modification système majeure, nous organisons une séance de formation spéciale pour couvrir cette modification et répondre aux questions éventuelles. Ces séances de formation sont organisées avant de procéder à la modification de façon à préparer nos utilisateurs.
Par exemple, nous planifions le déploiement d'une mise à niveau majeure de notre système téléphonique. Nos utilisateurs pourront toujours accéder à leur messagerie vocale avec Outlook®, comme c'est le cas actuellement, mais le logiciel à utiliser pour ce faire sera différent. Nous préparons une séance de formation pendant laquelle le fournisseur du système téléphonique fera une démonstration de la nouvelle interface et répondra aux questions, bien avant le déploiement effectif.
Nous en profiterons également pour couvrir les sujets qui posent problème à nos utilisateurs. Si vous avez un tant soit peu examiné votre système de tickets de dépannage, vous saurez quels sont ces problèmes. Par exemple, une de nos utilisatrices ne comprenait pas pourquoi deux systèmes distincts devaient avoir deux mots de passe différents. Aucune explication verbale ne pouvait la convaincre. Jusqu'à ce qu'elle voie le problème et l'explication représentés sur une diapositive PowerPoint® et connaisse l'illumination.
L'expérience m'a appris que, quel que soit le sujet, les clés d'une réunion réussie sont une collation gratuite et un ton léger. Encouragez vos utilisateurs à poser des questions, y compris celles qui peuvent paraître idiotes.
Mon deuxième conseil consiste simplement à ne pas hésiter à prendre son bâton de pèlerin. Tous les jours, je prends 10 ou 15 minutes pour discuter avec nos utilisateurs. Si je vois quelqu'un procéder de façon peu orthodoxe, je m'arrête et prends quelques minutes demander ce que la personne fait et pourquoi. Dans la plupart des cas je parviens à démontrer une méthode plus simple. Par exemple, l'un de nos utilisateurs changeait constamment l'ordre de ses barres d'outils Outlook par accident, mais était bien incapable de rétablir l'ordre de départ. Il a pris son mal en patience jusqu'à ce que je remarque le problème par hasard. Je lui ai montré comment modifier ses barres d'outils pour qu'il puisse les remettre comme il le souhaite en cas de modification accidentelle.
Les autres utilisateurs peuvent également avoir un certain nombre de problèmes qu'ils ne souhaitent pas soulever auprès de votre centre de support ou du groupe d'assistance technique pour différentes raisons. Certains se sentent gênés et pensant que leurs questions sont idiotes et ne méritent pas l'attention du service informatique. D'autres n'hésitent pas à conserver un clavier ou une souris à peine fonctionnels parce qu'ils ignorent que le service informatique dispose de périphériques de remplacement justement pour ce genre de problème. En prenant quelques minutes pour parler avec vos utilisateurs, vous pourrez résoudre la plupart de ces problèmes et trouver des idées pour la séance de formation suivante. (Et n'oubliez pas la collation gratuite).
Il est important de conserver les utilisateurs à l'esprit dans tous aspects de votre travail. Sinon toutes, la plupart des modifications que vous apportez à vos systèmes, stratégies et procédures auront un impact direct ou indirect sur les utilisateurs. Chaque utilisateur est unique et réagira de façon différente à ces modifications.
La technologie est devenue une deuxième nature pour la plupart d'entre nous, et il nous est très facile d'oublier que nos utilisateurs ne sont pas nécessairement des experts dans ce domaine. Avec un peu de patience et des formations bien ciblées, vous verrez que les utilisateurs finiront par aimer les ordinateurs autant que vous. Par petites étapes, bien sûr.

Michael Dragone est ingénieur système pour une compagnie d'assurances de titres à New York. Il est certifié MCDST et MCSE : Messagerie. Lorsqu'il a un peu de temps libre, il apprécie les longues promenades sur la plage, jouer avec son chien et les serveurs disposant de tous les correctifs requis.


 La vie secr&#232;te de Windows: L'art de l'&#233;quilibrage des DLL connues
La vie secrète de Windows
L'art de l'équilibrage des DLL connues
Raymond Chen

La fonctionnalité de Windows appelée familièrement « DLL connues » concerne une liste de DLL (bibliothèques de liens dynamiques) qui bénéficient d'un traitement spécial de la part du chargeur de module du noyau. Lorsque le chargeur voit un programme avec un lien dynamique vers une DLL connue lors du chargement, la copie connue est immédiatement utilisée, sans tenir compte de l'algorithme de recherche qui s'applique normalement au chargement de module. Ce mécanisme est parfois considéré comme une fonctionnalité de sécurité (fonctionnalité plutôt faible, soit), mais les DLL connues n'ont en fait jamais été conçues dans une optique de sécurité. L'objectif des DLL connues visait uniquement les performances.
La mécanique de la fonctionnalité des DLL connues s'est modifiée au fil du temps. Dans certaines versions de Windows®, le noyau utilise la liste des DLL connues comme un point de départ, examine ensuite toutes les DLL auxquelles sont liées ces DLL connues, puis toutes les DLL auxquelles sont liées ces DLL, etc. Ce processus développe la fermeture transitive de toutes les dépendances et les traite toutes comme connues. Dans d'autres versions de Windows, cette fermeture transitive n'est pas générée ; au lieu de cela, seules les DLL répertoriées explicitement comme connues sont traitées comme telles. Dans certaines versions de Windows, les DLL connues sont préchargées par le noyau lors du démarrage du système ; dans d'autres versions, ce n'est pas le cas et le noyau utilise simplement la liste pour ne pas avoir à rechercher le chemin pour une DLL.
Mais l'interprétation de la liste des DLL connues n'est pas le seul aspect qui évolue de version en version. Le contenu de la clé de Registre KnownDLLs fait également l'objet de modifications. L'équipe performances de Windows modifie à la fois la liste des DLL connues et les règles par lesquelles la liste est convertie en une série de DLL, en fonction de sa compréhension de l'utilisation de Windows par les applications. Comme souvent dans l'ingénierie, c'est un jeu d'échanges. Le préchargement de DLL connues au démarrage du système permet aux applications qui utilisent ces DLL de démarrer plus rapidement, mais cela a un prix. Le démarrage du système est plus long et la consommation de mémoire augmente, puisque ces DLL restent en mémoire, qu'elles soient utilisées ou non. Le but est d'améliorer les performances de certains composants aux dépends d'autres. Il est très difficile de parvenir à un bon équilibre et, comme vous pouvez le voir, cet équilibre est constamment ajusté pour s'adapter à l'évolution du schéma d'utilisation.
Les DLL connues ont des conséquences plus subtiles, notamment le fait qu'elles ont la priorité sur les DLL redirigées localement. (Nous avons analysé les DLL redirigées localement dans l'édition de janvier 2007 de cette chronique). En y réfléchissant bien, vous vous rendrez peut-être compte qu'il s'agit en fait d'un comportement normal, et non d'une faiblesse. Après tout, le but de la liste de DLL connues est de contourner le chemin de recherche et donc d'augmenter la vitesse de chargement des DLL. Si le noyau devait vérifier les DLL redirigées localement, cela ne ferait que ralentir le processus. Vous pensez peut-être qu'il est facile d'ajouter un seul annuaire au chemin de recherche, mais lorsque que cet annuaire peut se trouver sur un serveur réseau de l'autre côté du monde, l'ajout d'un seul annuaire peut provoquer d'énormes pertes de performances.
Croyez-le si vous voulez, nous avons rencontré certains programmes qui s'appuient sur le fait que des DLL spécifiques sont connues. L'un de ces programmes possédait un fichier appelé Version.dll dans l'annuaire d'applications. En temps normal, cette copie privée de Version.dll remplacerait celle présente dans le répertoire système, mais dans Windows XP, Version.dll est répertoriée en tant que DLL connue. Cela signifie que la copie présente dans l'annuaire d'applications est ignorée et que la version du répertoire système l'emporte.
Dans Windows Vista®, Version.dll n'est pas répertoriée en tant que DLL connue, probablement parce que les ingénieurs de performances ont déterminé que les applications ne l'utilisaient pas suffisamment pour justifier son coût. Par conséquent, ce programme ne fonctionnait plus sous Windows Vista parce que l'application s'appuyait sur le fait que le noyau ignorerait la DLL que le programme avait installée dans son propre annuaire d'applications. Le programme installait volontairement une DLL dans le chemin de recherche et comptait ensuite sur Windows pour l'ignorer ! Il me semble que si l'on souhaite que Windows ignore un fichier, le mécanisme le plus efficace consiste simplement à ne pas installer le fichier au départ. Le comble, c'est que l'entreprise auteur du programme a soumis un rapport de bogue soutenant qu'elle avait découvert une faille de sécurité.

Raymond Chen, The Old New Thing, et son livre du même titre (Addison-Wesley, 2007) traitent de l’historique de Windows et de la programmation Win32. Il n'a aucune idée de sa taille de Tee-shirt.