Compatibilité des applications

Dans le kit de compatibilité des applications 5.5

Chris Corio and Chris Jackson

 

À une vue d'ensemble :

  • Gestionnaire de compatibilité d'application et le Framework Agent
  • Évaluateurs de compatibilité
  • Stocker et d'analyse les données
  • L'analyseur d'utilisateurs standard
  • Outil de test de compatibilité Internet Explorer

Contenu

Gestionnaire de compatibilité d'application
Évaluateurs de compatibilité
Base de données ACT
L'analyse
Synchronisation en ligne
L'analyseur d'utilisateurs standard
Outil de test de compatibilité Internet Explorer
Conclusion

Application Compatibility Toolkit (ACT) vous aide à gérer le processus pour déterminer si vos applications sont compatibles avec une nouvelle version de Windows avant de les déployer. Il peut également vous aider à déterminer une mise à jour du système d'exploitation est impact ces applications. Un nombre d'articles et livres blancs écrits sur l'utilisation de la 5.5 ACT ont été. Ce que nous voulons dans cet article est accédez sous le capot et découvrir le fonctionne de chacune des outils de cette boîte à outils. Nous allons commencer par l'outil de la plupart des gens associer la trousse à outils : le Gestionnaire de compatibilité des applications.

Gestionnaire de compatibilité d'application

Le Gestionnaire de compatibilité d'application fournit une infrastructure pour découvrir d'informations sur votre environnement de production, d'organiser vos analyses de ces données et pour le processus de test du lecteur. Nous allons aller dans cet outil pour comprendre le fonctionnement.

packages de déploiement Évaluateur (MSIs) Vous déployez des packages de collection de données ACT 5.5 comme MSIs, mais si vous analysez le fichier MSI, vous vous trouvez que qu'il ne fait pas réellement le volume de travail. Au lieu de cela, il extrait un fichier exécutable qui effectue l'installation. la figure 1 illustre l'arborescence de processus pour une exécution généralement le processus de configuration.

fig01.gif

Figure 1 Agent Framework installation processus arborescence

La troisième instance de msiexec.exe, apparaît en rouge, est une intéressante : il s'agit d'un appel à désinstaller le fichier MSI d'origine. En fait, le fichier MSI extrait un .exe (affiché en tant que fichier .tmp) et puis désinstalle le MSI externe. Version ultérieure, un deuxième MSI (appelée par msiexec) est installé. Dans un test, le déploiement MSI terminé l'installation à 1:19:46, elle la désinstallation de 1:19:50 terminée. Le fichier MSI apparaît installé pour que 4 secondes ! Par conséquent, lors du déploiement d'un paquetage de collection de données, ne recherchez de l'installation du fichier MSI pour déterminer si vous devriez pour l'installer sur un ordinateur cible, car vous ne risquez pas le trouver. Vous devez rechercher des autres preuves que vous avez installé les agents à chaque station de travail.

Par exemple, tandis que le fichier MSI vous déployez est ont un nouveau code produit généré chaque fois, le fichier MSI interne dispose toujours du même code de produit (DC93B45B-D4F5-4FFE-9B47-042BD6FA8CC5), et ceci peut être utilisé comme faits installé un package de collection de données ACT bien (que vous ne sont pas être certaines choisir celui que Cet encombrement tout paquetage de collection de données ACT). Notez que ce ne soit pas recommandé désinstaller un package de collection de données à l'aide cette entrée MSI ; nous aborderons la méthode recommandée pour désinstaller un package de collection de données ACT ensuite.

Afsetup.exe effectue l'essentiel du travail, et vous vous voulez être conscient de ce fichier binaire d'événements vous avez des problèmes avec votre déploiement d'agent. Vous pouvez désinstaller l'infrastructure agent à l'aide de la commande suivante :

%program files%\Microsoft Agent Framework\Agent Framework\afsetup.exe /uninstall

Agent de Framework Le Framework de Agent de 5.5 ACT fournit une structure pour la collecte de données d'une grande collection d'ordinateurs dans une entreprise. Un objectif de conception des agents est d'être adapté pour le déploiement dans un environnement de production et pendant. Par conséquent, le travail des agents individuels est optimisé largement performances (que vous remarquerez dans certains les décisions de conception effectuées dans les agents).

