- 标准用户分析器允许您检测和缓解旧版应用程序中由 UAC 引起的兼容性问题。
- 该工具提供对虚拟化和提升权限的控制,并且可以应用、撤销和以 MSI 格式导出缓解措施。
- SUA 助手以较少的技术细节指导分析和纠正过程,使管理员的工作更加轻松。
- 如果故障是由于系统文件损坏造成的,那么在重新安装 Windows 之前,可以尝试手动替换这些文件作为最后的手段。
当一个应用程序 它在较旧的Windows系统上运行完美,之后就开始出现错误。 在较新的版本中,几乎总能找到明确的罪魁祸首:系统安全和权限的更改。在企业环境中,这种情况每天都会发生,尤其是在将旧版内部应用程序迁移到 Windows 7、Windows 8、Windows 10 或更新版本的 Windows Server 时。这时,标准用户分析器 (SUA) 工具就派上了用场。
标准用户分析器是以下部分的一部分 应用程序兼容性工具包 并且是专门为……而设计的 检测与用户帐户控制 (UAC) 相关的兼容性问题 并通过报告、缓解措施和可安装软件包的组合来帮助修复这些问题。在本文中,您将详细了解它的工作原理、支持的平台、提供的选项(包括虚拟化和提升执行权限),以及如何利用它来恢复看似丢失的应用程序。
兼容的平台和操作系统
在使用 SUA 之前,必须先明确它适用于哪些环境。 可以应用此兼容性工具并非所有 Windows 版本都能充分利用它,但对于客户端和服务器系统而言,其应用范围都相当广泛。
在桌面端,该工具面向…… Windows XP、Windows Vista 和 Windows 7 客户端在某些情况下 32 位应用程序 它们可能会失效。这些系统恰恰最明显地体现了UAC带来的安全模型变化,导致许多基于“人人都是管理员”理念开发的程序崩溃。
在服务器环境中,SUA 用于 Windows Server 2003、Windows Server 2008 和 Windows Server 2008 R2在这些系统中,业务线应用程序和内部服务通常依赖于受保护的路径、关键注册表项或系统组件,这些内容无法再通过标准帐户自由访问。
此外,现代微软兼容性文档扩大了关注范围,并提到 SUA 和相关技术的使用也适用于 Windows 7、Windows 8、Windows 8.1、Windows 10、Windows Server 2012 和 Windows Server 2008 R2换句话说,虽然该工具是为早期版本创建的,但 UAC 缓解和兼容性的原则在更新的系统中仍然有效。
标准用户分析器是什么?它解决了什么问题?
应用程序兼容性工具包 (ACT) 主要包含两个用于处理 UAC 的组件: 标准用户分析器 (SUA) 工具和 SUA 向导两者都围绕着同一个想法:在标准用户环境下测试应用程序,并找出哪些操作由于权限不足而失败。
UAC,早期被称为 受限用户帐户 (LUA) 或受限用户帐户这样一来,所有用户,即使是管理员组中的用户,默认情况下也必须以标准用户身份运行。只有当应用程序显式地提升自身权限时(例如,通过显示典型的用户帐户控制 (UAC) 确认对话框),才会授予管理员权限。
问题在于,许多旧应用程序在编写时都假定用户 他拥有永久行政权这些程序会尝试写入类似这样的路径: C:\ WINDOWS o C:\ Program Files文件……或者修改受保护的注册表项,或者访问普通用户无法访问的系统资源。在 Windows XP 中,这通常不会被注意到,因为几乎所有程序都以管理员权限运行,但在较新的系统中,这往往会导致错误。 意外关闭 或奇怪的行为。
SUA 的使命正是要复制应用程序的执行过程,就像用户是标准用户一样。 监控所有相关的 API 调用 并识别涉及未经授权访问、过度权限请求或与用户帐户控制 (UAC) 不兼容的操作。基于这些信息,它提出可作为兼容性修复方案的缓解措施。
与此同时,SUA助手提供了一种更具指导性的方法。通过 逐步助手该应用程序经过分析,并提出相应的缓解措施建议,而无需深入探讨报告的技术细节。对于希望快速获得实用结果的管理员来说,即使这意味着牺牲一些分析深度,这也是理想的选择。
SUA 工具在实践中的工作原理
SUA 工具允许技术人员或管理员 在监督下运行应用程序记录您的行为,然后查看包含所有与用户帐户控制 (UAC) 相关的调查结果的详细报告。根据该报告,您可以激活不同的缓解措施,这些措施相当于“逻辑补丁”。
使用 SUA 的典型工作流程可以概括如下:首先,从 SUA 启动应用程序,然后重现程序的正常使用方式(打开、保存、配置等),同时使用该工具。 监控 Windows API 调用最后,对生成的报告进行检查。正是在这个阶段,可以发现例如尝试写入受保护分支的注册表或访问仅限标准用户访问的路径中的文件等行为。
这些事件中的每一个都可以转化为可能的“修复”或缓解措施,SUA 将这些措施分组并以易于管理的方式呈现。 目标不是更改应用程序的源代码。但应该调整系统处理它的方式,使用兼容层、重定向和其他官方支持的技巧。
SUA报告可能非常详细,包含大量的交易记录、错误代码和路由信息。这种详细程度对于复杂的场景是必要的。 这对支持和开发团队来说简直是无价之宝因为它能准确地告诉他们应用程序正在尝试做什么,以及在哪里遇到了 UAC 限制。
使用 SUA 进行虚拟化以模拟 Windows XP 的行为
SUA最有趣的功能之一是其文件和注册表虚拟化管理,这使其能够 该应用程序的运行方式更接近于在 Windows XP 系统中运行的方式。只有 SUA 工具(而不是向导)才能直接控制启用或禁用此虚拟化功能。
启用虚拟化后,许多理论上应该写入受保护路径的写入操作会被透明地重定向到用户配置文件中的其他位置。结果是,程序认为它正在写入系统文件夹,但实际上并非如此。 在安全区域处理副本从而避免权限错误,并将对操作系统稳定性的风险降至最低。
禁用虚拟化后,应用程序将直接面临现代 Windows 版本的实际限制,因此 它的行为更类似于原生 Windows XP 环境。 如果没有这些兼容层,这个问题就无法解决。这对于定位仅在未启用虚拟化时才会出现的问题非常有用。
在诊断场景中,建议分别启用和禁用虚拟化功能进行测试。这样可以比较两种情况下的性能差异。 应用程序在每种情况下都会做出响应。 并决定采取哪些缓解措施,或者是否应该强制采用更严格的兼容模式。
管理来自 SUA 的提升权限
SUA 工具的另一个关键点是能够控制应用程序是否启动。 无论是否增加特权再次强调,此高级功能仅在主工具中可用,在引导式向导中不可用。
在 SUA 界面中,有一个选项可以启用或禁用名为“ “从更高的权限开始”如果此选项保持禁用状态,即使用户属于管理员组,应用程序也会以标准用户权限启动。此模式有助于预测普通用户在没有管理员权限的情况下运行程序时会遇到的问题。
相反,如果选中“以提升的权限启动”复选框,应用程序将像接受了 UAC 提示一样运行,也就是说, 拥有全部行政许可在这种模式下,可以观察到应用程序实际拥有高权限时出现的错误,例如由于 UAC 以外的原因导致的内部操作持续失败。
同时尝试这两种配置,就能看出它们之间的区别: 当应用程序以标准用户身份“裸机”运行时,会出现什么问题? 以及哪些功能只有在提升权限后才能运行。这些信息对于判断缓解措施是否充分、是否必须始终强制以管理员身份运行,或者是否只有重新设计软件才是唯一合理的解决方案至关重要。
使用 SUA 助手:分步指导分析
SUA 助手专为那些喜欢更直接、更少技术性操作方式的用户而设计。它通过向导式界面,允许用户…… 按照指导的步骤进行操作 分析应用程序并应用选定的缓解措施,而无需浏览复杂的报告。
该工作流程与 SUA 工具类似,但粒度较低。首先,选择要分析的应用程序,然后在监控下运行该应用程序,最后,向导完成整个过程。 提出了一系列建议的解决方案 可以根据需要选中或取消选中。
与 SUA 的主要区别在于,该助手并非旨在彻底审查所有内容。 与UAC相关的详细问题它的重点在于行动:诊断最相关的问题并提供可立即应用的修复方案,而无需解释每个 API 事件。
因此,在复杂的环境中或问题持续存在时,通常最好从向导的简化视图切换到完整的 SUA 工具。 技术资料更加全面。 这样就能做出更精细的决策。
从 SUA 应用、撤销和导出缓解措施
应用程序经过 SUA 测试并发现问题后,就该…… 使用“缓解措施”菜单应用特定解决方案 在工具内部。此菜单包含主要的校正操作。
在缓解措施菜单中,我们首先找到该命令 “采取缓解措施”选中它会打开对话框。 “缓解 AppCompat 问题”本节列出了针对所分析应用程序的所有可用缓解措施。管理员可以从中选择要应用的修复程序,并确认更改以安装到系统中。
如果应用修复程序后某些功能未按预期工作,您可以使用该命令。 “撤销缓解措施”此选项也位于缓解措施菜单中。它允许您撤销刚刚应用的修正,前提是 SUA 工具已启用…… 在同一会话中保持打开状态因为只有在关门前才能买到。
如果该工具已关闭,或者您更喜欢在系统内部操作,则始终有其他选择。 手动移除兼容性修复 在控制面板的“程序和功能”部分,您可以找到与 SUA 生成的修复程序相关的条目,并像卸载普通程序一样卸载它们。
最后,第三个关键命令是 “将缓解措施导出为 Windows Installer 文件”这样,您可以将应用的修复程序导出为扩展名为 .msi 的 Windows Installer 文件。然后,可以将此程序包分发到运行同一应用程序的其他计算机,从而确保 所有用户都拥有相同的兼容性解决方案。 无需逐一重复分析。
修复与应用程序故障相关的损坏系统文件
有时,应用程序失败不仅是因为 UAC 或兼容性问题,还因为 关键系统文件已损坏当自动修复工具无法解决问题时,还可以选择找到损坏的文件,并手动将其替换为正常的副本。
第一步是审查记录或报告(例如,来自SFC或DISM等公用事业机构的记录或报告) 准确找出哪个系统文件已损坏。 以及它所在的位置。一旦知道了完整路径,您就可以获取该文件的控制权限并进行替换。
在提升权限的命令提示符下,使用以下命令: takeown/f其中占位符替换为问题文件的路径和名称。例如,如果受影响的文件是 system32 文件夹中的 jscript.dll,则命令为: takeown /f C:\windows\system32\jscript.dll.
取得文件所有权后,需要授予 管理员拥有全部权限为此,icacls 命令的使用方式如下: icacls /grant 管理员:F继续之前的例子,您可以运行 icacls C:\windows\system32\jscript.dll /grant administrators:F,以便管理员组可以不受限制地修改该文件。
权限配置正确后,就可以开始…… 替换损坏的文件 通过创建完整副本。首先,你需要一个完好的文件版本(例如,位于临时文件夹或外部存储介质上),然后将其复制到损坏文件的路径上。通用语法类似于 copy , 在哪里是健康文件的路径,损坏文件的路径。参照前面的例子,可以执行此操作。 复制 E:\temp\jscript.dll 到 C:\windows\system32\jscript.dll 用正确的文件覆盖错误文件。
如果尽管采取了这些步骤,系统仍然显示错误或无法成功替换文件,则损坏可能更为严重。在这种情况下, 或许除了重装Windows系统之外别无他法。 或者使用操作系统本身提供的恢复和修复工具,进行高级恢复。
简而言之,标准用户分析器、其向导和手动系统文件修复技术的结合,提供了一套相当全面的解决方案。 诊断并修复故障应用程序 在向更安全、更现代的环境迁移时,彻底了解用户帐户控制 (UAC)、权限、虚拟化和兼容性缓解措施如何相互作用,是保持许多传统应用程序平稳运行而不牺牲最新 Windows 版本安全增强功能的关键。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。
