powershell“无法使用指定的命名参数解析参数集”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell“无法使用指定的命名参数解析参数集”相关的知识,希望对你有一定的参考价值。

希望您可以帮我解决在本地计算机上使用备用凭据执行脚本块的问题。我一直在论坛上搜索并做一些谷歌搜索,并找到两种可能的方法来解决我的问题:

  1. 使用Invoke-Command
  2. 使用Start-Job

使用方法#1我有这个代码:

$res = Invoke-Command -Credential $migratorCreds -ScriptBlock {param($one, $two) Get-LocalUsers -parentNodeXML $one -migratorUser $two } -ArgumentList $xmlPRE,$migratorCreds

其中Get-LocalUsers是存储在自定义模块(* .psm1)中的自定义函数。

我的问题是每次运行此代码时都会出现以下错误:

无法使用指定的命名参数解析参数集

所以很明显我必须遗漏一些东西,你能帮我解决这个话题吗?

提前致谢...

答案

你有的错误是因为没有-credential-computername不能存在。

你可以这样试试:

Invoke-Command -Credential $migratorCreds  -ScriptBlock ${function:Get-LocalUsers} -ArgumentList $xmlPRE,$migratorCreds -computername YOURCOMPUTERNAME
另一答案

使用PowerShell相当新,想想我可以提供帮助。你能试试吗?

我相信你没有获得脚本块的正确参数:

param([string]$one, [string]$two)
$res = Invoke-Command -Credential $migratorCreds -ScriptBlock {Get-LocalUsers -parentNodeXML $args[0] -migratorUser $args[1] } -ArgumentList $xmlPRE, $migratorCreds
另一答案

对于Invoke-Command cmdlet,接受的答案是正确的,但更广泛地说,cmdlet可以具有parameter sets,其中定义了输入参数组,这样您就不能使用不属于同一参数集的两个参数。

如果您遇到任何其他cmdlet的此错误,请查找其Microsoft文档,并查看页面顶部是否列出了不同的参数集。例如,Set-AzureDeployment的文档在页面顶部定义了三个集合。

以上是关于powershell“无法使用指定的命名参数解析参数集”的主要内容,如果未能解决你的问题,请参考以下文章

powershell PowerShell:启动PowerShell作为其他用户提升

powershell [提示输入powershell] #powershell #input #prompt

powershell 测量PowerShell命令或PowerShell脚本的速度

powershell远程下载exe并执行

powershell 使用啥端口

如何在不卸载powershell的情况下,有效禁用/启用powershel