L'infrastructure elle-même est simple. Lorsque le Framework Agent est installé, vous trouverez ses fichiers dans % programme files%\Microsoft Framework Agent. Il s'exécute en tant que service (actdcsvc.exe) qui permet la planification et de lancement des agents. Le code XML trouvé dans le sous-répertoire Agent Framework\Data configure les agents à lancer en fonction d'un planning spécifié. Vous pouvez trouver l'agent de fichiers exécutables sous Framework\Agents Agent.

Agents sont rien de plus que les fichiers exécutables, le service Agent de cadre simplement la gère la planification et lance les fichiers exécutables appropriés comme indiqué dans l'installation et la configuration XML. la figure 2 illustre un exemple de l'arborescence de processus pendant les 5 premières minutes d'une installation de Framework Agent typique.

fig02.gif

La figure 2 arborescence de processus Agent de Framework

Ce que nous avons ici est un service simple simplement planifie et exécute des agents. Les agents, comme le travail, ainsi, explorons les.

L'agent d'inventaire 5.5 ACT collect.exe, est un des plus significatif. En fait, cet agent recherche dans les systèmes clients et compile un inventaire des applications. Des données requises pour planifier un projet de compatibilité d'application (nom application Alignement pour un fournisseur, version et éventuellement une instruction de prise en charge), l'agent d'inventaire exécute régulièrement très bien par rapport aux autres outils de stock de logiciels.

Quelle est particulièrement utile est non seulement et comment l'agent scours le système recherche de preuves (détaillées ci-dessous), mais comment bien qu'il puis nettoie les données avant de l'envoyer en même temps que. L'outil crée une série de « compartiments » et puis regroupe toutes les preuves trouvé dans la recherche détaillé ci-dessous, Rétablir, suppression des doublons et il le classement. L'agent cherche des preuves dans plusieurs emplacements pour trouver des applications.

La recherche de base de données MSI utilise l'API MsiEnumComponents pour énumérer toutes les applications installées à l'aide de Windows Installer.

La recherche de programmes Ajout/suppression Ouvre HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Uninstall et HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Uninstall et collecte des données de chaque sous-clé trouve bien ici.

La recherche de Shell Windows fonctionne en énumérant le contenu de dossiers HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell, ainsi que HKEY_USERS\ < … > \Software\Microsoft\Windows\CurrentVersion\Explorer\Shell dossiers pour chaque utilisateur avec un profil sur l'ordinateur. L'agent de recherche ensuite pour tous les fichiers et les liens dans ces répertoires ou de ses sous-répertoires (en particulier sans bureaux, qui tendance à être « lots de parking » pour les exécutables téléchargés du Web, pour réduire le bruit). Cette recherche capture logiciel qui, par exemple, n'enregistre pas elle-même dans Ajout/Suppression de programmes la mais ajoute un raccourci du menu Démarrer.

La recherche de chemins d'accès application énumère toutes les sous-clés dans la clé de Registre HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App les chemins d'accès, de prélèvement des applications qui ont eux-mêmes pour recevoir un chemin d'accès spécifiques au programme application enregistrés.

La recherche de variables environnement chemin d'accès recherche les fichiers exécutables de chaque répertoire (mais pas les sous-répertoires) pointe vers dans la variable d'environnement n'importe quel utilisateur chemin d'accès. Il recherche d'abord les fichiers exécutables dans chemins renvoyées par un appel à ExpandEnvironmentStrings (qui renvoie les variables d'environnement système et les variables d'environnement l'utilisateur actuel) ainsi que le contenu de \Environment HKEY_USERS\ < … > pour tous les autres utilisateurs. Cela permet le collecteur de stock Rechercher des applications (applications de ligne de commande généralement) installées en plaçant simplement le fichier dans le système de fichiers et puis ajoutez à la variable d'environnement chemin d'accès.

