【问题标题】:A positional parameter cannot be found that accepts argument 'PowerShell'找不到接受参数“PowerShell”的位置参数
【发布时间】:2015-05-21 16:35:33
【问题描述】:

我正在尝试使用 Tidal Enterprise Scheduler 在本地重新启动服务器。我有一个脚本,但它在运行时给了我一条错误消息。

$Var = get-content c:\temp\HP_BPM.txt;
$UserName=’na\sa-its-bsm_qa’
$Password= '123456'
$SecurePassword=Convertto-SecureString –String $Password –AsPlainText –force
$MyCred=New-object System.Management.Automation.PSCredential $UserName,$SecurePassword
Restart-Computer ($var) -For ’PowerShell’ -Credential $MyCred -Timeout 500 -Delay 5

当我运行它时,它会给我一条错误消息:-

重新启动计算机:找不到接受参数“PowerShell”的位置参数

请帮忙。

【问题讨论】:

  • 嗨,杰克,感谢您的建议,即使在添加了 -Wait 之后,我也遇到了几乎相同的错误,因为我已经阅读并理解了 -For 参数,它本身具有等待特定服务功能,所以添加 -Wait 并不重要。重新启动计算机:找不到与参数名称“等待”匹配的参数。在 line:1 char:30 + Restart-Computer ($var) -Wait
  • 您使用的是哪个版本的 PowerShell?
  • 嗨,Jake,我使用的是 WindowsPowerShell\v1.0。
  • -Wait -For-Delay 在 PowerShell 3.0 之前不可用

标签: powershell


【解决方案1】:

问题可能是脚本中单引号的格式。它们似乎是紧引号而不是直引号。尝试粘贴到记事本并删除/重新输入所有单引号,然后保存。

【讨论】:

  • 更改了它,运行它仍然是相同的问题..相同的错误消息..即使在添加 -wait 之后,它也会给我相同的错误消息......不确定我错过了什么......
  • 我认为这与缺少参数无关,所有必需的参数都在那里。这是一个基本的语法错误。您的 c:\temp\HP_BPM.txt 文件中到底有什么?而且,它需要是一个文件吗?如果您的目标是单台计算机,为什么不将计算机名称直接放入 Restart cmdlet?如果您的目标是多台计算机,那么您将需要一个 foreach 循环。另外我不知道括号是必要的 - 它可能会混淆 ComputerName 位置参数。
  • 试过同样的方法:- Restart-Computer -ComputerName ITSUSMPW00893 -For PowerShell -Credential $MyCred -Timeout 500 -Delay 5 还是一样的错误......
  • 您是否尝试过添加@Jake 提到的 -Wait 参数?在使用 -For 参数之前需要它,来自 TechNet:“等到计算机重新启动后指定的服务或功能可用。指定一个有效值。此参数仅与 Wait 参数一起有效。” link。另外,就像他说的那样,这个参数直到版本 3 才引入,但我真的怀疑你还在使用版本 1。安装文件夹可能会产生误导 - 通过运行 $host.version 进行验证。
猜你喜欢
  • 1970-01-01
  • 2017-11-06
  • 2016-05-27
  • 1970-01-01
  • 2019-05-07
  • 2016-07-06
  • 2014-09-30
相关资源
最近更新 更多