我的 Powershell 脚本有什么问题?
What's wrong with my Powershell script?
我不明白我在尝试 运行 我的 powershell 脚本时收到的错误消息。目的是将.bat文件复制到一系列机器上的主要win 7启动文件夹中。
而脚本我是运行ning.
$ServerList = Get-Content "C:\ServersList.txt" #Change this to location of servers list
$SourceFileLocation = "C:\firefox_issue.bat" #For example: D:\FoldertoCopy\ or D:\file.txt
$Destination = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" #Example: C$\temp
foreach ($_ in $ServerList)
{Copy-Item $SourceFileLocation -Destination \$_$Destination -Recurse -PassThru}
Write-Host "Press any key to continue ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Write-Host
Write-Host "A"
Write-Host "B"
Write-Host "C"
您是否阅读了 $Destination
行后面的注释?
这是一条 UNC 路径。
\server1\c:\programdata\
不是有效的 UNC 路径。尝试:
$Destination = "C$\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
另外,$_
是管道输入的保留变量,需要修改,如:
foreach ($server in $ServerList)
{Copy-Item $SourceFileLocation -Destination \$server$Destination -Recurse -PassThru}
因为您的位置设置为:
\SERVERNAME\C:\ProgramData...
应该是:
\SERVERNAME\C$\ProgamData...
您的目的地必须是:
$Destination = 'C$\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup'
你的循环应该是:
foreach($server in $serverList) {
Copy-Item $SourceFileLocation -Destination "\$server$Destination" -Recurse
}
您应该避免显式使用 $_
作为变量名,因为 $_
是用于访问管道中对象的特殊变量。
我不明白我在尝试 运行 我的 powershell 脚本时收到的错误消息。目的是将.bat文件复制到一系列机器上的主要win 7启动文件夹中。
而脚本我是运行ning.
$ServerList = Get-Content "C:\ServersList.txt" #Change this to location of servers list
$SourceFileLocation = "C:\firefox_issue.bat" #For example: D:\FoldertoCopy\ or D:\file.txt
$Destination = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" #Example: C$\temp
foreach ($_ in $ServerList)
{Copy-Item $SourceFileLocation -Destination \$_$Destination -Recurse -PassThru}
Write-Host "Press any key to continue ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Write-Host
Write-Host "A"
Write-Host "B"
Write-Host "C"
您是否阅读了 $Destination
行后面的注释?
这是一条 UNC 路径。
\server1\c:\programdata\
不是有效的 UNC 路径。尝试:
$Destination = "C$\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
另外,$_
是管道输入的保留变量,需要修改,如:
foreach ($server in $ServerList)
{Copy-Item $SourceFileLocation -Destination \$server$Destination -Recurse -PassThru}
因为您的位置设置为:
\SERVERNAME\C:\ProgramData...
应该是:
\SERVERNAME\C$\ProgamData...
您的目的地必须是:
$Destination = 'C$\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup'
你的循环应该是:
foreach($server in $serverList) {
Copy-Item $SourceFileLocation -Destination "\$server$Destination" -Recurse
}
您应该避免显式使用 $_
作为变量名,因为 $_
是用于访问管道中对象的特殊变量。