如何使用Powershell remoting向远程计算机传输信息?

日期: 2013-02-18 作者:Don Jones翻译:杨旭 来源:TechTarget中国 英文

使用PowerShell remoting时,区分本地执行代码和远程执行代码很重要。如果你需要在本地执行某个动作,然后将该命令传递给一个或多个远程的计算机,有一个特殊的方式可以允许这样做——而且这种方式并不总是显而易见的。   例如,假设你已经创建了一个证书对象,想将其传输给一台远程电脑并在下面的命令中使用:   $cred = Get-Credential   要想实现,应该在远程命令脚本块中创建一个参数块。然后,指定该数据通过–ArgumentList参数传输。

  Invoke-Command –ScriptBlock (param($c) Add-Computer –Credentia……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

使用PowerShell remoting时,区分本地执行代码和远程执行代码很重要。如果你需要在本地执行某个动作,然后将该命令传递给一个或多个远程的计算机,有一个特殊的方式可以允许这样做——而且这种方式并不总是显而易见的。

  例如,假设你已经创建了一个证书对象,想将其传输给一台远程电脑并在下面的命令中使用:

  $cred = Get-Credential

  要想实现,应该在远程命令脚本块中创建一个参数块。然后,指定该数据通过–ArgumentList参数传输。

  Invoke-Command –ScriptBlock (param($c) Add-Computer –Credential $c }

  -ComputerName SERVER2 –ArgumentList $cred

  –ArgumentList搭载的应该是一个以逗号为分隔符的列表,由Param()块代替。第一个–ArgumentList参数定位到第一个Param()变量,第二个对应第二个变量,一次类推。然后,Param()变量就跟其他变量一样用在脚本块中。

  该技术可以在Invoke-Command的内置的帮助中找到。这里是另外一个技术:

  Invoke-Command –FilePath MyScript.ps1 –ComputerName SERVER2,SERVER2

  -ArgumentList $this,$that

  这里假设MyScript.ps1在内部定义了一个包括两个参数的Param()块,-- $this将会发送到第一个参数,$that对应第二个参数。这基本上跟-ScriptBlock使用的是相同的技术,但相反的是,一切都是在脚本文件中定义的。

作者

Don Jones
Don Jones

投稿作者

相关推荐