quarta-feira, 23 de abril de 2008

Scripts de mapeamento de rede Active Directory

Esse é o script que atualmente utilizo em meu teste piloto com o AD ele mapeia unidades por grupo de usuario, adiciona impressoras tambem baseado no grupo e envia uma messagem para todos os usuarios que estejam configurados a recebê-los.

No meu caso eu criei uma GPO chamada funcionários e a editei colocando o script em configuraçoes de usuário > Configurações do Windows > Scripts > Logon

Abaixo segue o script:




'**********************************************
' Scrip de logon, mapeia unidades por grupo de usuarios
' Adaptado por Giovanni Candido da Silva
'************************************************
'**************************************************************************************
'Se encontar algum erro vai para proxima instrucao, comente essa linha se quiser saber onde ha erro
'**********************************************************************************
On Error Resume Next

'***********************************************************************
'CRIA OBJETOS E DEFINE VARIAVEIS / NECESSARIO PARA FUNCIONAR
'**********************************************************************

Set wshNetwork = CreateObject("WScript.Network")
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
set ofso=createobject("Scripting.filesystemobject")
Set oShell = CreateObject("Wscript.shell")
Set Sh = Wscript.CreateObject("Wscript.Shell")
strDomainName = wshNetwork.userDomain
strUser = WshNetwork.UserName
strComputerName = wshNetwork.ComputerName
strGroups = LCase(Join(CurrentUser.MemberOf))
MyUsername = Right(CurrentUser.Name, Len(CurrentUser.Name))
bForce = true
bUpdateProfile = true
CRLF = Chr(13) & Chr(10)

'************************************************
'UM TEMPO DE ESPERA / NAO HE NECESSARIO MAS EVITA ALGUNS PAUS
'************************************************
do while strUser = ""
WScript.Sleep 500
loop

'************************************************
'DELETA UM MAPEAMENTO DE REDE / ESTA COMENTADO
'************************************************
'WshNetwork.RemoveNetworkDrive "I:"
'*******************************************************************************
'DELETA TODOS OS MAPEAMENTOS DE REDE EXISTENTES / EVITA CONFLITOS
'********************************************************************************

Set Drives = WshNetwork.EnumNetworkDrives
If Drives.count = 0 then
'msgbox "There are no drive mappings at this time."
Else
For x = 0 to Drives.count-1 Step 2
wshNetwork.RemoveNetworkDrive Drives.Item(x),bForce, bUpdateProfile
Next
End If



'************************************************
'MAPEIA A PASTA DO USUARIO, DEVE ESTAR COMPARTILHADA NO SERVIDOR E COM O 'NOME DO USUARIO
'************************************************


wshNetwork.MapNetworkDrive "z:", "\\domain1\" & wshNetwork.UserName

'*************************************
'Cria atalho para home
'************************************
Dim wsShell, wsFSO, DesktopFolder, Deletar, FileShortcut, Atalho, Pasta, Desc, WkDir

set wsShell = CreateObject("WScript.Shell")
set wsFSO = CreateObject("Scripting.FileSystemObject")
DesktopFolder = wsShell.SpecialFolders("Desktop")
Atalho = "\Meus Documentos.lnk"
Pasta = "z:"
Desc = "Meus documentos"
WkDir = "z:"

set FileShortcut = wsShell.CreateShortcut(DesktopFolder & Atalho)
FileShortcut.TargetPath = Pasta
FileShortcut.Description = Desc
FileShortcut.WorkingDirectory = WkDir
FileShortcut.Save


'************************************************
'MAPEIA DRIVERS POR GRUPO DE USUARIOS
'***********************************************



If InStr(strGroups, "cn=secretaria") Then
'WSHNetwork.MapNetworkDrive "h:", "\\secretaria04\documentos"
WSHNetwork.MapNetworkDrive "y:", "\\servidor\dadosgiz"
WSHNetwork.MapNetworkDrive "x:", "\\domain1\secretaria"

