gpt4 book ai didi

powershell - 在远程文件服务器上使用Copy-Item的UnauthorizedAccessException

转载 作者:行者123 更新时间:2023-12-04 04:42:44 25 4
gpt4 key购买 nike

我正在尝试将大约10个文件夹(每个包含〜3KB .txt文件)复制到具有几秒钟延迟的远程文件共享上。我正在像这样使用Powershells Copy-Item:

try
{
Copy-Item -Path $source -Destination $destination -Recurse -ErrorAction Stop
}
catch
{
Write-Error $_.Exception.ToString()
}

运行脚本的用户具有对文件服务器共享和本地源的读取,写入和执行权限。

第一次运行时,目标文件夹为空。一切正常。
在第二次运行时,文件和文件夹已经存在。因此,在运行上面的代码之前,我首先使用 Test-Path运行检查,如果文件夹存在,则使用 Remove-Item进行删除,如下所示:
try
{
if(Test-Path -Path $path -ErrorAction Stop)
{
Remove-Item -Recurse -Path $path -ErrorAction Stop
}
}
catch
{
Write-Error $_.Exception.ToString()
}

没有其他人可以编辑这些文件。但是,由于不明白的原因,偶尔运行脚本数十次时,我在复制时突然发现某些文件夹的 UnauthorizedAccessException 错误。确切的错误是:

System.UnauthorizedAccessException: access denied ---> System.ComponentModel.Win32Exception: access denied in Microsoft.PowerShell.Commands.FileSystemProvider.NativeDirectoryExists(String path) in System.Management.Automation.SessionStateInternal.IsItemContainer(CmdletProvider providerInstance, String path, CmdletProviderContext context



,请注意:在删除远程文件服务器上的旧文件成功完成之后,我遇到了这些错误。

最佳答案

这是一个已有多年历史的职位,但也许可以从中受益。您不必事先删除。您可以只使用-Force覆盖现有文件。

try
{
Copy-Item -Path $source -Destination $destination -Recurse -ErrorAction Stop -Force
}
catch
{
Write-Error $_.Exception.ToString()
}

关于powershell - 在远程文件服务器上使用Copy-Item的UnauthorizedAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com