通过powershell运行Schtasks抛出无效的参数/选项错误

时间:2015-05-05 18:49:01

标签: powershell schtasks.exe schtasks

我正在编写运行一系列计划任务的powershell脚本,并试图在Windows Server 2008上删除它们。在powershell中测试schtasks.exe命令时,它似乎运行正常。但是当我把它放在我的脚本中时,我收到以下错误:(请注意,我删除了公司名称并将其替换为"公司名称和#34;)

  

错误:无效的参数/选项 - ' ScheduledJobs \ Companyname \ 0.999.1-CompanynameMacStation Delivery Manager-Test'。

     

删除,退出代码:1

这是脚本中的一段代码; $ version是我们的软件版本,在本例中为0.999.1,而$ environment是部署环境,在本例中为Test。 $ server是我们尝试删除计划任务的服务器。我觉得奇怪的是,如果你看一下上面的错误,它会显示我们传入schtasks的$ name,但是当我在下一行引用它以进行诊断时,("删除,退出代码) :1")看起来$ name现在是空的。此脚本是构建模板的一部分,因此它从我们的构建服务器运行并对远程计算机运行命令。想法?

function RemoveScheduledJob($server, $name)
{
    Write-Host "Deleting Scheduled job $name."
    $windowsVersion = (Get-CimInstance Win32_OperatingSystem).Version
    $windowsVersion = $Version.Substring(0,3)

    if ([double]$windowsVersion -ge 6.2)
    {
        Remove2012ScheduledJob($server, $name)
    }
    else
    {
        Remove2008ScheduledJob($server, $name)
    }
}

function Remove2008ScheduledJob($server, $name)
{
    schtasks.exe /delete /s $server /F /tn $name
    Write-Host "Removing $name, Exit code: $LASTEXITCODE"
}

    $taskPath = "ScheduledJobs\CompanyName"
    $taskName = "$taskPath\{0}-CompanyName Delivery Manager-{1}" -f $Version, $Environment
    RemoveScheduledJob $Server $taskName

1 个答案:

答案 0 :(得分:0)

想出来;这就是我调用函数的方式。

我正在调用函数“Remove2008ScheduledJob”,就像它是一个c#或javascript函数,它的工作方式不同。

我这样称呼它:

 Remove2008ScheduledJob($server, $name)

我应该这样称呼它:

Remove2008ScheduledJob $server $name

因此,$ server基本上变为$ server,空格后跟$ name,$ name为空。这解释了为什么声称$ name是无效的参数/选项。

相关问题