Назад | Перейти на главную страницу

Как скопировать файл в PowerShell, пока он используется?

Мне нужно скопировать файл журнала с удаленного сервера Windows 2012. Наше приложение будет постоянно записывать файл журнала. Я знаю, как скопировать удаленный файл с помощью Copy-Item Командлет. Но я получаю ошибку, говоря, что cannot access the file, because it is being used by another process. Есть ли способ передать файл, даже если он используется. В данный момент я RDC в машину и копирую ее. Я ежечасно запускаю анализ журнала, который уже написан по сценарию, просто процесс получения файла журнала выполняется вручную.

Как предложили @Zoredache и @Matthew Wetmore, я пробовал Robocopy.

Я создал новый диск, используя New-PSDrive чтобы сопоставить удаленную папку и использовать Robocopy чтобы скопировать желаемый файл журнала во время его записи:

New-PSDrive -Name Logs -Root \\Svr01\d$\data -PSProvider Filesystem -Credentiaal $cred
Set-Location Logs:
robocopy .\logfiles\ ~\desktop\ service1.log /E

Это скопировано service1.log1 файл с удаленного сервера Svr01 на мой локальный рабочий стол.

Спасибо @Zoredache и @Matthew Wetmore