Em uma migração que realizamos, um colega precisou mover dois arquivos de 2tb cada para unidades de disco diferentes.
Porém, esta cópia ficou lenta e fomos questionados em como ter conhecimento do andamento do processo e se havia travado.
O colega utilizou o cmdlet copy-item e apesar de já ter visto em diversos sites este assunto com copy-item e progressbar, a solução que recomendamos é bem mais simples.
Compreendendo o BitsTransfer: foi introduzido no Windows XP em 2001 e atualmente está na versão 10.x, entrou para o OS Server na versão 3.0 no Windows Server 2008.
O Microsoft Windows Backgroud Intelligent Transfer Service, daí vem o BITS, é um componente do Windows que executa transferências assíncronas em background, onde ele prioriza as requisições de transferências de arquivos de aplicações. Se houver alguma interrupção do processo, o BITS automaticamente reconecta e continua a transferência.
O BITS é utilizado por produtos como Windows/Microsoft Update, WSUS, Microsoft Security Essentials e alguns outros produtos de mensagem instantânea.
Para conhecer mais veja o link:
https://docs.microsoft.com/en-us/powershell/module/bitstransfer/?view=win10-ps
Como utilizar para copiar os arquivos?
Veja o código abaixo, onde tenho a variável $origem e $destino.
Import-Module BitsTransfer -Force
$origem = 'd:\sql19'
$destino = 'c:\sql19'
Start-BitsTransfer -Source $origem `
-Destination $destino `
-Description "Cópia do Iso" `
-DisplayName "SQL Server 2019"
Veja na imagem abaixo como será “desenhado” o acompanhamento em tela.
Esperamos que esta dica seja útil para você!
Abraço, Equipe CrespiDB!