将文件从NAS移动到客户端,在服务器上执行的脚本

问题描述:

我遇到了以下问题:在工作中,我必须使用远程PSSession来编写脚本,将NAS中的文件复制到少数客户端。该脚本正在域控制器上执行。将文件从NAS移动到客户端,在服务器上执行的脚本

我认为远程会话和“复制文件”部分有问题。但我不知道是什么。

#SRC=Source Data to copy 
$src1 = "\\NAS01\adm\sw\CAD\Dateien_fuer_SUPPORT_Verz\def_KOPA_Linie.lin" 
$src2 = "\\NAS01\adm\sw\CAD\Dateien_fuer_SUPPORT_VerzSchlinie2.shx" 
$src3 = "\\NAS01\adm\sw\CAD\Dateien_fuer_SUPPORT_Verz\Schlinie2.shp" 

#PowerShell Check for AD-Service 
Get-Service ad* 
Get-Module 

#Searching through AD for PC's called "WS" 
$pc = Get-ADComputer -Filter 'name -like "WS" ' 

#New Powershell-Remotesession with the $pc 
$session = New-PSSession -ComputerName $pc 

#Check if the Directory exists, if it exists, copy the files inside 
$Dir = "C:\Program Files\Autodesk\AutoCAD 2015\Support\" 
if (Test-Path $Dir) 
{ 
    Copy-Items -FromSession $session -Path $src1 + src2 + src3 -Destination "C:\Program Files\Autodesk\AutoCAD 2015\Support\" 
} 
else 
{ 
    echo "tohuwabohu" 
} 
+0

它输出错误信息?如果是的话,你可以将它添加到你的问题。 –

+2

PowerShell没有cmdlet'Copy-Items',而'-Path $ src1 + src2 + src3'是纯粹错误的语法。即使你在语法上正确('-Path($ src1 + $ src2 + $ src3)'),它也不会达到你所期望的效果(复制所有3个文件),但是连接所有3个路径字符串并给你一个错误,因为它无法在该位置找到文件。将'-Path $ src1 + src2 + src3'更改为'-Path $ src1,$ src2,$ src3'并重试。如果问题仍然无法解决,请更新您的问题。 –

+0

对此,我很抱歉,目前我在学徒阶段,而且从2周开始使用PowerShell。 –

这只会带回计算机名为WS:

$pc = Get-ADComputer -Filter 'name -like "WS" ' 

您需要使用通配符与样 例如:如果你的computernames是 “WS-1234-ABC”,WS -2345-afgt。 用途:

$pc = Get-ADComputer -Filter 'name -like "WS*"' 

你currentlly努力没有计算机名

你需要运行脚本的每一行,看看你得到你所期望的输出打开一个远程会话。

复制项目(不)不需要您先打开远程会话。 路径参数将采用逗号分隔值。 请参阅帮助复制项目

[-path] <string[]> 

的[]告诉使用我们可以用逗号分隔值 例子:

Copy-Item -Path $src1,$src2,$crs3 -Destination "C:\Program Files\Autodesk\AutoCAD 2015\Support\"