Inquiridor
bat de Mapeamento de acordo com o DC conectado

Pergunta
-
Prezados, boa tarde.
Preciso de um script que faça o mapeamento de acordo com o DC que o usuário esteja conectado, vocês podem ajudar?
Hoje utilizamos o script abaixo, porém não tem esse quesito do DC.
On Error Resume Next
Set Arquivo = createobject("scripting.filesystemobject")
Set Rede = CreateObject("WScript.Network")
Set ADSysInfo = CreateObject("ADSystemInfo")
Set UsuarioAtual= GetObject("LDAP://" & ADSysInfo.UserName)
Set oShell = CreateObject("Shell.Application")
Grupo1 = LCase(Join(usuarioAtual.MemberOf))
Grupo2 = LCase(usuarioAtual.MemberOf)
grupo = grupo1 & grupo2
'wscript.echo grupo
Sub CriarMapeamento(letra,caminho)
If Arquivo.folderexists(letra) then
Rede.removenetworkdrive letra, true
end if
Rede.MapNetworkDrive letra, caminho
End Sub
If InStr(grupo, "cn=u_fis_todos") Then
CriarMapeamento "h:","\\sv1\SHARES"
oShell.NameSpace("h:\").Self.Name = "Shares"
CriarMapeamento "i:","\\sv1\indicadores"
oShell.NameSpace("i:\").Self.Name = "Indicadores"
CriarMapeamento "p:","\\sv1\PUBLICO"
oShell.NameSpace("p:\").Self.Name = "Publico"
CriarMapeamento "s:","\\sv1\Sistemas"
oShell.NameSpace("S:\").Self.Name = "Sistemas"
CriarMapeamento "t:","\\sv2\Sistemas"
oShell.NameSpace("t:\").Self.Name = "Sistemas"
ElseIf InStr(grupo, "cn=g_ssi_sede") Then
CriarMapeamento "h:","\\sv1\SHARES"
oShell.NameSpace("h:\").Self.Name = "Shares"
CriarMapeamento "i:","\\sv2\indicadores"
oShell.NameSpace("i:\").Self.Name = "Indicadores"
CriarMapeamento "p:","\\sv3\PUBLICO"
oShell.NameSpace("p:\").Self.Name = "Publico"
CriarMapeamento "q:","\\sv3\Qualidade"
oShell.NameSpace("q:\").Self.Name = "Qualidade"
CriarMapeamento "r:","\\sv3\shares\ssi"
oShell.NameSpace("r:\").Self.Name = "Geral"
CriarMapeamento "s:","\\sv4\Sistemas"
oShell.NameSpace("s:\").Self.Name = "Sistemas"
ElseIf InStr(grupo, "cn=g_sai_sede") Then
CriarMapeamento "h:","\\sv3\SHARES"
oShell.NameSpace("h:\").Self.Name = "Shares"
CriarMapeamento "i:","\\sv3\indicadores"
oShell.NameSpace("i:\").Self.Name = "Indicadores"
CriarMapeamento "p:","\\sv3\PUBLICO"
oShell.NameSpace("p:\").Self.Name = "Publico"
CriarMapeamento "q:","\\sv1\Qualidade"
oShell.NameSpace("q:\").Self.Name = "Qualidade"
CriarMapeamento "r:","\\sv1\shares\sai"
oShell.NameSpace("r:\").Self.Name = "Geral"
CriarMapeamento "s:","\\sv1\Sistemas"
oShell.NameSpace("s:\").Self.Name = "Sistemas"
ElseIf InStr(grupo, "cn=u_i_todos") Then
CriarMapeamento "h:","\\sv4\SHARES"
oShell.NameSpace("h:\").Self.Name = "Shares"
CriarMapeamento "p:","\\sv3\PUBLICO"
oShell.NameSpace("p:\").Self.Name = "Publico"
CriarMapeamento "q:","\\sv2\Qualidade"
oShell.NameSpace("q:\").Self.Name = "Qualidade"
CriarMapeamento "s:","\\sv2\Sistemas"
oShell.NameSpace("s:\").Self.Name = "Sistemas"
CriarMapeamento "u:","\\sv2\Sistemas"
oShell.NameSpace("u:\").Self.Name = "Sistemas"
end ifObrigado pelo apoio.
- Movido Thales F Quintas sexta-feira, 21 de outubro de 2016 19:04
Todas as Respostas
-
Boa tarde Henrique,
você pode usar o seguinte Cod
Set oDomain = GetObject("LDAP://rootDSE") sDC = oDomain.Get("dnsHostName") Wscript.Echo "Usuário autenticado em: " & sDC
ou usar Path
Set objShell = CreateObject("WScript.Shell") sLogonServer= objShell.ExpandEnvironmentStrings("%LOGONSERVER%") Wscript.Echo "Usuário autenticado em: "& sLogonServer
Veja se isso te ajuda...
Como você não explicou se há diferenças de grupo de servidor para servidor.. fiz um exemplo de maneira generica..
On Error Resume Next Set Arquivo = createobject("scripting.filesystemobject") Set Rede = CreateObject("WScript.Network") Set ADSysInfo = CreateObject("ADSystemInfo") Set UsuarioAtual= GetObject("LDAP://" & ADSysInfo.UserName) Set oShell = CreateObject("Shell.Application") Set oDomain = GetObject("LDAP://rootDSE") sDC = oDomain.Get("dnsHostName") Wscript.Echo "Usuário autenticado em: " & sDC If sDC = "DC1" Then SetGroupConnectDC1() Elseif sDC = "DC2" Then SetGroupConnectDC2() End If Sub SetGroupConnectDC1() On Error Resume Next For Each sGroup in UsuarioAtual.MemberOf Set oGroup = GetObject("LDAP://" & sGroup) wscript.echo oGroup.CN Select Case oGroup.CN Case "u_fis_todos" CriarMapeamento "h:","\\sv1\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "i:","\\sv1\indicadores" oShell.NameSpace("i:\").Self.Name = "Indicadores" CriarMapeamento "p:","\\sv1\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "s:","\\sv1\Sistemas" oShell.NameSpace("S:\").Self.Name = "Sistemas" CriarMapeamento "t:","\\sv2\Sistemas" oShell.NameSpace("t:\").Self.Name = "Sistemas" Case "g_ssi_sede" CriarMapeamento "h:","\\sv1\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "i:","\\sv2\indicadores" oShell.NameSpace("i:\").Self.Name = "Indicadores" CriarMapeamento "p:","\\sv3\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "q:","\\sv3\Qualidade" oShell.NameSpace("q:\").Self.Name = "Qualidade" CriarMapeamento "r:","\\sv3\shares\ssi" oShell.NameSpace("r:\").Self.Name = "Geral" CriarMapeamento "s:","\\sv4\Sistemas" oShell.NameSpace("s:\").Self.Name = "Sistemas" Case "g_ssi_sede" CriarMapeamento "h:","\\sv3\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "i:","\\sv3\indicadores" oShell.NameSpace("i:\").Self.Name = "Indicadores" CriarMapeamento "p:","\\sv3\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "q:","\\sv1\Qualidade" oShell.NameSpace("q:\").Self.Name = "Qualidade" CriarMapeamento "r:","\\sv1\shares\sai" oShell.NameSpace("r:\").Self.Name = "Geral" CriarMapeamento "s:","\\sv1\Sistemas" oShell.NameSpace("s:\").Self.Name = "Sistemas" Case "u_i_todos" CriarMapeamento "h:","\\sv4\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "p:","\\sv3\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "q:","\\sv2\Qualidade" oShell.NameSpace("q:\").Self.Name = "Qualidade" CriarMapeamento "s:","\\sv2\Sistemas" oShell.NameSpace("s:\").Self.Name = "Sistemas" CriarMapeamento "u:","\\sv2\Sistemas" oShell.NameSpace("u:\").Self.Name = "Sistemas" End Select Next End Sub Sub SetGroupConnectDC2() On Error Resume Next For Each sGroup in UsuarioAtual.MemberOf Set oGroup = GetObject("LDAP://" & sGroup) wscript.echo oGroup.CN Select Case oGroup.CN Case "u_fis_todos" CriarMapeamento "h:","\\sv1\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "i:","\\sv1\indicadores" oShell.NameSpace("i:\").Self.Name = "Indicadores" CriarMapeamento "p:","\\sv1\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "s:","\\sv1\Sistemas" oShell.NameSpace("S:\").Self.Name = "Sistemas" CriarMapeamento "t:","\\sv2\Sistemas" oShell.NameSpace("t:\").Self.Name = "Sistemas" Case "g_ssi_sede" CriarMapeamento "h:","\\sv1\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "i:","\\sv2\indicadores" oShell.NameSpace("i:\").Self.Name = "Indicadores" CriarMapeamento "p:","\\sv3\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "q:","\\sv3\Qualidade" oShell.NameSpace("q:\").Self.Name = "Qualidade" CriarMapeamento "r:","\\sv3\shares\ssi" oShell.NameSpace("r:\").Self.Name = "Geral" CriarMapeamento "s:","\\sv4\Sistemas" oShell.NameSpace("s:\").Self.Name = "Sistemas" Case "g_ssi_sede" CriarMapeamento "h:","\\sv3\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "i:","\\sv3\indicadores" oShell.NameSpace("i:\").Self.Name = "Indicadores" CriarMapeamento "p:","\\sv3\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "q:","\\sv1\Qualidade" oShell.NameSpace("q:\").Self.Name = "Qualidade" CriarMapeamento "r:","\\sv1\shares\sai" oShell.NameSpace("r:\").Self.Name = "Geral" CriarMapeamento "s:","\\sv1\Sistemas" oShell.NameSpace("s:\").Self.Name = "Sistemas" Case "u_i_todos" CriarMapeamento "h:","\\sv4\SHARES" oShell.NameSpace("h:\").Self.Name = "Shares" CriarMapeamento "p:","\\sv3\PUBLICO" oShell.NameSpace("p:\").Self.Name = "Publico" CriarMapeamento "q:","\\sv2\Qualidade" oShell.NameSpace("q:\").Self.Name = "Qualidade" CriarMapeamento "s:","\\sv2\Sistemas" oShell.NameSpace("s:\").Self.Name = "Sistemas" CriarMapeamento "u:","\\sv2\Sistemas" oShell.NameSpace("u:\").Self.Name = "Sistemas" End Select Next End Sub Sub CriarMapeamento(letra,caminho) If Arquivo.folderexists(letra) then Rede.removenetworkdrive letra, true end if Rede.MapNetworkDrive letra, caminho End Sub
att, Aparecido Deveza
- Editado Aparecido Deveza sexta-feira, 21 de outubro de 2016 21:36
- Marcado como Resposta HenriqueMandt segunda-feira, 24 de outubro de 2016 15:01
- Não Marcado como Resposta HenriqueMandt segunda-feira, 24 de outubro de 2016 15:01
-
-
-
Bom dia, Aparecido.
Infelizmente não deu certo =/ ele identifica o DC que o usuário está conectado, mas não faz os mapeamentos.
Já testei em mais de uma máquina....
A necessidade desse script é em virtude de cada DC está conectado a um File server diferente, e para diminuir o tráfego na rede, queremos que o mapeamento seja realizado de acordo com a unidade (DC) que a pessoa esteja conectada.