WSHNetwork.AddWindowsPrinterConnection "\\secretaria02\RicohAfi"
WSHNetwork.AddWindowsPrinterConnection "\\secretaria04\CanonPIX"

wshNetWork.SetDefaultPrinter "\\secretaria02\RicohAfi"
'**************************************************************
'Cria atalho para os documentos da na area de trabalho secretaria
'****************************************************************



'*****************"***********************
'AQUI ISSO DEU PAU ENTAO COMENTEI
'*****************************************
'Dim wsShell, wsFSO, DesktopFolder, Deletar, FileShortcut, Atalho, Pasta, Desc, WkDir

set wsShell = CreateObject("WScript.Shell")
set wsFSO = CreateObject("Scripting.FileSystemObject")
DesktopFolder = wsShell.SpecialFolders("Desktop")
Atalho = "\DOCUMENTOS SECRETARIA.lnk"
Pasta = "x:"
Desc = "Atalho para os documentos secretaria"
WkDir = "x:"

set FileShortcut = wsShell.CreateShortcut(DesktopFolder & Atalho)
FileShortcut.TargetPath = Pasta
FileShortcut.Description = Desc
FileShortcut.WorkingDirectory = WkDir
FileShortcut.Save

'wscript.quit



End If


'****************************
' Envia uma messagem
' **************************
strTitulo = "ATENÇÃO - LEIA"
strMensagem = _
"AVISO IMPORTANTE:" & vbcrlf & vbcrlf & _
"Para salvar seus arquivos Por favor utilize a pasta criada automaticamente com seu nome em MEU COMPUTADOR, há um atalho para ela com o nome de meus documentos no desktop" & vbcrlf & vbcrlf & _
"TODOS OS ARQUIVOS NÃO SALVOS NESSA PASTA PODERÃO SER PERDIDOS, NÓS DO CPD NÃO NOS RESPONSABILIZAMOS POR ISSO" & vbcrlf & vbcrlf & _
"Essa medida visa melhorar a segurança no uso dos computadores assim como diminuir o tempo de manutenção" & vbcrlf & vbcrlf & _
"Voce recebeu uma conta de usuário e só terá acesso aos computadores que utiliza, seus arquivos deverão ser salvos no servidor" & vbcrlf & vbcrlf & _
"Com isso nós do CPD temos em mente:" & vbcrlf & vbcrlf & _
"1. Salvar seus arquivos em um servidor centralizado e resolver o problema de perda de arquivos quando um computador apresenta defeito" & vbcrlf & _
"2. Centralizar a intalação de programas e impressoras" & vbcrlf & _
"3. Proibir acesso não autorizado aos computadores" & vbcrlf & _
"4. Facilitar comunicação, com avisos como este que vão a todos os usuários assim que logam no sitema" & vbcrlf & _
"5. Diminuir a contaminação com virus de computador"
'BtnCode = WshShell.Popup(strMensagem, 5, "Informação:", 64 + 0)

msgbox strMensagem, 0 + 90, strTitulo


msgbox "NÃO É PERMITIDO: " & vbcrlf & vbcrlf & _
"1. Salvar musicas, filmes, ou programas na sua pasta. Para isso utilize cdroms. Esses arquivos são demasiadamente grandes e sobrecarregam o servidor" & vbcrlf & _
"2. O uso de quaisquer falhas de segurança para burlar bloqueios" & vbcrlf & vbcrlf & _
"3. Instalar programas sem o devido aviso e autorização do CPD" & vbcrlf & vbcrlf & _
"NÃO É NOSSA INTENÇÃO: " & vbcrlf & _
"1. Violar sua privacidade. Nenhuma, repito, nenhuma atividade feita no computador como envio de e-mails, ou digitação de senhas e trabalhos é monitorada." & vbcrlf & vbcrlf & vbcrlf & _
"Qualquer Duvida entre em contato." & vbcrlf & vbcrlf & vbcrlf & _
"Atenciosamente,"& vbcrlf & _
"Giovanni Cândido da Silva - Responsável Técnico", 0 + 90, strTitulo

Nenhum comentário: