远程Powershell代码块并行执行
本文关键字:并行执行 代码 Powershell 远程 | 更新日期: 2023-09-27 18:21:09
有人能帮助理解远程powershell中的多线程吗?我正在尝试仅使用WinRM将文件复制到远程计算机。以下是算法:
- 将本地文件划分为字节[]块
- 每个区块都是base64编码的
- 在powershell代码块中发送到远程WinRM的base64字符串,该代码块对其进行解码并附加到文件中
- 远程文件最终填充了所有字节,并且是本地文件的精确副本
问题是,在执行远程powershell块时,我会遇到"进程无法访问文件,因为它被另一个进程使用"类型的错误。看起来powershell并行执行我的脚本块。但我需要按顺序执行。我可以覆盖它吗?
这里提供了完整的代码示例。
每次创建远程PowerShell会话时,它都会使用不同的PowerShell进程来执行请求。这就是您遇到文件争用问题的原因。您应该考虑对每个操作使用相同的远程会话,而不是每次想要附加块时都创建一个新的远程会话。
顺便说一句,如果你在V5上(或者当你进入V5时),你可以使用$s = New-PSSession remoteComputerName; Copy-Item src.txt C:'dst.txt -ToSession $s
将文件复制到远程计算机。