La recherche de gestionnaires d'extension de fichier examine chaque extension de fichier enregistré et capture des programmes enregistrés pour gérer les extensions de fichier. D'abord ouvrir HKEY_LOCAL_MACHINE\Software\Classes puis énumère chaque entrée qui commence par un point (.) que ces extensions de fichier. Pour chaque entrée qui est trouvé, l'agent énumère le programme ID et recherche les sous-clés shell\open\command de chaque ID de programme pour rechercher des fichiers exécutables. Elle n'ensuite la même pour chaque utilisateur, l'énumération le contenu de \Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts HKEY_USERS\ < … >. Cela permet l'agent pour rechercher des logiciels où l'installation simplement supprimés binaires et inscrit comme un gestionnaire pour une extension de fichier.

La recherche d'exécution/RunOnce Registre examine les clés de Registre suivantes pour rechercher les fichiers exécutables qui peuvent représenter les applications :

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVerison\RunOnceEx

L'agent pour rechercher des logiciels qui s'exécute avec chaque démarrage mais qui peut ne pas laissez autres preuves pour le collecteur rechercher permet d'examiner ces clés de Registre.

La recherche de Gestionnaire de contrôle des services interroge le Gestionnaire de contrôle des services (en utilisant l'API EnumServiceStatus) et puis interroge chaque service pour plus de détails (en utilisant l'API QueryServiceConfig). Cela permet l'agent pour rechercher des logiciels dont programme d'installation place des fichiers exécutables du système de fichiers et définit les clés de Registre pour inscrire le service manuellement.

Les composants Windows recherche les composants facultatifs installés pour Windows, pour capturer ces applications et de requêtes. Pour cela, en interrogeant sysocmgr.inf (en % windir%\inf) et en énumérant les composants facultatifs sélectionnés. Cela permet l'agent pour trouver le logiciel qui est probablement ne pas exister dans une installation standard de Windows.

Évaluateurs de compatibilité

Tandis que savoir quel logiciel est installé sur les ordinateurs dans toute l'entreprise est, en règle générale, les données plus critiques pour exécuter un projet de compatibilité des applications, le Framework agent vous permet également rassembler des données supplémentaires sur les ordinateurs avec des agents installés. Les agents Évaluateur de compatibilité fournis avec ACT sont performances optimisé pour une utilisation de production et par conséquent collecter un nombre limité de données. Vérifiez les données collectées et exécuter une preuve de concept pour mesurer la valeur des données avant d'investir largement dans un déploiement Évaluateur de compatibilité massifs.

Évaluateur de compatibilité le contrôle de compte d'utilisateur L'Évaluateur de compatibilité le contrôle de compte d'utilisateur (uacce.exe) installe une base de données personnalisé shim (uacce.sdb) et correctifs personnalisés (uacdetct.dll) afin de déterminer si une application peut s'exécuter en tant qu'utilisateur standard (ou en tant qu'administrateur protégé) sur Windows Vista ou Windows 7. (Les correctifs sont petits morceaux de code application qui est insérées entre l'application et Windows, qui sont généralement utilisées dans Windows pour résoudre les problèmes de compatibilité des applications, mais ici utilisés pour détecter les.) Elle s'applique ces correctifs aux processus s'exécutant sur le système en définissant une couche de compatibilité d'Explorer.exe ; il définit la variable d'environnement de __COMPAT_LAYER pour inclure UACCEDetection, un calque défini dans le SDB personnalisé. Étant donné que processus enfant héritent des calques, les processus créé à l'aide de l'Explorateur aura ces correctifs appliqués.

À quoi les correctifs ? Le correctif FileOperations intercepte les appels aux _lcreat, CopyFile, CopyFileEx, CreateFile, DeleteFile, MoveFile, MoveFileEx, MoveFileWithProgress, ReplaceFile, LZOpenFile, EncryptFile, DecryptFile et API DuplicateEncryptionInfoFile. Pour chaque appel, il vérifie si la liste de contrôle d'accès restreint l'accès ou si le fichier se trouve dans un chemin d'accès spécial (au cas où vous avez loosened les listes de contrôle d'accès).

Le contrôle de liste de contrôle d'accès est déterminé par prendre l'ACL existant, suppression ACE « administrateur » et des privilèges et puis en appelant AccessCheck sur la ressource pour déterminer si elle réussit, pour un utilisateur non administrateur. La vérification de chemin d'accès spécial recherche pour vérifier si le chemin d'accès est dans le répertoire racine, répertoire % des fichiers de programme %, répertoire système % ou répertoire windows %. Les échecs sont enregistrés.

