4

有没有办法找出我的应用程序需要哪些权限才能在 Windows 7 环境中运行?

我有一个使用 BDE 和 ODBC 进行数据库连接的 Delphi 应用程序。此应用程序适用于大多数使用普通用户帐户运行 Windows 7 的计算机。但是,在某些计算机上,它仅适用于具有管理权限的帐户,而不能在普通用户帐户上正常工作。我怀疑是权限问题。这些计算机也在 Active Directory 中运行。

我尝试使用 SysInternals 的 Process Monitor 查找一些信息,但是对我来说输出太高级了。我的应用程序的两次运行的进程监视器日志(1. 管理权限成功,2. 正常权限不成功)有超过 22k 行,我在进程监视器日志(干草堆)中找不到答案(针)。

我可以做些什么来确定我的应用程序在 Windows 7 中所需的权限?

4

2 回答 2

6

使用Microsoft 应用程序兼容性工具包中的标准用户分析器

标准用户分析器 (SUA) 工具和标准用户分析器向导 (SUA 向导) 都使您能够测试应用程序并监视 API 调用,以检测由于 Windows 中的用户帐户控制 (UAC) 功能而导致的潜在兼容性问题® 7 操作系统。

UAC,以前称为受限用户帐户 (LUA),要求所有用户(包括管理员组的成员)作为标准用户运行,直到通过使用安全提示对话框故意提升应用程序。但是,并非所有应用程序都可以使用标准用户角色正常运行,因为应用程序需要对标准用户不可用的位置的访问和特权。

于 2012-05-23T07:57:21.553 回答
1

Aaron Margosis有一个名为 LUA Buglight 的工具,旨在帮助追踪与特权相关的问题。

您可以从这篇博文下载最新版本: LUA Buglight 2.1.1 with support for Win7/2008R2 SP1

它在概念上类似于 MS 应用程序验证程序。然而,在实践中,我发现 LUA Buglight 更易于使用和理解。与 ProcessMonitor 相同。它将以类似的方式监控您的流程,但仅报告作为普通用户失败但作为管理员用户成功的操作。

没有文档,但使用起来很简单。从主 GUI 窗口中选择您的 Exe 并让 BugLight 程序启动它。您需要在启用了 UAC 的管理员帐户中运行。当您不是管理员时,通过失败的步骤运行您的程序。完成后,单击“停止记录”按钮以查看一份报告,其中列出了没有管理员权限的呼叫会失败。

于 2012-05-23T02:52:07.757 回答