我想每個包含〜3KB .txt文件約10個文件夾複製到一些秒的延遲的遠程文件共享。我使用Powershells Copy-Item
這樣的:UnauthorizedAccessException使用複製,項目上的遠程文件服務器
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()
}
沒有其他人編輯這些文件。然而,運行腳本dozent時候,曾經在一段時間,是有原因的,我不明白,我突然得到UnauthorizedAccessException錯誤,對一些在複製過程中的文件夾。確切的錯誤是:
System.UnauthorizedAccessException的:拒絕訪問 ---> System.ComponentModel.Win32Exception:訪問被拒絕在Microsoft.PowerShell.Commands.FileSystemProvider.NativeDirectoryExists (字符串 路徑) 系統。 Management.Automation.SessionStateInternal.IsItemContainer(CmdletProvider providerInstance,絃樂路徑,CmdletProviderContext方面
請注意:我發現了這些錯誤的舊文件刪除遙控器上的AFTER文件服務器已成功完成。
很好,只是因爲它不是一個好的設計。您將非面向對象的代碼與簡單的文本生成命令混合在一起。這種類似的錯誤處理有許多缺點。使用cmdlet將返回對象,然後我可以稍後使用它。這就像在* test-connection *時使用* ping *。 – masi