ewi*_*ows 28 powershell scheduled-tasks
我有一个PowerShell脚本(有效).在Windows任务计划程序中,我创建了一个要执行的新任务"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe",将参数作为我的PS1脚本传递.当任务运行时,我得到一个上次运行结果0x1.
我更新了脚本,在脚本打开时写入日志文件,但没有发生.这几乎就像任务甚至无法打开Powershell.exe.
这听起来准确吗?问题是什么或我如何解决它?
bri*_*ist 55
如果您遇到的问题是执行策略,那么您还可以设置特定PowerShell调用的执行策略.这是我通过计划任务执行PowerShell时通常所做的事情:
powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File \\path\to\script.ps1
Run Code Online (Sandbox Code Playgroud)
这可确保您不依赖于用户PowerShell配置文件中的任何内容,并避免执行该附加代码的开销.
这大多无关紧要; 也许如果您正在捕获脚本的输出.大多数情况下,它让我感觉更好.
如果脚本中的某些内容意外地提示用户,则确保您的任务不会无限期地等待.使用此开关,脚本将退出; 至少你会有一个错误代码而不是一个挂起的脚本.
您可以Unrestricted在此处使用,也可以使用您喜欢的执行策略.这可能是您最需要的.
因为我不希望任务依赖于全局非默认设置,您可能还有其他原因需要在将来进行更改.如果某些其他进程依赖于不同的执行策略,那么这种方式与您的任务不一致.
此外,不必更改默认值总是很好.少记住/记录/测试.
请参阅JohnLBevan关于0x1计划任务中导致结果的其他原因的答案.
任务计划程序调用PowerShell脚本以完成代码的原因可能有多种0x1:
Run with highest privileges启用标志(任务的“常规”选项卡上的复选框)。*-File ".\MyScript.ps1" -Parameter1 'Demo',请尝试:-Command "& .\MyScript.ps1 -Parameter1 'Demo'"*正如Ben在评论中指出的,Run with highest privileges不必启用/取决于脚本是否需要管理员权限(例如,某些命令是否需要Set-ExecutionPolicy或Stop-Process不需要这些权限)。如果不确定,请尝试勾选该选项以查看它是否可以解决您的问题;如果看起来没有什么不同,请不要勾选。
| 归档时间: |
|
| 查看次数: |
46111 次 |
| 最近记录: |