我有一个应用程序,Windows 2008将始终“作为管理员”运行(即蓝色/黄色盾牌覆盖图标始终可见).
这个隐含的旗帜来自哪里,我该如何摆脱它?
背景:我不想以管理员身份运行此程序,它应该在具有非特权帐户的计划任务中运行.但是,目前UAC不允许运行此程序.
您可能会将Windows的一些启发式算法绊倒,以确定应用程序是否需要管理权限.如果确定应用程序需要管理权限,则会触发UAC提示.它并不完美,并不总是正确,但它都是为了向后兼容.
其中一个最常见的是文件名.如果文件包含安装或设置(并且可能更新),则除非通过嵌入式清单文件明确告知,否则它将提示.这是你无法改变的,开发人员必须做出这样的改变.
它可能是写入特权位置,例如C:/ Windows或C:/ Program Files之外的某个位置,甚至是特权注册表位置(特别是HKEY_LOCAL_MACHINE之外的某个位置).标准用户无法在这些位置编写(甚至在某些情况下访问),因此Windows必须触发UAC提示才能使应用程序正常运行.
您可以检查此应用程序的发布者是否有任何可用的更新.他们可能能够为您提供与Windows Server 2008兼容的更新.如果没有,可以尝试联系他们并询问他们是否知道任何问题并查看他们是否有解决方案.
此程序也可以在内置兼容性数据库中列出,因为要求提升才能正常运行.我不确定您是否可以影响此列表,但您可能最好使用软件发布者的更新版本,他们已确认与Windows Server 2008兼容.
它可能只是应用程序已经过时并且做了一些奇怪的事情,它会启动其中一个启发式算法.我有一个应用程序,我写的在Windows XP上工作正常,但在Vista上,后来它触发了UAC提示.它没有读取或写入我之前提到的任何特权位置.不改变任何代码,只是在Visual Studio 2010中重新编译它(而不是最初编译的Visual Studio 2005)修复了这个问题.