[英]Scheduled Powershell Script wont run
我有一个如下所示的ps1脚本,它过滤文件并输出格式化的HTML文件。
$a = "<style>"
$a = $a + "BODY{background-color:peachpuff;}"
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:thistle}"
$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:PaleGoldenrod}"
$a = $a + "</style>"
$b = Get-Date -Format u
Get-ChildItem -Recurse K:\AppData\*.* -Filter *.CATPart | Where{$_.LastWriteTime -gt (Get-Date).AddDays(-6)} | sort LastWriteTime -descending | select name,LastWriteTime,Directory | convertto-html -head $a -body "<H2>CATIA PAST 7 DAYS -- $b </H2>" | out-file C:\aaa\catia_result.htm
我可以手动运行此脚本,完全没有问题。 但是当我安排它运行时,它只给我格式化的htm文件,其中没有任何过滤数据。 这是我在任务计划程序中使用的参数:
powershell.exe -ExecutionPolicy Bypass -Command "C:\aaa\RLTP_HTML_FINAL.ps1"
我尝试将executionpolicy
更改为Unrestricted
,但仍然无法正常工作。 任务历史记录显示任务已完成,但HTML文件中没有数据。
我还尝试使用批处理文件调用powershell来运行脚本,这与仅使用手动操作但使用任务计划程序的结果相同。
最有可能的是,当您计划执行脚本时,它可能没有到K:\\
驱动器的映射。 确保:
Get-PSDrive
cmdlet在脚本中映射K驱动器 K:\\
驱动器 或者 ,您可以仅指定UNC路径,而不用引用K:\\
驱动器。
ps。 使用-ExecutionPolicy Bypass
很好。 这有助于避免执行策略出现任何问题! :)只要您使用该参数,执行策略设置为什么都没有关系。
如果要捕获脚本中的任何错误,请将其作为最后一行:
Add-Content -Path $PSScriptRoot\error.log -Value $error;
您可能会看到有关K:\\
驱动器的某些信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.