Tutorial.: Mapeando drives de rede com VBScript
Este tutorial é voltado para aqueles acostumados aos scripts Batch utilizados no mapeamento de drives de rede e que, de vez em quando, não sabem o porquê de eles não funcionarem, ou simplesmente para aqueles que gostam de fazer diferente ou de aprender coisas novas. Segue a dica para a utilização de um script .vbs para substituir o .bat e também até gerar um log de erros.
Após um problema pessoal em uma rede onde o mapeamento feito através de scripts .bat distribuídos por GPOs (Group Policy) falhava de vez em quando, principalmente com o novo Windows 8, decidi realizar testes em VBScript após sugestão de um colega de trabalho.
Outras pessoas também podem achar outras utilidades...
Bem, vamos lá!
Considere que desejamos mapear o caminho "\\Servidor\RedutoNerd" no drive X:
O antigo script .bat continha o que normalmente se costuma encontrar em diversos sites e fóruns na web, simplesmente:
#Forçar desconexão caso a letra X esteja em uso
net use X: /d
#Mapeando o drive
net use X: \\Servidor\RedutoNerd
"-Curto e grosso... Isso funciona?"
Na maioria das vezes sim... Mas começamos a ter problemas com o Windows 8...
O mesmo script em .vbs ficaria assim:
'Declarando objetos que contém os comandos necessários
Set objRede = WScript.CreateObject("Wscript.Network")
Set objArq = CreateObject("Scripting.FileSystemObject")
'Declarando variáveis com a letra e o caminho para ficar mais apresentável
driveX = "X:"
pathX = "\\Servidor\RedutoNerd
'Impedindo que o script seja abortado em caso de erro
On Error Resume Next
'Forçar desconexão caso a letra X esteja em uso
If objArq.DriveExists(driveX) Then
objRede.RemoveNetworkDrive driveX
End If
'Mapeando o drive
objRede.MapNetworkDrive driveX, pathX
"Mas ficou maior!"
Sim, um pouquinho, mas dá um crédito... Funciona!
Se quisermos fazer um log para os casos de erro podemos adicionar o código abaixo ao fim do código acima:
'Declarando variáveis para logging para ficar mais apresentável
logArq = "C:\Windows\Temp\Log.txt" 'Caminho e nome do arquivo
Const ADICIONAR = 8 'Constante que indica que se deve adicionar ao final do arquivo existente
'Sub-rotina para verificação da existência do arquivo de log (mais apresentável)
Sub checkArq()
If objArq.FileExists(logArq) Then 'Caso o arquivo exista, adicione ao final.
set logArq = objArq.OpenTextFile(logArq, ADICIONAR)
Else 'Caso o arquivo não exista, crie-o
set logArq = objArq.CreateTextFile(logArq)
End If
End Sub
'Gerando logs de erro, caso haja
If Err.Number <> 0 Then
checkArq
logArq.WriteLine("Código de erro: " & err.number & ". Descrição: " & err.description)
Err.clear
End If
E pronto! Drive mapeado com sucesso! Ou, motivo da falta de mapeamento descoberto com sucesso, vai saber...
E por hoje é só pessoal!
Esperamos que este tutorial tenha sido proveitoso para vocês
Mandem suas dúvidas e sugestões para que possamos compartilhar com a nossa comunidade.
Gostou do tutorial? Ele te ajudou? Então clique nos botões "Curtir" e "+1", e compartilhe esta publicação no Facebook, pode ser que outras pessoas também a achem útil! =D
Fiquem atentos para mais dicas e tutoriais, aqui mesmo, no Reduto Nerd!
No comments