从任务计划程序运行快捷方式(.lnk)

从任务计划程序运行快捷方式(.lnk)

我正在尝试创建一个运行 .lnk 快捷方式的任务计划程序任务,该任务使用pwsh.exe带参数的 PowerShell 脚本启动。当我将 lnk 设置为触发任务时运行的程序时,pwsh窗口会打开并显示正常提示。

通过更多测试,似乎任务计划程序并不运行 .lnk 本身,而是直接运行目标,同时忽略所有参数和选项(例如,将程序设置为以最小化窗口启动也不起作用)。

有没有办法强制任务计划程序正确运行.lnk,而无需绕过它并忽略参数?


复制步骤:
  1. 创建 .lnk 文件,并将目标设置为pwsh -command "pause"(或传递参数时行为不同的任何其他程序)

  2. 创建尝试运行 .lnk 文件的任务计划程序任务。

  3. 手动触发任务。

  4. 而是打开普通的 PowerShell 实例,忽略参数-command "pause"

答案1

如何在 Windows 任务计划程序中运行快捷方式/链接 (.lnk)

程序/脚本:cmd

添加参数(可选):/c“%userprofile%\Downloads\4.ps1(F).lnk”

如何在 Windows 任务计划程序中运行快捷方式 (.lnk)

答案2

我无法准确重现 OP 的原始问题场景。对我来说,运行任务后,会出现“您想如何打开此文件?“对话框出现。我假设对于步骤 2,Program/script字段脚本设置为<path-to-lnk-file>

无论如何,除了cmd.exe /c <path-to-lnk-file>用户提供的解决方法外,我还找到了两种解决方法某人

  1. 对于您的任务:
  • 将字段设置Program/script%WinDir%\explorer.exe
  • 将字段设置Add arguments (optional)<quoted-path-to-lnk-file>

我发现这种方法有一个值得注意的缺点: - 如果您已将.lnk文件Run:字段设置为Minimized或快捷方式的属性表中,则打开文件Maximized时将不会遵守该设置。.lnk

  1. 或者,您可以使用包装脚本来运行快捷方式:
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 的未来版本中被删除。

相关内容