批量文件复制到域计算机

时间:2014-06-18 16:27:35

标签: powershell unc

我正在尝试制作我已制作的屏幕保护程序文件,并将其复制到我们所有的桌面和笔记本电脑\ system32文件夹中。我创建了一个计算机文本文件并找到了这个脚本,但我一直收到这个错误。任何帮助将不胜感激。

在以管理员身份登录的2012 Server上的Powershell 3.0中运行此功能。

$computers = gc "\\server\share\scripts\computers.txt"
$source = "\\share\scripts\MySlideshow.scr"
$dest = "C:\Windows\System32"
foreach ($computer in $computers) {
    if (test-Connection -Cn $computer -quiet) {
        Copy-Item $source -Destination \\$computer\$dest -Recurse
    } else {
        "$computer is not online"
    }
}

错误:

Copy-Item : The given path's format is not supported.
At C:\users\tech\desktop\scripts\screen.ps1:6 char:9
+         Copy-Item $source -Destination \\$computer\$dest -Recurse
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], NotSupportedException
    + FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.CopyItemCommand

1 个答案:

答案 0 :(得分:2)

您目的地的最终UNC格式无效。你传递了

"\\computer\c:\windows\system32"

当你应该通过时

"\\computer\c$\windows\system32"

尝试引用-destination这样的参数:

Copy-Item $source -Destination "\\$computer\$dest" -Recurse

在分配给$dest时,您还需要使用单引号,以防止PowerShell尝试将美元符号扩展为变量符号。

$dest = 'c$\windows\system32'

使用copy-item -whatif ...调试脚本,以确保传递正确的参数。