我正在尝试制作我已制作的屏幕保护程序文件,并将其复制到我们所有的桌面和笔记本电脑\ 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
答案 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 ...
调试脚本,以确保传递正确的参数。