Le correctif RegistryOperations intercepte les appels à la RegCreateKey, RegCreateKeyEx RegDeleteKey, RegDeleteKeyEx, RegDeleteValue, RegOpenCurrentUser, RegOpenKey, RegOpenKeyEx, RegCloseKey, RegOpenUserClassesRoot, RegReplaceKey, RegRestoreKey, RegSetValue, RegSetValueEx et API RegUnloadKey. Pour chaque appel à une API interceptée, le correctif vérifie si la liste de contrôle d'accès est refuser l'accès à un utilisateur standard. Cette vérification liste de contrôle d'accès est le même celle utilisée pour les opérations de fichier, suppression jointes vers le bas le jeton et en appelant AccessCheck. Échecs sont enregistrés.

Le correctif ProfileOperations intercepte les appels aux WritePrivateProfileSection, WritePrivateProfileString, WritePrivateProfileStruct, WriteProfileSection et API WriteProfileString. Pour chaque appel à ces API, le correctif vérifie si le fichier ini est mappé à l'aide un mappage de fichiers ini. Si non, le correctif vérifie les autorisations sur le fichier, comme indiqué dans les FileOperations fonctionnera (puisque, si ne pas mappé, un fichier ini est juste un autre fichier) et échecs sont enregistrés.

Le correctif RestrictedNamespace intercepte les appels à l'API CreateFileMapping. Si le nom de l'objet inclut le Global\ ou Session\ espace de noms, une erreur est enregistrée.

Le correctif ElevatedRunLevel intercepte les appels aux CreateProcess, CreateProcessAsUser, CreateProcessWithLogon et API CreateProcessWithToken. Toutes les API interceptées Vérifiez la cible exécutable afin de déterminer si la fonctionnalité de détection programme d'installation de Windows va déclencher un événement d'élévation (qui renvoie ERROR_ELEVATION_REQUIRED lorsque vous utilisez les API de CreateProcess). En outre, le correctif vérifie l'identité cible API qui modifier les informations d'identification utilisateur pour déterminer si elles sont les comptes d'administrateur.

Si vous examinez attentivement comment fonctionne la détection, vous verrez qu'il est supposé que vous exécutez avec des privilèges élevés pendant que les agents travaillez. Du fait que les agents ont été créés pour une utilisation sur systèmes de production, il est considéré que l'application déjà fonctionne. Et si elle fonctionne et devez avez un problème avec le contrôle de compte d'utilisateur, puis vous êtes probablement Exécution en tant qu'administrateur !

Évaluateur de compatibilité Windows Vista/Windows 7 L'Évaluateur de compatibilité Windows Vista/Windows 7 est réellement divisée en deux exécutables agent distinct, car une unité de travail peut être détectée de manière statique, tant que l'autre est contrôlé et analysée au moment de l'exécution.

L'agent de session GINA 0 (ginasession0.exe) effectue une vérification du Registre simple. Il examine NT\CurrentVersion\Winlogon\GinaDLL HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows pour déterminer si vous avez installé un GINA personnalisé. Il énumère également examiner la valeur de type dans le Registre pour voir si des services, le 0 x 100 bit est défini (l'indicateur SERVICE_INTERACTIVE_PROCESS). Les échecs sont enregistrés.

Beaucoup comme L'Évaluateur de compatibilité le contrôle de compte d'utilisateur, l'agent SPAP (dep.exe) installe une base de données personnalisé shim (dep.sdb ou win2kagents.sdb sur Windows 2000) et correctifs personnalisés depdetct.dll, définition la variable d'environnement __COMPAT_LAYER d'Explorer.exe inclure DeprecationAgentLayer qui garantit que les processus lancés via Explorateur sont corrigées. (Notez que la base de données shim exclut également binaires spécifiques du correctif qui sont identifiés échouent si elles détecter qu'ils ont été corrigées.)

Ce que les agents amortissement cherchez ? Examinons les correctifs qu'il utilise.

