如何在Windows 7下找出应用程序需要的权限

时间:2012-05-22 21:44:52

标签: windows delphi windows-7 privileges bde

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

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

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

如何确定我的应用在Windows 7中需要的权限?

2 个答案:

答案 0 :(得分:6)

使用Standard User Analyzer中的Microsoft Application Compatibility Toolkit

  

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

     

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

答案 1 :(得分:1)

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

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

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

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