diff --git a/src/System.Management.Automation/namespaces/FileSystemProvider.cs b/src/System.Management.Automation/namespaces/FileSystemProvider.cs index 9b2d999e57..7e3a2b5f8b 100644 --- a/src/System.Management.Automation/namespaces/FileSystemProvider.cs +++ b/src/System.Management.Automation/namespaces/FileSystemProvider.cs @@ -3963,6 +3963,10 @@ namespace Microsoft.PowerShell.Commands WriteError(new ErrorRecord(unAuthorizedAccessException, "CopyFileInfoItemUnauthorizedAccessError", ErrorCategory.PermissionDenied, file)); } } + catch (IOException ioException) + { + WriteError(new ErrorRecord(ioException, "CopyFileInfoItemIOError", ErrorCategory.WriteError, file)); + } } } } diff --git a/test/powershell/Modules/Microsoft.PowerShell.Management/Copy.Item.Tests.ps1 b/test/powershell/Modules/Microsoft.PowerShell.Management/Copy.Item.Tests.ps1 index bb71e8adec..729d3b3d2e 100644 --- a/test/powershell/Modules/Microsoft.PowerShell.Management/Copy.Item.Tests.ps1 +++ b/test/powershell/Modules/Microsoft.PowerShell.Management/Copy.Item.Tests.ps1 @@ -1,6 +1,19 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. +Describe "Validate Copy-Item locally" -Tags "CI" { + It "Copy-Item has non-terminating error if destination is in use" -Skip:(!$IsWindows) { + Copy-Item -Path $env:windir\system32\cmd.exe -Destination TestDrive:\ + $cmd = Start-Process -FilePath TestDrive:\cmd.exe -PassThru + try { + { Copy-Item -Path $env:windir\system32\cmd.exe -Destination TestDrive:\ -ErrorAction SilentlyContinue } | Should -Not -Throw + } + finally { + $cmd | Stop-Process + } + } +} + # This is a Pester test suite to validate Copy-Item remotely using a remote session. # If PS Remoting is not available, do not run the suite.