我试图弄清楚如何编写PowerShell脚本来查找和运行计划的任务,或者如果不存在该脚本则创建它。这是我到目前为止构建的。 else语句有效,但第一个任务无效。

$taskName = "crebackup"
$taskExists = Get-ScheduledTask | Where-Object {$_.TaskName -like $taskName}

if($taskExists) {
     Start-ScheduledTask -TaskName "crebackup"}

else {
$action = New-ScheduledTaskAction -Execute “C:\POSNation\SQLBackup\sqlbackup.exe”
$Trigger = New-ScheduledTaskTrigger -Daily -At 3am
$Settings = New-ScheduledTaskSettingsSet
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Register-ScheduledTask -TaskName 'crebackup' -InputObject $Task -User 'usernamehere' -Password 'passwordhere'}

最佳答案

在这种情况下,sqlbackup.exe任务需要启动工作目录。当您使用任务计划程序查看任务时,该目录将显示为“开始于(可选)”。要添加它,请将其用于$action变量:

$action = New-ScheduledTaskAction -WorkingDirectory "C:\POSNation\SQLBackup" -Execute "C:\POSNation\SQLBackup\sqlbackup.exe"

另外,请确保脚本中没有任何智能引号()。智能报价通常由文字处理器和某些网站自动生成。我在上面的示例中替换了智能引号。

07-26 09:30
查看更多