Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal bom dia a todos,
Desenvolvi um arquivo .BAT utilizando o ROBOCOPY para sempre que o computador for ligado forem copiados arquivos do SERVIDOR para uma pasta do computador local.
Para que o SCRIPT funcione eu poderia utilizar TAREFAS AGENDADAS ou definir um script de logon utilizando o GPEDIT.MSC.
Preferi a segunda opção.
Voltando ao script, já havia efetuado diversos testes e o script está funcionando corretamente.
O problema é que não utilizamos o ACTIVE DIRECTORY então os dados de usuario e senha são adicionados manualmente, porem todos os usuario são leigos dessa forma eu tenho que deixar as pastas de rede mapeadas.
Eu tentei usar o NET USE porem usando ele eu tenho que mapear as unidades de rede mais as unidades de rede já estão mapeadas.
A solução que eu estava pensando era algo como, ao entrar no servidor com os dados de usuário e senha o script robocopy seria executado, será que é possível fazer isso ?
Dessa forma se o usuário que entrou no computador não souber os dados de acesso a rede ele não tera como copiar os arquivos do servidor.
Pessoal acabei mudando um pouco, começei a pesquisar VBSCRIPT e descobri que era possivel se conectar a rede atravez de um arquivo .hta, eu não manjo muito de VBSCRIPT porem fui alterando um codigo que eu encontrei. segue:
<HTA:APPLICATION ApplicationName="MappingWithCredentials.HTA" SingleInstance="Yes" WindowsState="Normal" Scroll="No" Navigable="Yes" MaximizeButton="No" SysMenu="Yes" Caption="Yes"Sub Window_Onload
'# Size Window
sHorizontal = 440
sVertical = 175
Window.resizeTo sHorizontal, sVertical
'# Get Monitor Details
Set objWMIService = GetObject _
("winmgmts:root\cimv2")
intHorizontal = sHorizontal *2
intVertical = sVertical *2
Set colItems = objWMIService.ExecQuery( _
"Select ScreenWidth, ScreenHeight from" _
& " Win32_DesktopMonitor", , 48)
For Each objItem In colItems
sWidth= objItem.ScreenWidth
sHeight = objItem.ScreenHeight
If sWidth > sHorizontal _
then intHorizontal = sWidth
If sHeight > sVertical _
then intVertical = sHeight
Next
Set objWMIService = Nothing
'# Center window on the screen
intLeft = (intHorizontal - sHorizontal) /2
intTop = (intVertical - sVertical) /2
Window.moveTo intLeft, intTop
'# default window content
window.location.href="#Top"
End Sub
Sub RunScript
on Error Resume Next
strLogin = UsrnameArea.Value
strSenha = PasswordArea.Value
Set objNetwork = CreateObject("WScript.Network")
Set oShell = CreateObject("Shell.Application")
objNetwork.MapNetworkDrive "O:","\\server\teste", "FALSE", strLogin, strSenha
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\teste2.bat"
Set oShell = Nothing
Set objNetwork = Nothing
Self.Close()
End Sub
Sub CancelScript
Set oShell = Nothing
Set objNetwork = Nothing
Self.Close()
End Sub
Porem ainda tem um problema, não sei como eu posso adicionar um IF a esse código, preciso adicionar uma validação, se o usuário e senha forem vazios e também se não forem os corretos o arquivo bat não deve ser executado.