创build并立即运行一个Windows任务(如pipe理员)

我正在为持续集成服务器设置一个testing节点。 它将执行应用程序的GUItesting。 因此,它会在运行其他交互式testing之前获取生成的安装程序包并以静默方式安装应用程序。 但是有一个问题:UAC

由于我们不想禁用UAC来维护一个真实的testing环境,因此需要绕过一次来设置应用程序。 有很多方法可以做到这一点,一个stream行的似乎使用Windows任务调度器。 任务可以作为普通用户添加,并configuration为以pipe理员身份运行,无需进一步确认。 我可以使用schtasks /create命令,但其参数不清楚。 另外,参数值在/? 在我的系统中似乎将帮助翻译成德语,我相信(并且希望)这是一个错误,价值实际上应该用英语说明。

另外,我只想创build一个立即执行的任务,然后删除它并继续执行其他活动(全部在一个batch file中)。 一个schtasks电话如何看起来像这样? 我会从这样的事情开始,但不完整:

 schtasks /create /tn "Testaufgabe" /tr "setup.exe" /sc EINMAL /it /np /z /rl /f 

PS:噢,我需要等待,直到开始的应用程序已经完成,直到我可以继续其他任务。 所以程序调用必须是同步的,而不是在后台。 我已经search了几个小时的networking,但似乎无法find一种方法来实现这一点。 UAC似乎不适用于这种情况。 但是我们在testing用例中需要它,因为这就是用户所拥有的。

更新:您不能使用任务计划程序API来注册将以最高权限运行的任务。 这只有在创build任务时拥有pipe理员权限的情况下才有可能,这在我的情况下是没用的。 所以我想我需要专门使用schtasks.exe。

它不起作用。 我只是想出了如何从命令行的XML定义文件中创建一个任务。 如果任务想用管理员权限执行并注册为无效管理员,则失败。 所以schtasks是没有办法绕过UAC确认 – 只有任务计划程序GUI。 实际上,这个窗口mmc.exe已经作为管理员启动了(没有UAC确认),所以显然创建这样的管理任务是可能的。

我放弃绕过UAC的确认。 相反,我只是在一个不同的本地管理员帐户下启动安装可执行文件,我知道密码(大概是psexec )。 它不会有测试用户的配置文件和环境,并可能做一些细节有点不同,但毕竟这是一种应该工作的方式。