Move-Item 将主区域移动到文件服务器时出错

Error on Move-Item moving home area to file server

这是我用来将学生毕业生区域传输到存档文件服务器的脚本的最后一部分。该脚本运行并按预期执行所有操作,但仍然抛出错误提示 移动项目:找不到路径 '\domain\students$\E-J$\MH201507' because it does not exist. 该脚本确实找到了这条路径并移动了主区域,所以我不确定为什么会出现此错误。或者有什么方法可以解决这个问题,或者更容易以某种方式隐藏错误?

CSV 文档包含 sam 帐户名称的列表,并包含它们在域中的主区域位置,因此它知道从哪里复制路径。

非常感谢任何帮助!亲切的问候

#Declaring the .csv file that contains a list of all leavers home directories.

$HomeDirectoryList = Import-CSV "C:\Scripts\Leavers\HomeDirectoryExport.csv"

$Username = $HomeDirectoryList.samAccountName

$HomeDirectory = $HomeDirectoryList.HomeDirectory

$Archive = "\myfileserver.ac.uk\D$-22 Leavers"

ForEach ($Username in $HomeDirectoryList)
{
    Move-Item -Path $HomeDirectory -Destination $Archive
}

发生错误的示例数据:

samAccountName  HomeDirectory
WB214589    \domain\students$\A-D$\WB214589
MH201507    \domain\students$\E-J$\MH201507

您正在 $HomeDirectory 循环之外设置变量,这样将包含一个主目录路径数组。

然后您使用变量 $Username 迭代 CSV 文件中的数据,但在该循环中您永远不会使用它。

尝试:

$HomeDirectoryList = Import-CSV 'C:\Scripts\Leavers\HomeDirectoryExport.csv'
$Archive           = '\myfileserver.ac.uk\D$-22 Leavers'

foreach ($student in $HomeDirectoryList) {
    Write-Host "Moving HomeDirectory folder for student '$($student.samAccountName)'"
    Move-Item -Path $student.HomeDirectory -Destination $Archive -Force
}

如果您需要捕获发生的错误,请将循环更改为:

foreach ($student in $HomeDirectoryList) {
    Write-Host "Moving HomeDirectory folder for student '$($student.samAccountName)'"
    try {
        Move-Item -Path $student.HomeDirectory -Destination $Archive -Force -ErrorAction Stop
    }
    catch {
        Write-Warning "Error moving homedirectory '$($student.HomeDirectory)':`r`n$($_.Exception.Message)"
    }
}