Le correctif DllLoadOperations intercepte LoadLibrary et LoadLibraryEx et compare le nom de bibliothèque transmis à la liste des DLL désapprouvées. Cette liste est stockée dans DepManifest.csv, vous pouvez trouver dans % programme files%\Microsoft Framework\Agents\DEP Framework\Agent Agent. Les entrées où la première colonne est DllType sont utilisées.

Le correctif ExeLoadOperations intercepte la CreateProcess, CreateProcessAsUser CreateProcessWithLogon, CreateProcessWithToken, ShellExecute, ShellExecuteEx et API WinExec, comparer le nom exécutable transmis à la liste des exe obsolètes, également stockée dans DepManifest.csv où la première colonne est ExeType.

Le correctif RegistryLoadOperations intercepte la RegCreateKey, RegCreateKeyEx RegCloseKey, RegDeleteKey, RegDeleteKeyEx, RegDeleteValue, RegOpenCurrentUser, RegOpenKey, RegOpenKeyEx, RegOpenUserClassesRoot, RegReplaceKey, RegRestoreKey, RegSetValue, RegSetValueEx et API RegUnloadKey, comparer la clé de Registre transmise à la liste stockée (nouveau) dans le temps DepManifest.csv—this avec une première colonne de RegType.

Le correctif ApiLoadOperations shims directement des API qui ont été dépréciés noter qu'une application appelée spécifiques. Pour Windows Vista, il existe seule : StiCreateInstanceA dans sti.dll. (Et il existe même un article derrière cette ; voir https://blogs.msdn.com/tomarcher/archive/2006/03/22/windows-vista-sti-and-a-story-about-customer-service.aspx.)

Une chose que vous remarquerez sur cet agent est qu'il dépend exécution vers le bas niveau : le fait qu'appelé quelque chose est enregistré uniquement si vous réussissent en appelant.

mettre à jour Évaluateur de compatibilité L'Évaluateur de compatibilité mise à jour est utile pour déterminer les fichiers binaires Windows utilise une application particulière, qui permet de cibler vos tests plus précisément lorsque les mises à jour de Windows sont publiées. L'Évaluateur de compatibilité mise à jour fonctionne en installant un pilote en mode noyau (fdrtrace.sys) qui implémente un pilote de filtre de système de fichier et le Registre des accroches pour enregistrer le fichier système et du Registre activité générée par les applications. Il exploite un service (uiaservice.exe) et un fichier exécutable (uiaconvert.exe) pour interpréter les données et l'aligne sur les applications et l'accès aux fichiers binaires Windows.

Agent bucketizer L'agent Bucketizer mappe les données collectées des agents de Évaluateur de compatibilité par rapport à stock l'ordinateur afin de classer les problèmes détectés dans compartiments pour chaque application.

Compresseur Agent Comme le son nom, de l'agent de compresseur (compressor.exe) vise pour compresser les fichiers à être téléchargées vers le partage de fichiers spécifié dans un fichier CAB pour enregistrer la bande passante réseau.

Agent Uploader L'agent Uploader est responsable de télécharger les données collectées à partir d'autres agents au partage de fichiers spécifié. Le travail de cet agent est relativement simple, copie des données recueillies localement à l'emplacement indiqué. Si l'emplacement est inaccessible, l'agent attend 5 secondes avant de réessayer. L'agent va réessayer trois fois avant d'abandonner.

Une nouvelle fonctionnalité dans ACT 5.5 importante est que packages de collection de données peut être « marquées « — configuré de telle sorte que tous les journaux téléchargés par un package de collection de données particulier auront une balise particulière appliquée aux. Cela vous permet plus efficacement adresse certains scénarios, tels que soigneusement comprendre les logiciels qui sont utilisé pour chaque groupe de stock (précédemment cela était difficile à mesure de chevauchement des applications) ou pour consolider les données de plusieurs groupes ou des organisations.

