Copie arquivos pela rede usando o PowerShell

Publicidade

Como provavelmente você sabe, copiar arquivos grandes a partir da rede local pode ser um grande desafio, especialmente quando a rede é lenta e instável. Felizmente existem algumas opções, como o protocolo de transferência BITS, que permite copiar rapidamente arquivos grandes pela rede local usando o PowerShell.

Preparação: Como abrir o PowerShell

Pressione “Win+R” para abrir o Executar, digite powershell e pressione “Enter” ou clique em “OK”.

copiar_arquivos_rede_powershell1

1. Habilitar o módulo BITS no PowerShell

A primeira coisa que você deve fazer é importar o módulo BITS para a sessão do PowerShell executando o comando abaixo. Uma vez feito isso, você estará pronto para copiar arquivos via rede de forma mais rápida.

Import-Module BitsTransfer

copiar_arquivos_rede_powershell2

2. Transferência de arquivos síncrona

Para copiar arquivos pela rede, basta digitar o comando abaixo, substituindo a palavra “origem” e “destino”, como por exemplo Start-BitsTransfer –source \\desktop-sergio\windows10.iso -destination c:\downloads.

Start-BitsTransfer –source origem -destination destino

copiar_arquivos_rede_powershell3

3. Transferência de arquivos assíncrona

Você pode usar o modo assíncrono adicionando o parâmetro -asynchronous ao comando. Neste modo, se a transferência for interrompida ela será retomada automaticamente quando as máquinas estiverem online.

Start-BitsTransfer –source origem -destination destino -asynchronous

copiar_arquivos_rede_powershell4

Nota: A transferência assíncrona cria um arquivo temporário na pasta de destino, que fica oculto e tem que ser convertido após a conclusão da transferência. Para converter os arquivos, execute o seguinte comando:

Get-BitsTransfer | Complete-BitsTransfer

copiar_arquivos_rede_powershell5

4. Transferência com autenticação de usuário

Se o computador de onde você vai copiar os arquivos requerer autenticação, você pode incluir o parâmetro -Authentication NTLM -Credential Get-Credential, para que seja realizado o login do usuário no computador.

Start-BitsTransfer –source origem -destination destino -Authentication NTLM -Credential Get-Credential

copiar_arquivos_rede_powershell6

5. Definir a prioridade da transferência

Por padrão, a transferência é executada com a prioridade mais alta possível. Para evitar que isso aconteça, você precisa definir a prioridade usando o argumento -Priority no comando, como por exemplo -Priority low.

Start-BitsTransfer –source origem -destination destino -Priority low

copiar_arquivos_rede_powershell7

6. Verificar o status da transferência

Algumas vezes, ao iniciar a transferência não é exibida nenhuma informação na tela, apenas o “JobState” Connecting”. Para descobrir o status da transferência e ver se ela foi concluída, execute o comando abaixo:

Get-BitsTransfer | select DisplayName, BytesTotal, BytesTransferred, JobState | Format-Table -AutoSize

copiar_arquivos_rede_powershell8

7. Script para facilitar a transferência

Por fim, para facilitar a execução do comando e acompanhar melhor a transferência do arquivo, você pode utilizar o script abaixo. Basta substituir a “origem” e o “destino” pelo caminho do arquivo de origem e destino.

copiar_arquivos_rede_powershell9

Você pode baixar o script aqui ou colar o script abaixo no bloco de notas e salvar com a extensão ps1. Para executar o script, clique com o botão direito no arquivo.ps1 e selecione a opção “Executar com PowerShell”.

Publicidade

Deixe o seu comentário: