首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过powershell抛出无效的参数/选项错误运行Schtasks

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

Stack Overflow用户
提问于 2015-05-05 18:49:00
回答 1查看 1.7K关注 0票数 2

我正在编写powershell脚本,这些脚本运行在一系列预定的任务中,并试图在Windows 2008上删除它们。在powershell中测试schtasks.exe命令时,它似乎运行得很好。但是,当我把它放在我的脚本中时,我得到了以下错误:(请注意,我删除了公司名称,并将它们替换为“公司名称”)

错误:无效的参数/选项- 'ScheduledJobs\Companyname\0.999.1-CompanynameMacStation传递管理器-测试‘。 移除,退出代码:1

这是脚本中的代码片段;$version是我们的软件版本,在本例中是0.999.1,而$environment是部署环境,在本例中是Test。$server是我们试图删除计划任务的服务器。我发现非常奇怪的一点是,如果您查看上面的错误,它会显示我们传递给schtasks的$name,但是当我在下一行引用它来诊断时(“删除,退出代码: 1"),它看起来就像$name现在是空的。此脚本是构建模板的一部分,因此它是从构建服务器运行的,并在远程计算机上运行命令。有什么想法?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2015-05-05 23:07:32

弄明白了;这就是我如何调用函数的方式。

我将函数称为"Remove2008ScheduledJob“,就好像它是一个c#或javascript函数,它的工作方式不同。

我是这样说的:

代码语言:javascript
复制
 Remove2008ScheduledJob($server, $name)

当我应该这样称呼它时:

代码语言:javascript
复制
Remove2008ScheduledJob $server $name

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30060928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档