在 Windows 10 上使用管理员权限运行我的游戏——任务计划程序问题

在 Windows 10 上使用管理员权限运行我的游戏——任务计划程序问题

我和妻子喜欢玩一个老游戏;我已经将它安装在一台全新的 Windows 10 机器上,它可以从命令行和双击文件资源管理器中的可执行文件正常运行。

但是,以这种方式运行时,它总是显示 UAC“您是否希望此程序进行更改”提示,而我试图在没有该提示的情况下运行游戏。

各种指令都指向任务计划程序:创建一个任务,赋予它“最高权限”,允许它按需运行,然后创建一个快捷方式来运行该任务。

因此,我在任务计划程序中创建了任务,说明合理地建议从那里测试它,而这就是我现在陷入困境的地方。我似乎无法通过让任务计划程序运行我创建的任务来运行游戏。

在“常规”下(在此任务的任务计划程序属性中),我选择了“仅在用户登录时运行”、“以最高权限运行”和“为 Windows 10 配置”。触发器为空。操作有“启动程序”和完整路径名,包括可执行文件名称和“.exe”。在条件下,我取消选中“仅在计算机使用交流电源时启动任务”,并且没有选中任何其他框。

如果我右键单击该任务并选择“运行”,它会将任务状态更改为“正在运行”,但不会有任何反应。如果我进入特权命令提示符并尝试使用“schtasks /run /tn taskName”,我会收到一条消息,提示已成功启动任务,不会有任何反应。

我想我应该提一下,这款游戏是一款“全屏”游戏;所有正常的 Windows 窗口都会消失,屏幕上只显示这个。当然,我不知道这是否有任何区别。

另一个奇怪的事情是——我认为更改默认选项“仅当计算机使用交流电源时才启动任务”可能会有问题,所以我返回任务属性并尝试更改它。当我这样做时,我得到了类似“任务 xml 包含格式不正确或超出范围的值”的信息。在这种情况下,我预计在尝试运行任务时会收到错误,但我想提一下这一点,不管它值不值。

游戏是“凯撒大帝 III”,如果有人关心的话。我该如何让它在没有 UAC 提示的情况下运行,无论是通过任务计划程序还是其他方式?

答案1

任务计划程序不是你应该关注的地方。这是一个解决方法,但你正在与之抗争UAC(用户帐户控制)。 默认设置要求任何请求管理访问权限的应用程序都必须得到用户的批准,因此才会出现提示。

在执行以下操作之前,请检查快捷方式属性,并确保应用程序未设置为以管理员身份运行。如果是这样,请取消选中该框,问题应该会消失。 如果没有,请继续。

UAC 并不是一件坏事(就像以前一样)。它是从 Linux 权限概念中引入的,用于保护您免受恶意软件应用程序的侵害,这些应用程序试图通过管理权限劫持您的计算机。它积极控制 Program Files 和 Program Files(x86) 文件夹(您可能在其中安装了游戏),以防止用户安装看似无害但实际上并非如此的东西(例如,信用监控应用程序实际上只是为了安装键盘记录器、20 个工具栏并窃取您的身份)。出于这个原因,我建议容忍弹出窗口,除非你真的知道自己在做什么以及如何保护你的计算机

如果您像专业人士一样精通计算机安全保护,或者只是决定不听我的建议,请按照以下方法调整您的 UAC 设置:

  1. 打开控制面板
  2. 选择用户帐户和家庭安全
  3. 选择用户帐户
  4. 更改用户帐户控制设置
  5. 将滑块调整到较低的设置,或一直向下调整以禁用 UAC。

请注意,大多数现代应用程序都不会被 UAC 标记。较旧的游戏(包括您的游戏)经常请求管理员权限或尝试写入受保护的文件夹,并且被允许这样做。在您的例子中,快捷方式正在路由到受保护的文件夹,而 UAC 不喜欢它这样做,这可能是您的根本原因。

答案2

我发现这是一个有用的警告,表明某些操作超出了应用程序的正常范围。但我不需要这个(可能还有其他几个)特定程序的警告。

UAC 的工作原理如下:

由于 Windows Vista 程序默认不被授予管理权限。即使您的帐户是管理员,程序也不允许执行管理操作,除非它们以提升的权限启动。如果程序试图在没有提升权限的情况下执行受限制的操作,它将失败。

UAC 不只是一个你可以忽略的警告。它会通知你,如果你让这个程序运行,它将可以做任何它想做的事情,包括:

  • 使用提升的权限运行其他程序
  • 更改其他程序的文件
  • 更改安全设置
  • 损坏窗户

您可以选择相信该程序不会执行任何破坏性操作并运行它,或者阻止它运行。

如果程序在没有提升权限的情况下运行,UAC 弹出窗口将不会出现,但一旦它尝试执行普通用户禁止的操作,它也会失败。这很可能会导致崩溃。

没有中间立场:您要么每次都明确提升权限,要么在未提升权限的情况下运行程序。这是一个明智的安全模型:您不会每天执行管理任务。在正常的工作流程中,您不应该看到太多 UAC 的运行。除非您使用的程序不关心安全性。

由于该程序是在 UAC 之前编写的,因此我怀疑它是否“请求权限”。

实际情况比这要复杂一些。

基本上任何进程都可以请求以提升的权限启动另一个进程。程序以提升的权限启动的最常见原因是:

  1. UAC 清单。开发人员可以在可执行文件中嵌入清单,强制以提升的权限运行它们。启动可执行文件时,Windows 将检查此清单,如果存在,则程序将始终以管理员身份运行。

  2. UAC 属性在可执行文件(或快捷方式)的属性中,兼容性选项卡。如果存在,Windows 将提升该程序。

  3. 属性中的兼容性设置. 同样,一些设置兼容性选项卡特性可以强制提升权限。例如,启用与 Vista 之前系统的兼容性即可实现此目的。

  4. 其他兼容性设置兼容性工具包是一个允许对某些兼容性功能进行细粒度控制的附加组件。同样,其中一些功能可能会强制提升权限。

  5. 可能是默认兼容性策略?我对此不太确定,但我怀疑 Windows 有一些启发式方法,可以决定哪些应用程序应该以提升的权限运行,即使它们没有被明确启用。Vista 有一些功能是为了简化向 UAC 的过渡而构建的,例如 VirtualStore。可能还有更多。

游戏很可能请求管理权限,因为它使用管理功能。那时没人关心这些事情。程序会将文件放在各处:程序文件视窗目录,您可以随意命名。这些是受保护的位置。

还有一些兼容性功能只需要 UAC 即可正常运行。据我记得,一些旧版图形设置只能以管理员身份使用。

长话短说:

如果游戏要求提升权限,那么您可以放心地认为它必须这么做。

这不仅仅是一个警告,这是安全模型的重要组成部分。

顺便说一句,如果你在 GOG.com 上购买了这款游戏,那么你很可能没有获得 1999 年发布的原始可执行文件。GOG.com 正在修补他们的游戏,以便它们可以在现代硬件和操作系统上运行。如果他们发现有必要,他们可能会将 UAC 清单添加到 EXE 中。

答案3

尝试右键单击应用程序.exe 文件并以管理员身份运行它。

您也可以右键单击应用程序快捷方式或应用程序.exe 文件->属性->兼容性选项卡->“以管理员身份运行此程序”框->确定。

相关内容