Delphi上具有特定用户/密码的特权提升

时间:2014-05-05 18:15:31

标签: windows delphi uac credentials privileges

我正在开发一个应用程序来运行我的同事必须执行的一些默认步骤,但我是唯一拥有管理员密码且我的应用程序需要管理员权限的应用程序,但我不能每次都为他们登录...

我虽然创建了一个自我升级程序或使用管理员凭证启动它的功能,但是如果不将用户和密码作为参数传递给第三方应用程序,我就找不到任何相关信息,这很容易跟踪。< / p>

有谁知道如何处理这个?

1 个答案:

答案 0 :(得分:3)

你可以:

  1. 使用LogonUser()登录到所需的用户帐户,然后ImpersonateLoggedOnUser()让调用线程在执行所需任务之前模拟该用户,然后RevertToSelf()完成后停止冒充。

  2. 将管理任务移至单独的进程,然后使用LogonUser()CreateProcessAsUser(),或者CreateProcessWithLogonW(),在需要时使用用户凭据启动该进程。< / p>