在Windows 7下提升权限

S L*_*all 13 delphi windows-7 elevated-privileges

我有一个"自动升级"机制,已在Windows XP下工作多年,在Windows 7下失败,因为提示用户(在Windows XP下从未存在)授予程序使用管理员权限运行的权限没出现.

win32程序(用Borland Delphi编写)使用LogonUser()和ImpersonateLoggedOnUser()来模拟用户(具有管理员权限的本地帐户),以便它可以替换Program Files文件夹中的选定文件.

如果我使用此用户帐户手动登录到Windows 7,然后尝试删除Program Files文件夹中的文件,Windows 7会提示我允许程序继续执行 - 如果我授予该权限,则删除该文件,如果我拒绝权限报告"拒绝访问"并且不允许删除.

当尝试与上述相同的事情时,"拒绝访问"是没有任何提示给用户的结果.

我在类似的问题中看到了herabouts(关于临时文件的创建(其中给出的答案的主要内容非常正确'不要这样做')这样的提示可以在"代码"中提出但我看不到哪里实际上解释了这种方法.

Dav*_*nan 5

您只需将自动更新程序标记为在应用程序清单中需要提升权限.

这就是说你可能想考虑安装用户具有写权限的地方.

  • @misha安装程序在文件夹上设置ACL是顽皮的.系统管理员会恨你! (6认同)