首页 > 解决方案 > 将项目复制到多台计算机

问题描述

我的脚本的 Copy-Item 部分有问题。当我在 $Computers 变量中指定一台远程 PC 时,我能够很好地复制项目,但是当我尝试添加多台计算机时,我遇到了问题。有没有一种特定的方式我需要格式化它,以便我可以从源复制到多台远程计算机?我尝试了一些变体来包含一个 foreach,但我使用以下代码收到的错误是:

Copy-Item:无法将“System.Object[]”转换为参数“ToSession”所需的类型 System.Management.Automation.Runspaces.PSSession。不支持指定的方法。在行:7 字符:49

使用此代码,我可以安装到所有计算机,但只能在我一次复制一个项目之后。如果可能,我希望 Copy-Item 一次出现在所有远程计算机上。

$Computers = Get-Content "C:\Server_List.txt"
$Source = "\\networkdrive\Microsoft\SQL\Source"
$Dest = "E:\Microsoft\SQL\Source"

$Session = New-PSSession -ComputerName $Computers
Copy-Item $Source -Destination $Dest -ToSession $Session -Recurse

Invoke-Command -ComputerName $Computers -ScriptBlock {Start-Process "E:\Microsoft\SQL\Source\setup.exe" -ArgumentList "/action=patch /quiet /IAcceptSQLServerLicenseTerms /AllInstances" -Wait
} `

标签: copy-item

解决方案


推荐阅读