Pesquisar este blog

quarta-feira, 25 de outubro de 2017

Copie arquivos pela rede usando o PowerShell

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".

Autor: Sergio Motta 
Retirado de: http://www.softdownload.com.br/como-copiar-arquivos-rede-local-rapido-powershell.html

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.