一切看上去都很好,只不过在实际应用中我们的脚本会更复杂而已!
在多个机器上执行相同的操作
同时在多台主机上做相同的操作会成倍的提升效率,这可以远程操作的拿手好戏:

上面图中的命令同时在两台远程主机上执行,其实就是为 ComputerName 属性指定多个目标而已!
重复一遍:真正的威力是执行脚本文件:

这次,我们同时在两台远程主机上执行了脚本文件 task.ps1。
如果目标主机很多,还可以把它们写到文件中,然后通过下面的方式引用:
Invoke-Command -ComputerName (Get-Content Machines.txt)
远程拷贝文件
终于,PowerShell 在 5.x 的版本中开始支持远程拷贝文件了!先来看 demo:
$mySession = new-PSSession -ComputerName xxxxxx Copy-Item -Path .task.ps1 -Destination C:task.ps1 -ToSession $mySession
上面的命令把本地当前目录下的 task.ps1 文件拷贝到远程主机 xxxxxx 的 C 盘根目录下。注意 Copy-Item 命令使用了一个 Session 对象作为参数,这个参数的名称为 ToSession。我们可以猜测,文件传递的方向就是由这个参数决定的:使用 ToSession 会把本地的文件传递到远程主机;使用 FromSession 则会把远程主机上的文件传递到本机。
再看一下如何拷贝整个目录:
$mySession = new-PSSession -ComputerName xxxxxx Copy-Item -Path .PowerShell -Destination C:PowerShell -ToSession $mySession -Recurse

注意目录拷贝操作要加上 Recurse 参数。
上面的两个操作分别是把一个文件和一个目录拷贝到远程的主机上,接下来我们要把远程主机上的文件或文件夹拷贝到本机来:
$mySession = new-PSSession -ComputerName xxxxxx Copy-Item -Path C:task.ps1 -Destination F:temptask.ps1 -FromSession $mySession Copy-Item -Path C:PowerShell -Destination F:temp -FromSession $mySession -Recurse
注意这里使用的参数是 FromSession,所以命令中的 Destination 指定的是本地路径。执行上面的命令,看看是不是已经把内容拷贝到本地的 F:temp 目录下了!
总结
本文简单介绍了使用 PowerShell 进行远程操作的基础和一些常用的使用方法。总体来说,常用的操作和 SSH 基本都是类似的。而远程拷贝文件的命令是 PowerShell 最新的版本才支持的,在使用时一定要先确定环境中 PowerShell 的版本。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。










