无法将PowerShellvariables传递给命令行参数

我正在处理一个脚本,它需要一个PowerShellvariables,并在运行net命令的脚本块中使用它。

这里是代码:

$User = "domain\user" Invoke-Command -ComputerName $ComputerName -ScriptBlock { net localgroup administrators $User /add } -Credential $cred 

当我运行它,这是我得到的错误消息:

 The group already exists. + CategoryInfo : NotSpecified: (The group already exists.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError + PSComputerName : GMCR77569 More help is available by typing NET HELPMSG 2223. 

所以看起来net命令正在尝试创buildpipe理员组。 我没有在Google上find那么多。

另外,我正在使用Invoke-Command,因为我需要能够传递凭据。

我相信这是简单的,但我不明白。 先谢谢你!

因为您正在调用远程命令,所以脚本部分正试图parsing远程会话中的$ Uservariables。 如果你想传递一个variables,那么你可以用-Args参数修改你的Invoke-Command。 我觉得像下面的东西应该工作:

 Invoke-Command -ComputerName $ComputerName -ScriptBlock { net localgroup administrators $args[0] /add } -Credential $cred -Args $User 

这篇PowerShell博客文章做了很好的解释,并给出了一些解决问题的方法。

https://blogs.msdn.microsoft.com/powershell/2009/12/29/how-to-pass-arguments-for-remote-commands/