How to force the copy of a file using powershell

I'm using powershell to copy file to a remote computer witht he following command :

Copy-Item -Path [MyPath]\* -Destination \\[server]\[MyPath] -force

It's working great, but sometime I'm receiving the following error message: "The process cannot access the file [...] because it is being used by another process.".

Is it possible to force the file to be copy even if it's in use?

Upvotes: 4

Views: 12367

Answers (2)

Ryan Lutz
Ryan Lutz

Reputation: 525

I ran into this issue and wrote an entirely self contained script because I didn't want to depend on SysInternals. Script will identify and kill any process locking a file before making a full recursive copy.

https://github.com/Tikinsin/ForceCopy.ps1/blob/main/ForceCopy.ps1

Upvotes: 0

Andy Arismendi
Andy Arismendi

Reputation: 52577

The only way to do that is to get rid of the handle the process has to the file you are overwriting.

It's either a service or a desktop application accessing the file. You can find out what has access to the file using handle.exe from SysInternals.

Once you know what is accessing the file you can stop/kill it remotely (assuming you have permissions to do so).

Upvotes: 1

Related Questions