任务计划程序 - 如何使用多个参数运行 powershell 脚本?

Fer*_*SBS 5 windows powershell scheduled-tasks

我使用 powershell.exe 作为程序,使用“ -Command "& C:\Windows\logon.ps1; exit $LASTEXITCODE"; ExecutionPolicy RemoteSigned”作为参数,但它似乎不起作用。

我想要的一些东西:

  1. 在任务调度程序中得到结果,所以我可能知道一切是否正常,或者是否有错误

  2. 将脚本的输出放入 output.txt 文件中(增量文件是否可能?)

  3. 运行脚本隐藏

MDM*_*313 2

我不知道你是否忘记了问题中的 - 但它是-ExecutionPolicy. 如果该脚本未签名,那么它也不会执行该脚本,您可以使用bypass执行策略来排除这种情况。

我怀疑您是否可以在命令行中依次运行脚本和命令。将 添加exit $LASTEXITCODE到脚本并使用 运行它-File C:\script.ps1

如果运行隐藏意味着没有控制台窗口,我通常会调用我的脚本,例如

powershell.exe -noprofile -executionpolicy bypass -file C:\script.ps1
Run Code Online (Sandbox Code Playgroud)

却永远看不到窗户。

要将脚本的输出放入文件中,请将命令通过管道传输到Tee-Object

"Hello World" | Tee-Object C:\output.file
Run Code Online (Sandbox Code Playgroud)

您可以将文件命名为任何您喜欢的名称,在脚本中实现逻辑以使文件名递增,或者 - 我个人最喜欢 - 在文件名中使用 YYYYMMddhhmmss。


更新

另外,摘自Microsoft Powershell 上的 Technet 页面:

脚本块必须用大括号 ({}) 括起来。仅当在 Windows PowerShell 中运行 PowerShell.exe 时才能指定脚本块。脚本的结果作为反序列化的 XML 对象而不是活动对象返回到父 shell。

如果 Command 的值是字符串,则Command 必须是命令中的最后一个参数,因为在命令之后键入的任何字符都将被解释为命令参数