我有一个应用程序,Windows 2008将始终以“pipe理员”身份运行(即蓝色/黄色屏蔽层图标始终可见)。
但是,“以pipe理员身份运行此程序”标志未在文件属性中设置。
这个隐含的旗子从哪里来,我怎么能摆脱它?
背景:我不想以pipe理员身份运行此程序,它应该使用未授权的帐户在计划任务中运行。 但是,目前UAC不允许运行这个程序。
您可能会绊倒Windows中的一个启发式,以确定应用程序是否需要pipe理权限。 如果确定应用程序需要pipe理权限,则会触发UAC提示。 这不是完美的,并不总是正确的,但这是为了向后兼容。
其中最常见的就是文件名。 如果文件包含安装或设置 (可能更新 ),则会提示,除非通过embedded式清单文件明确告知不要。 没有什么可以改变的,开发者将不得不做出这样的改变。
它可能正在写入特权位置,例如C:/Windows或C:/Program Files某处,甚至是特权registry位置(特别是在HKEY_LOCAL_MACHINE某个位置)。 一个标准的用户不能写这些位置(甚至是在某些情况下访问)这些位置,因此Windows必须触发一个UAC提示符才能使应用程序正常工作。
您可能会检查是否有此应用程序的发布者提供的任何更新。 他们可能能够为您提供与Windows Server 2008兼容的更新。如果不是,可以尝试与他们联系,并询问他们是否意识到任何问题并查看是否有解决scheme。
此程序也可以在内置的兼容性数据库中列出,因为要求提升才能正常运行。 我不确定你是否能够影响这个列表,但是你可能会用最新版本的软件发行商来certificate他们已经确认与Windows Server 2008的兼容性。
这可能只是该应用程序是旧的,做一些奇怪的事情 ,启发一个启发式。 我有一个我写的应用程序,在Windows XP上运行良好,但在Vista和后来它触发了一个UAC提示。 它没有读或写我前面提到的任何特权地点。 无论如何改变代码,只需在Visual Studio 2010中重新编译它(而不是Visual Studio 2005最初的编译)就可以解决这个问题。