Powershell 复制项:路径中的非法字符
我正在尝试创建一个powershell脚本,该脚本将文件从源复制到多个目标计算机上的同一路径。我在网上找到了这个,并且指向了我的测试数据,但是,我继续收到以下错误(对于它在pc_list.txt中找到的每个系统) 脚本:Powershell 复制项:路径中的非法字符,powershell,Powershell,我正在尝试创建一个powershell脚本,该脚本将文件从源复制到多个目标计算机上的同一路径。我在网上找到了这个,并且指向了我的测试数据,但是,我继续收到以下错误(对于它在pc_list.txt中找到的每个系统) 脚本: $Computers = gc "C:\Temp\Script\PC_List.txt" $Source = "C:\Temp\Script\AAAAA.txt" $Destination = "C$\Temp\" foreach ($Computer in $Computer
$Computers = gc "C:\Temp\Script\PC_List.txt"
$Source = "C:\Temp\Script\AAAAA.txt"
$Destination = "C$\Temp\"
foreach ($Computer in $Computers) {
Copy-Item -Path $Source -Destination "\\$Computer\$Destination\" -Recurse
}
错误:
Copy-Item : Illegal characters in path.
At line:4 char:36
+ ... Computers) {Copy-Item $Source -Destination "\\$Computer\$Destination\ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Copy-Item], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.CopyItemCommand
PC_List.txt中的PC名称:
DEPT-PC1
DEPT-PC2
DEPT-PC3
有人能给我指出正确的方向吗?本恩是对的。虽然我在PC_List.txt中没有任何空行,但在每行末尾都有一个空格。。。太棒了 现在我得到“目标帐户名不正确”
我想我需要添加一个$session凭证行,但需要找出如何实现这一部分…您的txt文件中有空行吗?添加到@BenH的注释中:在
“C$\Temp\”
中使用反勾来转义$
在概念上更清晰(尽管不是严格必要的)。类似地,“\\$Computer\$Destination\”
末尾的\
表示路径以\\
结尾(同样,没有真正的伤害)。除此之外,您的代码没有明显的问题。查看应用于复制项目的-WhatIf
是否显示任何内容。没有空行,我将在早上尝试WhatIf。您的环境中是否启用了WinRM(PSRemoting)?是。我已经通过GPO激活了它。如果启用WinRM,我是否不需要执行新的PSSession?因此我相信新的PSSession可以正常工作,但是我现在发现我的脚本正在将PC列表中的最后一个条目放置在每个副本项路径中。。。e、 g.复制项目:路径“\\Dept-PC1\\\Dept-PC3\C$\Temp\”无效。远程复制操作只支持绝对路径。那么您的最终目标是什么?从一台设备复制到另一台不是您所在主机的设备?我的最终目标是:我们有一家软件供应商,要求将配置文件复制到其软件所在的所有系统上的同一文件夹。我希望运行一个PS脚本,立即将文件复制到列表中的所有pc,而不是手动进入每个pc\\Dept-PC1。