我正在尝试创建一个运行 .lnk 快捷方式的任务计划程序任务,该任务使用pwsh.exe
带参数的 PowerShell 脚本启动。当我将 lnk 设置为触发任务时运行的程序时,pwsh
窗口会打开并显示正常提示。
通过更多测试,似乎任务计划程序并不运行 .lnk 本身,而是直接运行目标,同时忽略所有参数和选项(例如,将程序设置为以最小化窗口启动也不起作用)。
有没有办法强制任务计划程序正确运行.lnk,而无需绕过它并忽略参数?
复制步骤:
创建 .lnk 文件,并将目标设置为
pwsh -command "pause"
(或传递参数时行为不同的任何其他程序)创建尝试运行 .lnk 文件的任务计划程序任务。
手动触发任务。
而是打开普通的 PowerShell 实例,忽略参数
-command "pause"
答案1
答案2
我无法准确重现 OP 的原始问题场景。对我来说,运行任务后,会出现“您想如何打开此文件?“对话框出现。我假设对于步骤 2,Program/script
字段脚本设置为<path-to-lnk-file>
。
无论如何,除了cmd.exe /c <path-to-lnk-file>
用户提供的解决方法外,我还找到了两种解决方法某人。
- 对于您的任务:
- 将字段设置
Program/script
为%WinDir%\explorer.exe
- 将字段设置
Add arguments (optional)
为<quoted-path-to-lnk-file>
。
我发现这种方法有一个值得注意的缺点: - 如果您已将.lnk
文件Run:
字段设置为Minimized
或快捷方式的属性表中,则打开文件Maximized
时将不会遵守该设置。.lnk
- 或者,您可以使用包装脚本来运行快捷方式:
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute WScript.Arguments(0), "", "", "open", 1
将代码保存至runshortcut.vbs
。
对于您的任务:
- 将字段设置
Program/script
为%WinDir%\System32\wscript.exe
- 将字段设置
Add arguments (optional)
为<quoted-path-to-runshortcut.vbs> <quoted-path-to-lnk-file>
。
据我所知,这种方法没有缺点。然而,值得一提的是VBScript 已弃用并且很可能会在 Windows 的未来版本中被删除。