journal de traitement des services Le service de traitement des journaux s'exécute actdcsvc.exe en tant que service. Si vous pensez que semble familier, vous êtes satisfait, il s'agit le même service framework agent nous l'avons vu précédemment ! Dans ce cas, il exécute les agents de trois suivants :

  • L'agent décompresseur (decompressor.exe) est l'associé à l'agent compresseur utilisé sur les stations de travail que vous recueillez de ; il extrait les fichiers XML générés sur le client dans les fichiers CAB permet de les télécharger. Une fois extraites, l'agent de port d'écoute détecte la modification et puisse se poursuivre.
  • L'agent de port d'écoute (listener.exe) surveille le répertoire spécifié les modifications. Il attend les modifications soient en place dans le répertoire surveillé, puis les traite en envoyant un appel RPC à l'agent Queuing.
  • L'agent Queuer (queuer.exe) définit les ports pour écouter les appels RPC de l'agent de port d'écoute. Lorsqu'il reçoit ces appels, il traite le fichier et les télécharge vers la base de données. L'agent Queuer déplace terminées fichiers XML à partir la racine ou un dossier non compressé dans le dossier traitement si elle réussit. Si elle échoue, il déplace les fichiers vers le dossier a échoué. Très souvent, si un journal échoue à traiter, vous pouvez simplement déplacer il revenir dans le répertoire racine du partage contrôlé pour réessayer, et souvent ce réussira.

Une question qui s'affiche très souvent est si vous avez besoin d'enregistrer ces fichiers traités. Puisque les données sont déjà dans la base de données, vous techniquement ne devez les enregistrer et la plupart des gens pouvez les supprimer en toute sécurité. Toutefois, ces fichiers peuvent être utiles pour reconstruire la base de données ou pour consolider les deux bases de données, il est important de considérer vos besoins futurs pour régénérer la base de données avant de supprimer ces données.

Base de données ACT

