应用程序兼容性
在应用程序兼容性工具包 5.5
Chris Corio and Chris Jackson
概览:
- 应用程序兼容性管理器和代理 Framework
- 兼容性评估器
- 存储和分析数据
- 标准用户分析器
- Internet Explorer 兼容性测试工具
内容
应用程序兼容性管理器
兼容性评估器
ACT 数据库
分析
联机同步
标准用户分析器
Internet Explorer 兼容性测试工具
结论
Application Compatibility Toolkit (ACT) 帮助您管理过程来确定您在部署之前,您的应用程序是否与新版本的 Windows 兼容。 它还有助于您确定的操作系统更新如何影响将这些应用程序。 已了大量文章和白皮书写入如何使用 ACT 5.5。 我们要在本文中的是在罩和资源管理器下转如何都在此工具包 Works 中工具。 我们首先使用大多数人关联工具包工具: 应用程序兼容性管理器。
应用程序兼容性管理器
应用程序兼容性管理器提供了一个框架,用于组织这些数据,分析,并帮助来驱动测试的过程在生产环境的 discovering 信息。 让我们深入探讨此工具以了解如何协同工作。
计算器部署程序包 (MSIs) 部署 ACT 5.5 为 MSIs 的数据集程序包,但如果您就可以深入了解 MSI,您会发现它不会实际执行大量的工作。 相反,它提取执行安装程序的可执行文件。 图 1 显示了典型运行安装程序进程的进程树。
图 1 代理 Framework 安装进程树
中显示为红色,Msiexec.exe 的第三个实例是一个有趣: 的调用卸载原始 MSI。 实质上是,MSI 中提取.exe (显示为.tmp 文件,),然后卸载外部 MSI。 以后,安装 (称为通过 msiexec) 的第二个 MSI。 在一个测试,部署 MSI 完成在 1:19:46,安装,并完成在 1:19:50 卸载。 只为 4 秒 MSI 显示安装! 因此,部署数据集合包时, 不要查找以确定是否您应该安装在目标计算机由于不可能进行查找 MSI 的安装。 要查找您已安装代理到每个工作站的其他证据。
是例如的 MSI 部署将具有新的生成的产品代码每次、 内部 MSI 将始终有相同的产品代码 (DC93B45B-D4F5-4FFE-9B47-042BD6FA8CC5),和这可用于而为 evidence 的 ACT 数据集合包安装 (尽管您不是某些哪一个,所有 ACT 数据集合包具有此内存占用量)。 请注意我们不建议卸载数据集合包使用 MSI 该项,; 我们讨论然后卸载的 ACT 数据集合包推荐的方法。
Afsetup.exe 执行大部分在的工作,并且会想事件有任何问题,其代理部署中要注意此二进制文件。 您可以卸载代理 Framework 使用以下命令:
%program files%\Microsoft Agent Framework\Agent Framework\afsetup.exe /uninstall
代理框架 在 ACT 5.5 代理 Framework 为大型集合的企业中的计算机中收集数据提供一种结构。 代理的设计目标是 unnoticed 和适用于部署到生产环境。 因此,单个代理的工作是严重的性能优化您会发现在某些代理中所做的设计决策)。
在 Framework 本身非常简单。 安装了代理 Framework 时, 可以在 %Program Files %\ Microsoft 代理框架中找到它的文件。 作为服务 (actdcsvc.exe) 允许在计划编制和启动的代理的运行。 在代理 Framework\Data 子目录中找到的 XML 配置根据可指定的日程安排启动该代理。 您可以找到代理 Framework\Agents 下的代理可执行文件。
代理是只不过可执行文件代理 Framework 服务只是管理日程安排和启动安装和配置 XML 中指定相应的可执行文件。 图 2 显示进程树的一个示例典型的代理 Framework 安装的第一个的 5 分钟。
图 2 代理 Framework 进程树
下面是我们是只是计划和执行代理一个简单服务。 代理工作,因此让我们浏览它们。
ACT 5.5 库存代理,collect.exe,是最重要方式之一。 实质上是,此代理搜索客户端系统,并编译的应用程序清单。 方面的规划一个应用程序兼容性项目 (对齐在商、 版本,和最终支持语句的应用程序名称) 所需数据,库存代理始终执行非常好比较其他软件清单工具。
什么特别有用不只是如何和代理 scours 查找 (下面详细) 的证据的系统,但如何和它然后发送其前清除数据。 该工具创建的"存储桶"系列,然后合并所有位于搜索下面,详细平面化、 删除重复存档,和对其进行分类的证据。 代理会查找在许多位置以查找应用程序的证据。
MSI 数据库搜索使用 MsiEnumComponents API 来枚举所有应用程序安装使用 Windows Installer。
添加/删除程序搜索打开 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Uninstall 和 HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Uninstall,并从此处每个子项收集数据。
Windows 外壳程序搜索 Works 枚举 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 文件夹,以及为每个用户使用配置文件在计算机上的 HKEY_USERS\ < … > \Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 文件夹的内容。 代理然后搜索所有文件和这些目录或其子目录 (具体来说不包括台式计算机这往往是从网站,以减少干扰下载的可执行文件的"停车许多") 中的链接。 此搜索捕获的软件,是例如没有添加/删除程序中注册自身,但不会添加开始菜单快捷方式。
应用程序路径搜索枚举所有选择的任何应用程序注册自身以接收特定于程序的应用程序路径在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App 路径注册表项中的子项。
路径环境变量搜索指向每个目录 (而不是子目录) 中的可执行文件中查找查找任何用户的路径环境变量。 它将首先查找从要 ExpandEnvironmentStrings 返回同时系统环境变量和当前用户的环境变量) 的调用返回的路径中的可执行文件以及所有其他用户的 HKEY_USERS\ < … > \Environment 的内容。 这使清单收集器来查找应用程序 (通常命令行应用程序) 安装的只将该文件放在文件系统中,并将追加到路径环境变量。
文件扩展名处理程序搜索查找每个已注册的文件扩展名,并捕获注册到处理这些文件扩展名的程序。 首先,打开 HKEY _ LOCAL _ MACHINE\Software\Classes,然后枚举开头包括文件扩展名的句点 () 的每一项。 每个条目的发现,代理枚举程序 ID,找到要查找可执行文件的每个程序 ID 的 shell\open\command 子项。 它然后会相同为枚举的 HKEY_USERS\ < … > \Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 内容的每个用户。 这允许代理找到的软件安装是只删除二进制文件,然后将自身注册为一个文件扩展名处理程序。
注册表运行 / Runonce 搜索查找以下注册表项以查找可能表示应用程序的可执行文件:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVerison\RunOnceEx
检查这些注册表项允许代理找到与每个启动运行,但的可能不保留为收集器以查找其他证据的软件。
服务控制管理器搜索查询服务控制管理器 (使用 EnumServiceStatus API),,然后查询每个服务的详细信息 (使用 QueryServiceConfig API)。 这允许代理找到的软件的安装程序手动将放在文件系统上的可执行文件和设置注册表项来注册该服务。
Windows 组件搜索查询为 Windows,来捕获这些应用程序安装的可选组件。 这是通过查询 Sysocmgr.inf (在 %windir%\inf),以及枚举选择可选组件实现的。 这允许代理以查找可能不存在于 Windows 的标准安装的软件。
兼容性评估器
时知道了计算机安装整个企业内的哪些软件,通常,运行的应用程序兼容性项目的最重要数据代理 Framework 还允许您与安装的代理从计算机中收集其他数据。 ACT 提供该兼容性计算器代理是的生产目的的性能优化,并因此收集的数据的有限的量。 查看收集的数据,并运行一个概念的测量投资之前数据,大容量的兼容性评估器部署中很大程度的值。
UAC Compatibility Evaluator UAC Compatibility Evaluator (uacce.exe) 安装自定义填充程序数据库 (uacce.sdb) 和自定义填充 (uacdetct.dll) 为了确定是否可以运行应用程序作为标准用户 (或作为受保护的管理员) 在 Windows Vista 或 Windows 7。 (修补程序是应用程序代码的应用程序和 Windows,这通常用于在 Windows 中解决应用程序兼容性问题,但以下用于检测它们之间插入的小片段)。 这些修补程序应用到系统上运行通过设置兼容层的 Explorer.exe 的进程 ; 设置 __COMPAT_LAYER 环境变量以包括 UACCEDetection,自定义的 SDB 中定义的图层。 由于子进程继承层,使用资源管理器创建的任何过程必须应用这些修补程序。
该修补程序有何功能? FileOperations 填补程序截取调用在 _lcreat、 CopyFile、 CopyFileEx、 CreateFile、 DeleteFile、 MoveFile、 MoveFileEx、 MoveFileWithProgress、 ReplaceFile、 LZOpenFile、 EncryptFile、 DecryptFile 和 DuplicateEncryptionInfoFile API。 对于每个调用,它将查看如果 ACL 限制访问或文件所特殊路径中 (如果您有放松 ACL)。
ACL 检查由采用现有的 ACL,删除"管理员"ACE 和权限,以及然后调用资源上的 AccessCheck 将决定以确定是否成功为非管理员用户。 特殊路径检查会路径位于根目录,%Program Files %目录,%系统 %目录或 %Windows %目录。 记录任何错误。
RegistryOperations 填补程序截取调用在 RegCreateKey、 RegCreateKeyEx、 RegDeleteKey、 RegDeleteKeyEx、 %、 RegOpenCurrentUser、 RegOpenKey、 RegOpenKeyEx、 RegCloseKey、 RegOpenUserClassesRoot、 RegReplaceKey、 RegRestoreKey、 RegSetValue、 RegSetValueEx 和 RegUnloadKey API。 对于每次调用截取 API,查看是否 ACL 将拒绝访问标准用户在填充。 此 ACL 检查是相同的文件操作使用,关闭该令牌中去除,并调用 AccessCheck。 记录失败。
ProfileOperations 填补程序截取调用 WritePrivateProfileSection、 WritePrivateProfileString、 WritePrivateProfileStruct、 WriteProfileSection 和 WriteProfileString API。 为每个调用这些 API 中,该填充程序检查 ini 文件是否映射使用的 ini 文件映射。 如果不,该填充程序检查文件,以指示该 FileOperations 中该权限程序 (因为,如果不映射的 ini 文件将是另一个的文件),并记录失败。
RestrictedNamespace 填补程序截取 CreateFileMapping API 的调用。 如果对象的名称包含 Global\ 或 Session\ 命名空间,会记录错误。
ElevatedRunLevel 填补程序截取调用 CreateProcess、 CreateProcessAsUser、 CreateProcessWithLogon 和 CreateProcessWithToken API。 所有截取的 API 检查目标可执行文件以确定是否安装程序检测功能的 Windows 将触发一个提升事件,使用 CreateProcess API 时,则返回 ERROR _ ELEVATION _ REQUIRED)。 此外,该填充程序更改用户凭据,以确定它们是否管理员帐户的 API 检查目标标识。
如果您仔细查看如何检测工作,您将看到处理代理时假定您正在运行提升。 由于代理已设计用于在生产系统中,该假设是: 已工作应用程序。 如果它的工作,并且会有问题与 UAC,然后在您可能运行以管理员身份 !
Windows Vista / Windows 7 Compatibility Evaluator 由于工作的一个单位可以检测到静态,当其他监视且在运行时分析时,Windows Vista / Windows 7 Compatibility Evaluator 实际拆分为两个单独的代理 executables。
GINA 会话 0 代理 (ginasession0.exe) 执行简单的注册表检查。 它查找在要确定是否已安装自定义 GINA HKEY NT\CurrentVersion\Winlogon\GinaDLL。 它还枚举服务,查看是否注册表中的类型值在 0x100 位设置 (SERVICE_INTERACTIVE_PROCESS 标志)。 记录任何错误。
更像 UAC 兼容性计算器 Deprecation 代理 (dep.exe) 安装自定义填充数据库 (dep.sdb,或 Windows 2000 上的 win2kagents.sdb) 和自定义填充 (depdetct.dll),设置 __COMPAT_LAYER 环境变量以包括可确保通过资源管理器启动的任何进程 shimmed 的 DeprecationAgentLayer Explorer.exe 的。 (请注意填充数据库还排除特定的二进制文件,已知是否检测到它们已被 shimmed 失败的填充。
将排斥代理查找的内容? 让我们检查它使用的填充。
DllLoadOperations 填充截获 LoadLibrary 和 LoadLibraryEx,并比较传递给不推荐使用的 DLL 列表的库名称。 此列表存储在 %Program Files %\ Microsoft 代理 Framework\Agent Framework\Agents\DEP 可以找到的 DepManifest.csv。 用于的项的第一列是 DllType。
ExeLoadOperations 填补程序截取 CreateProcess、 CreateProcessAsUser、 CreateProcessWithLogon、 CreateProcessWithToken、 ShellExecute、 ShellExecuteEx 和比较可执行文件的名称传递到也存储在其中第一列是 ExeType DepManifest.csv 的不推荐使用 EXE 的列表的 WinExec API。
RegistryLoadOperations 填充截获该 RegCreateKey、 RegCreateKeyEx RegCloseKey、 RegDeleteKey、 RegDeleteKeyEx、 %、 RegOpenCurrentUser、 RegOpenKey、 RegOpenKeyEx、 RegOpenUserClassesRoot、 RegReplaceKey、 RegRestoreKey、 RegSetValue、 RegSetValueEx 和比较传递给 (再次) 存储在列表的注册表项的 RegUnloadKey API DepManifest.csv—this 时间 RegType 的第一列。
ApiLoadOperations 填充直接 shims 特定 API 已弃用的注意应用程序调用它。 对于 Windows Vista 没有只有一个: StiCreateInstanceA sti.dll 中的。 (和甚至的后面这一篇文章,请参阅 https://blogs.msdn.com/tomarcher/archive/2006/03/22/Windows-Vista-sti-and-a-story-about-Customer-Service.aspx。
您会注意到有关此代理是这取决级别下运行: 调用某些事实记录仅当您成功地调用它。
更新 Compatibility Evaluator Update Compatibility Evaluator 很有用确定特定的应用程序使用的 Windows 二进制文件使您针对测试更精确地时 Windows 更新发布。 更新 Compatibility Evaluator Works 安装内核模式驱动程序 (fdrtrace.sys) 实现两者的文件系统筛选驱动程序和注册表挂钩记录生成的应用程序文件系统和注册表活动。 它利用服务 (uiaservice.exe) 和可执行文件 (uiaconvert.exe) 来解释数据和应用程序和 Windows 二进制文件的访问对它进行对齐。
bucketizer 代理 Bucketizer 代理将数据从对计算机的库存的兼容性计算器代理收集以进行分类到每个应用程序的存储桶中检测到任何问题。
压缩器代理 将名称声音一样压缩代理 (compressor.exe) 的旨在压缩文件上载到指定的文件共享到 CAB 文件将保存网络带宽。
Uploader 代理 Uploader 代理负责上载数据从其他代理收集到指定的文件共享。 此代理的工作是相对简单,复制数据本地收集到指定的位置。 如果该位置是不可访问,代理将等待 5 秒重试。 代理将重三次试放弃之前。
一个重要的新功能,ACT 5.5 中是集合数据包可以将"标记"配置,以便由特定的数据集合程序包上载的所有日志都会应用到特定标记。 这使您更有效地地址某些方案,如不是全面了解的软件正用于清点每个组 (这以前难以测量的重叠应用程序) 或合并多个组或组织中的数据。
日志处理服务 日志处理服务作为服务运行 actdcsvc.exe。 如果您认为,这听起来熟悉,您完全正确,这是相同的代理 Framework 服务,前面讨论 ! 在这种情况下运行以下三个代理:
- 解压缩程序代理 (decompressor.exe) 给您收集到工作站上使用的压缩代理助理 ; 它提取在客户端用来将它们上载 CAB 文件中生成的 XML 文件。 一旦提取,侦听器代理将检测该变化,并可以继续。
- 侦听程序代理 (listener.exe) 监视指定的目录的更改。 它等待更改才能受监视的目录中的位置,然后通过发送到队列代理的 RPC 调用来处理它们。
- Queuer 代理 (queuer.exe) 设置端口侦听从侦听器代理的 RPC 调用。 收到这些调用时它处理该文件,并将它们上载到数据库。 将 Queuer 代理已完成的 XML 文件从移动根目录或未压缩的文件夹到处理文件夹时成功。 如果它所失败它将文件移到失败文件夹。 经常,如果日志将失败处理中,您可以只是将其移回以重试,监视共享的根目录,并通常这会成功。
非常频繁地出现的问题是是否需要保存这些处理的文件。 由于数据已在数据库中,在技术上不需要保存,而且大多数人可以安全地删除它们。 但是,这些文件可以派上用场重建数据库或合并两个的数据库,因此值得考虑您以后需要重新生成删除此数据之前的数据库。
ACT 数据库
应用程序兼容性管理器可能神奇的大多数的发生,但 ACT 数据库是所有数据都所在位置。 有许多 ACT 数据库中的表。 未记录架构时是非常简单 (但,大,受到更改与 ACT 几乎每个新版本)。 重要的表包括应用程序、 计算机、 设备,和问题,以及使用组织的所有信息的各种代理返回和处理日志处理服务。
应用程序与数据使用名称、 版本、 供应商和应用程序的语言 (NVVL) 生成唯一的应用程序 ID 密切相关。
可以承载 ACT 数据库在 Microsoft SQL Server 2005 或更高版本,包括 Express 版本。 (SQL Server 2000 不再支持)。 应用程序兼容性管理器将在初始配置阶段的 ACT 的企业配置创建数据库。 脚本用于创建该数据库位于 %allusersprofile%\Microsoft\Application 兼容性工具包 5\CreateDB.sql。
在 ACM 的一个重要方面是能够创建报告。 通过筛选 ACT 数据库使用查询生成器控件当您单击切换筛选显示的 ACM 中创建报告。 可以筛选基于的条件与 ACT 数据库中的实体和链接这些子句创建 AND 和 OR 关系。 您可以将报表保存为.adq 文件定义筛选器使用的.xml 文件。 .adq 文件是一种可移植的格式,既不包含数据也不依赖于一组特定的数据。
联机同步
执行联机的同步时, 则 ACT 将使用公用的 Web 服务。 在早期版本的 ACT 中,发送的所有软件的唯一的应用程序 ID,但如果您希望可以隐藏从社区在兼容性评估。 与 ACT 5.5,当您决定不共享的应用程序的信息 ACT 永远不会发送应用程序 ID (也意味着没有返回收到数据)。
社区数据来自 Microsoft Compatibility Exchange 数据库,并包括徽标证书数据和社区数据 (其他用户的投票)。 单独的系统将立即打开 Windows.com/compatibility,和此数据将手动搜索结果添加到的商业上可用的软件兼容性状态 ; ACT 5.5 有合并此数据提供了比以前的兼容性的已知状态的最详细信息的 ACT 首次发布。
标准用户分析器
标准用户分析器 (SUA) 包含多个二进制文件来监视和分析应用程序执行,以及通信应用程序测试期间出现的问题。 主要的 SUA UI 允许您针对应用程序分析,并选择此应用程序启动条件。 然后,SUA 将使用应用程序验证程序作为其基础平台来监视应用程序。 之后监视应用程序的执行,SUA 的用户能够理解数据,和甚至创建 Windows 应用程序兼容性基础结构所插入的缓解程序包在 SUA UI 中显示获取的数据。
应用程序验证工具 Application Verifier 是一个工具,使得开发人员可以监视应用程序执行。 SUA 使用应用程序验证工具跟踪通过挂接特定 API 并监视其使用率需要管理员权限的应用程序行为。
应用程序验证工具实现插件模型 (它的撰写本文未还介绍公共使用) 在特定的 dll 是注册和采用来监视目标应用程序。 (插件配置使用注册表项 HKEY _ LOCAL _ MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image 文件执行 Options\ {ApplicationVerifierGlobalSettings})。 SUA 使用来监视应用程序的该 dll 是安装过程中安装到 %windir%\ System 32 目录的 vfLuaPriv2.dll。 二进制 vfLuaPriv2.dll 取代 vfLuaPriv.dll 安装应用程序验证工具。
SUA 启动测试的应用程序时, 它将初始检查以确保应用程序验证程序在系统上安装并提示用户安装有必要。 接下来,SUA 使用应用程序验证程序命令行界面来注册的应用程序 ; 是例如如果 Notepad.exe 针对监视,命令行 SUA 调用将是以下:
appverif.exe -enable luapriv -for "notepad.exe"
应用程序验证工具与 vfLuaPriv2.dll 中指定的名称匹配 luapriv 字符串。
SUA 配置应用程序时, 也会告诉应用程序验证程序以监视由该应用程序创建任何子进程。 应用程序验证程序创建为每个进程的单独日志文件,但 SUA 将这些日志文件来创建单一的合并报表。 SUA,也可以查看另一台计算机上的.cab 文件中保存日志的集合。
标准用户分析器用户界面 SUA 可以三种不同的环境之一中测试应用程序: 启动应用程序与当前用户的令牌,禁用文件和注册表虚拟化的当前用户的令牌或提升的权限。 在每一的种情况下 SUA 将启动已提升的进程 SUAnalyzerSrv.exe,因为应用程序验证工具需要提升的权限配置。 图 3 显示了典型的进程树,测试 notepad.exe 时。
图 3 测试 Notepad.exe
SUAnalyzerSrv.exe 和 AppVerif.exe 将始终运行具有管理员权限以准备用于目标应用程序来测试环境。 SUA 将然后启动 Notepad.exe 在指定的安全上下文和等待应用程序和所有子进程完成执行。 SUA 然后聚合并处理应用程序验证程序日志,并在用户界面中显示结果。
SUA 结果被划分为类别包括文件,注册表,INI,标记、 权限、 命名空间,其他对象,和处理的问题。 这些类别对应于 SUA UI 的顶部的一个选项卡,并且允许重点测试应用程序的各种问题。
文件和注册表选项卡显示文件系统或注册表操作需要管理员权限。 luapriv 应用程序验证程序插件监视相关的 API,如 CreateFile 或 CreateRegistryKey 的行为对于使用需要管理员权限的情况。 在某些情况下,UAC 文件和注册表重定向功能将允许这些操作在 Windows Vista 上失败。
显示每个选项卡在用户界面通常导致 luapriv 监视一组 API 的行为。 是例如 INI 选项卡会重点查找与最初用于 16 位应用程序的 WriteProfile API 的使用相关的问题。 每个选项卡的讨论有 SUAnalyzer.rtf 文档作为 SUA 安装的一部分。 您可以展开每个选项卡查看有关包括堆栈跟踪为在应用程序中在事件发生在该事件的详细的信息下事件。
查看应用程序的测试结果后, SUA 可以测试和创建应用程序缓解包。 缓解包是注册一个系统上的应用程序兼容性数据库,并可以使用 loosen.exe 的 MSI、 随 SUA,调整文件或注册表 ACL 一个实用程序。 缓解程序包可以部署在您的环境。
Internet Explorer 兼容性测试工具
Internet Explorer 兼容性测试工具工作启用 Internet Explorer Compatibility Evaluator (iece.exe)。 在 ACT 5.0 可以作为一个数据集包的一部分部署计算器,但由于该集合所需已安装的目标浏览器,ACT 5.5 已删除。 (别是忘发现的内容不能安装之后 suboptimal ; 大多数用户希望在部署新的浏览器之前发现任何问题 !)
Internet Explorer Compatibility Evaluator 是相当简单,它必须执行的唯一工作是修改注册表,以便 Internet Explorer 启用日志记录。 由于浏览器本身提供检测,数据的保真度将是非常高。 有关详细信息的所有 Internet Explorer 可以检测 (与对每修正建议) 的事件,请参阅 Internet Explorer 应用程序兼容性.
Internet Explorer 在事件日志记录信息的测试工具从注册表中收集信息并合并它。 您可以分析工具直接信息也可以将事件上载到合并 ACT 数据库。 如果要将它们上载到 ACT 数据库 Internet Explorer Compatibility Evaluator 运行就像在一个数据集包中运行的代理的代理首次运行 collect.exe,然后 bucketizer.exe,和最后 compressor.exe 后, 它提示您保存 CAB 文件的位置。
结论
和的结果应用程序兼容性工具包 5.5 我们下的的封面的浏览。 该产品提供了许多有用的工具支持在迁移到 Windows Vista 或 Windows 7 并通过了解更多有关哪些每一个执行,您将能够更好地评估的每个工具,并适当地投资的。
Chris Jackson 是在 Microsoft Windows 应用程序体验 SWAT 团队的技术主管。 他曾与世界各地的企业客户以帮助他们调查并减少应用程序兼容性问题,以及大量的行业事件提供有关 Windows 应用程序兼容性的指导培训。 Chris 可以访问在 https://blogs.msdn.com/cjacks.
五年以上, Chris Corio 是 Microsoft Windows 安全团队的成员。 在 Microsoft 他主要焦点是应用程序安全技术和管理技术,用于保护 Windows。 您可以访问在 Chris winsecurity@chriscorio.com.