小编Mar*_*oDS的帖子

程序不能作为计划任务正常运行

情况

我有一个批处理脚本,它准备一些文件,执行一个程序 ( .exe),然后删除所述文件。

此任务应每小时运行一次,因此我尝试使用计划任务进行配置。问题是前面提到的程序在从任务中调用时无法正常运行(无论是通过.bat脚本还是.exe直接调用),但我在日志中没有收到任何警告或错误消息。

设置

该任务被配置为作为具有正确设置的所有权限的 Windows 服务帐户运行。使用此帐户通过 RDP 登录时,我可以直接执行.bat.exe没有问题,但该任务似乎仍然没有执行任何操作。这很容易观察到,因为程序总是修改文件,并且修改的时间戳不会通过任务改变。

在计划任务日志中,我得到了任务启动进程、退出等的信息消息。然而,“结果代码”是111(尝试谷歌这个没有运气,我得到的唯一关联是“文件名太长",这与 AFAIK 完全无关)。在应用程序日志中,我一无所获。

我怀疑是问题所在

该程序是一个古老的怪物,它产生某种启动画面(它实际上是一个普通窗口),即使不需要 GUI,因为它不需要交互并在操作后自行关闭。窗口出现约 2 秒钟。

我怀疑 GUI 的这一要求与任务失败有关,但我不确定。当我使用运行任务的用户(通过 RDP)登录时,启动计划任务时没有窗口出现。


编辑关于 GUI

我构建了一个非常小的 C# 可执行文件,它在没有主窗口的情况下启动程序(使用ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden)。即使这样,计划任务仍然没有成功正确启动程序,但返回码现在是0


更新

当我将任务配置为“无论用户是否登录都运行”并且未选中run with highest privileges选项时,错误值为.2147943859


我能做些什么来排除故障?

操作系统 = Windows Server 2008 R2 SP1

如果需要更多信息,请在评论中告诉我。

troubleshooting scheduled-task batch windows-server-2008-r2

13
推荐指数
2
解决办法
7万
查看次数

URL 预留在 Windows 中实际上是如何工作的,特别是 ACL?

我是一名 .NET 开发人员,正在开发一个包含多个 WCF 服务的项目。一些自动化测试尝试托管这些服务,但根据我是否不使用管理权限运行测试,这些测试会失败并出现以下错误:

System.ServiceModel.AddressAccessDeniedException : HTTP could not register 
URL http://+:45566/SomeService/. Your process does not have access rights to this namespace 
(see http://go.microsoft.com/fwlink/?LinkId=70353 for details).
  ----> System.Net.HttpListenerException : Access is denied
Run Code Online (Sandbox Code Playgroud)

按照提供的链接,我似乎必须使用以下netsh命令给自己(普通域用户)某种访问权限:

netsh http add urlacl url=http://+:45566/SomeService user=DOMAIN\me
Run Code Online (Sandbox Code Playgroud)

不幸的是,似乎没有办法(我可以找到)对端口或相对 URL 部分使用通配符,以便授予我自己访问本地主机上的所有内容的权限。

因此我的问题是:这个 ACL 到底是什么?我可以在文件或其他东西中找到它,以便更轻松地操作它吗?

更好的是:由于默认情况下本地管理员帐户似乎具有访问权限,我是否可以以某种方式告诉其背后的任何系统闭嘴并让我做我的工作?

security windows access-control-list

3
推荐指数
1
解决办法
2万
查看次数