Le Gestionnaire de compatibilité des applications peut être où se produit le plus de la magie, mais la base de données ACT est où se trouve toutes les données. Il existe un certain nombre de tables de la base de données ACT. Si le schéma est non documentée, il est très simple (mais, Hélas, subject aux modifications avec presque tous nouvelle version de L'ACT). Tables importantes comprennent des applications, ordinateurs, périphériques et problèmes, et ils servent à organiser toutes les informations renvoyées par les agents de différents et traité par le service de traitement des journaux.

Les applications sont liées aux données avec un ID d'application unique, généré à l'aide de la nom, version, fournisseur et la langue (NVVL) de l'application.

Vous pouvez base d'ordinateur hôte le ACT données sur Microsoft SQL Server 2005 ou version ultérieure, y compris les versions Express. (SQL Server 2000 est plus pris en charge.) Le Gestionnaire de compatibilité des applications crée la base de données pendant la phase de configuration initiale de ACT configuration d'entreprise. Le script utilisé pour créer la base de données réside dans %allusersprofile%\Microsoft\Application trousse à outils de compatibilité 5\CreateDB.sql.

Un aspect clé de la ACM est la possibilité de créer des rapports. Vous créer des rapports en filtrant la base de données ACT à l'aide d'un contrôle de Générateur de requête dans ACM, qui est affichée lorsque vous cliquez sur Basculer le filtre. Vous pouvez filtrer en fonction de critères liés à des entités dans la base de données ACT et lier ces clauses pour créer et et ou relations. Vous pouvez enregistrer votre rapport en tant que fichier .adq — un fichier .XML qui définit les filtres utilisés. Le fichier .adq est un format portable ni contient des données ni dépend d'un ensemble particulier de données.

Synchronisation en ligne

Lorsque vous effectuez une synchronisation en ligne, ACT utilise un service Web public. Dans les versions précédentes de ACT, ID d'application uniques de tous vos logiciels a été envoyé, mais vous pouvez masquer votre évaluation de compatibilité de la communauté si vous souhaitez. Avec ACT 5.5, lorsque vous décidez ne pas de partager des informations sur une application, ACT envoie jamais l'ID d'application (ce qui signifie également que vous ne recevrez des données de retour).

Les données de communauté sont issues de la base de données Microsoft Exchange de compatibilité et comprend logo certification données et données de la communauté (votes d'autres utilisateurs). Un système distinct alimente aujourd'hui windows.com/compatibility et ces données ajoute le résultat de recherche manuelle dans l'état de compatibilité des logiciels disponibles sur le marché; ACT 5.5 sera la première version de ACT pour intégrer ces données, qui fournit plus d'informations sur l'état connu de compatibilité que était précédemment disponible.

L'analyseur d'utilisateurs standard

Standard User Analyzer (SUA) se compose de plusieurs binaires pour surveiller et analyser l'exécution d'une application et communiquer des problèmes surviennent pendant les tests d'application. L'interface utilisateur SUA principal permet de cibler une application pour analyser et sélectionnez les conditions de lancement pour cette application. SUA est ensuite utiliser Application Verifier comme sa plate-forme sous-jacente pour surveiller les applications. Après l'exécution de l'application de surveillance, SUA présente les données acquises dans l'interface SUA où l'utilisateur peut utiliser pour comprendre les données et même créer des packages d'atténuation branchez l'infrastructure de compatibilité d'application Windows.

Application Verifier Application Verifier est un outil qui offre aux développeurs un moyen de contrôler l'exécution d'une application. SUA utilise Application Verifier pour suivre comportement application nécessiterait des privilèges d'administrateur par raccordement des API spécifiques et regardez leur utilisation.

Application Verifier implémente un modèle de plug-in (qui, comme moment de la rédaction de cet article, n'est pas encore documentée usage public) où les DLL spécifique peut être enregistré et utilisé pour surveiller les applications ciblées. (Plug-ins est configurés à l'aide la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image fichier exécution Options\ {ApplicationVerifierGlobalSettings}.) La dll SUA utilise pour surveiller les applications est vfLuaPriv2.dll, qui est installé dans le répertoire % windir%\System32 lors de l'installation. Le binaire vfLuaPriv2.dll remplace vfLuaPriv.dll installés par le vérificateur d'applications.

Lorsque le sous-système pour applications UNIX lance une application de test, il initialement vérifie Application Verifier est installé sur le système et inviter l'utilisateur pour l'installer si nécessaire. Ensuite, SUA utilise l'interface de ligne de commande Application Verifier pour enregistrer une application ; par exemple, si notepad.exe est ciblé pour la surveillance, les appels SUA de ligne de commande serait suivantes :

appverif.exe -enable luapriv -for "notepad.exe"

Application Verifier correspond à la chaîne luapriv avec le nom spécifié dans vfLuaPriv2.dll.

Lorsque le sous-système pour applications UNIX configure une application, il indique également vérificateur d'applications pour surveiller les processus enfants créés par cette application. Application Verifier crée un fichier journal distinct pour chaque processus, mais SUA regroupe ces fichiers journaux pour créer un rapport consolidé unique. SUA pouvez également enregistrer l'ensemble de journaux dans un fichier .cab pour l'affichage sur un autre ordinateur.

Standard User Analyzer l'interface utilisateur SUA pouvez tester une application dans un des trois contextes différents : lancer l'application avec l'utilisateur actuel de jeton avec jeton désactivation virtualisation de fichiers et Registre l'utilisateur actuel ou avec des autorisations avec des privilèges élevés. Dans chaque cas, SUA lance un processus élevé, SUAnalyzerSrv.exe, car Application Verifier nécessite des autorisations avec des privilèges élevés pour configurer. figure 3 illustre une arborescence de processus typique lors des tests de notepad.exe.

fig03.gif

La figure 3 test Notepad.exe

SUAnalyzerSrv.exe et AppVerif.exe sont toujours exécute avec des privilèges d'administrateur afin de préparer l'environnement pour l'application cible à tester. SUA est alors lancer notepad.exe dans le contexte de sécurité spécifiée et attendez que l'application et tous les processus enfants terminer l'exécution. SUA puis regroupe et traite les journaux d'application Verifier et affiche les résultats dans l'interface utilisateur.

Les résultats SUA sont divisées en catégories de problèmes, notamment fichiers, Registre, INI, jeton, privilège, espace de noms, autres objets et processus. Ces catégories correspondent à un onglet en haut de l'interface utilisateur SUA et vous concentrer sur les différents problèmes lorsque vous testez l'application.

Le de fichiers et de Registre onglets afficher vous fichier système ou du Registre des opérations qui nécessitent des privilèges d'administrateur. Le vérificateur d'applications plug-in luapriv surveille le comportement des API appropriées telles que CreateFile ou CreateRegistryKey pour les cas où leur utilisation nécessiterait des privilèges d'administrateur. Dans certains cas, la fonctionnalité de fichier de contrôle de compte d'utilisateur et la redirection de Registre permettrait ces opérations réussir sur Windows Vista.

Chaque onglet illustré dans l'interface utilisateur provient généralement luapriv contrôle le comportement d'un ensemble d'API. Par exemple, l'onglet INI se concentre sur recherche de problèmes liés à l'utilisation de l'API WriteProfile, à l'origine utilisées dans les applications 16 bits. Une étude de chaque onglet est disponible dans la documentation SUAnalyzer.rtf incluses comme partie de l'installation de SUA. Vous pouvez développer les événements sous chaque onglet pour afficher des informations détaillées sur l'événement, y compris une trace de pile pour où dans l'application l'événement s'est produit.

Après avoir examiné les résultats du test d'une application, SUA permet de pouvoir tester et créer des packages d'atténuation pour une application. Un package de solution est un fichier MSI qui enregistre une base de données compatibilité d'application sur un système et peut utiliser loosen.exe, un utilitaire fourni avec SUA, pour régler fichier ou de listes de contrôle d'accès de Registre. Les packages d'atténuation peuvent être déployés dans votre environnement.

Outil de test de compatibilité Internet Explorer

L'outil de test de compatibilité Internet Explorer fonctionne en activant L'Évaluateur de compatibilité Internet Explorer (iece.exe). Dans ACT 5.0, vous pouvez déployer l'évaluateur en tant que partie d'un paquetage de collection de données, mais étant la collection nécessaire que vous avez déjà le navigateur cible installé, il a été supprimé pour 5.5 ACT. (Une fois que toutes les découvrir que quelque chose ne fonctionne après son installation est suboptimal ; la plupart des gens préférez détecter les problèmes avant qu'ils déploiement le nouveau navigateur!)

L'Évaluateur de compatibilité Internet Explorer est relativement simple, le travail uniquement il doit faire est de pour modifier le Registre de sorte qu'Internet Explorer active la journalisation. Étant donné que le navigateur lui-même offre la détection, la fidélité des données est extrêmement élevée. Pour plus de détails sur tous les événements qu'Internet Explorer peut détecter (avec les recommandations de correction pour chaque), voir la rubrique Compatibilité des applications Internet Explorer.

Internet Explorer enregistre des informations dans le journal des événements et l'outil de test de collecte des informations à partir du Registre et il regroupe. Vous pouvez analyser les informations directement dans l'outil, ou vous pouvez télécharger les événements à une base de données ACT consolidée. Si vous choisissez de les télécharger vers une base de données ACT, L'Évaluateur de compatibilité Internet Explorer s'exécute agents comme les agents exécuter dans un paquet de collection de données, première collect.exe en cours d'exécution, puis bucketizer.exe et enfin compressor.exe, après laquelle il vous demande d'un emplacement enregistrer le fichier CAB.

Conclusion

Qui conclut notre présentation sous la pratique de la 5.5 Application Compatibility Toolkit. Le produit fournit de nombreux outils utiles pour prendre en charge votre migration Windows Vista de Windows 7 et à comprendre en savoir plus sur les chacun d'eux est le cas, vous pourrez mieux évaluer le potentiel de chaque outil et investir dans ces correctement.

Chris Jackson est le responsable technique de l'équipe Windows Application Experience SWAT chez Microsoft. Il a travaillé avec les clients Entreprise dans le monde afin de les examiner et atténuer les problèmes de compatibilité des applications, ainsi que fournissant des instruction formation sur la compatibilité des applications Windows pour de nombreux événements de secteur d'activité. Celui-ci peut être contactée à https://blogs.msdn.com/cjacks.

Chris Corio était un membre de l'équipe Windows Security chez Microsoft pour plus de cinq années. Son principal objectif de Microsoft était technologies de sécurité des applications et des technologies de gestion pour la sécurisation de Windows. Vous pouvez contacter Chris à winsecurity@chriscorio.com.