powershell - 用于查找/运行计划任务或创建的Powershell脚本

标签 powershell

我试图弄清楚如何编写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"

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

关于powershell - 用于查找/运行计划任务或创建的Powershell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294177/

相关文章:

powershell - stop-service cmdlet 可能超时吗?

c# - 使用 Powershell 添加第 3 方引用到项目

powershell - 由于父级问题,Windows Server 2016 上的启用功能 TCP 激活失败

Azure Devops API 使用 powershell 脚本获取所有项目、团队和成员

powershell - 从自定义对象中选择对象

powershell - 目录不符合测试路径 $item -PathType Container

scripting - Powershell 中的 && 等效项

syntax - 是否有关于(有些)复杂的 PowerShell 语法的指南? Biztalk 示例

azure - PowerShell 列出所有 Azure VM 数据磁盘大小困惑

powershell - powershell如何解析命令名?