我有一个ClickOnce应用程序,我们从登录和重复开始。安装应用程序后,任务工作正常,但如果我重新启动计算机,则脚本会运行,但无法启动我的应用程序。我添加了日志记录到BAT文件,我知道它已执行,但调用rundll32行不会产生任何结果并且不会产生任何错误。
如果我从资源管理器手动运行脚本,它可以工作,任务调度程序执行也会开始工作。此外,如果我手动运行clickonce快捷方式,脚本将从任务计划程序开始执行。有没有办法验证dfshim是否已加载,或在执行之前加载它?我错过了什么?我尝试清除缓存,似乎在一台机器上修复它,但它似乎是巧合,因为它没有在另一台机器上修复它。
首先调用VBS脚本(由任务调度程序调用):
Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("C:\Users\brnapolitano\AppData\Roaming\FirstAmerican\TaskScheduler\AppReferenceInvoke.bat", 0)
set WshShell = Nothing
BAT脚本称为秒(由上面的VBS调用):
rundll32.exe dfshim.dll,ShOpenVerbShortcut
C:\Users\brnapolitano\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\FastLocalService\FastLocalService.appref-ms
我想将此作为脚本修复,但如果不可能,我会尝试将其添加到启动中,看看是否能解决我的问题。
答案 0 :(得分:2)
我找到了答案(下面链接)。我仍在测试过程中,但似乎有效。在运行命令以启动快捷方式之前,需要运行dfsvc(如果不是活动的话)。
答案 1 :(得分:1)
从您的帖子中发现重启后发生的情况并不清楚。重启后,您是在登录后还是登录前尝试运行计划任务?如果是后者,您的vbs和bat文件很可能在不同于您认为的安全上下文的情况下运行。登录后也可能是这种情况,具体取决于计划任务中的设置。