Usuário com melhor resposta
Script para mapear unidade de rede em VBS - Com autenticação!!!

Pergunta
-
Script para mapear unidade de rede em VBS - Com autenticação!!!
Preciso de um scipt em VBS para mapear unidades de rede que solicite usuário e senha?
Alguem sabe algum?
Tentei o script abaixo mais da erro de "code"
Code SnippetSet WshNetwork = WScript .CreateObject ("WScript.Network")
WshNetwork.MapNetworkDrive "S:", "\\server\share ", True, username, password
Valcenir-TI
Respostas
-
Olá,
Está correto. Você está passando o usuário e senha no script?
onde está username, você deve colocar o usuário. Exemplo: "CONTOSO\Jose"
O mesmo vale para a senha. Lembrando sempre das Aspas.
Abaixo, verifique um script em hta que criei... O legal deste script é que você não precisa colocar o usuário e senha no script (que seria uma falha de segurança).
<HTML>
<HEAD>
<TITLE>Mapeamento de rede</title>
<HTA:APPLICATION
ApplicationName="MappingWithCredentials.HTA"
SingleInstance="Yes"
WindowsState="Normal"
Scroll="No"
Navigable="Yes"
MaximizeButton="No"
SysMenu="Yes"
Caption="Yes"
></HEAD>
<SCRIPT LANGUAGE="VBScript">
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 "U:","\\servidorcompartilhamento", "FALSE", strLogin, strSenha
Set oShell = Nothing
Set objNetwork = Nothing
Self.Close()
End Sub
Sub CancelScript
Set oShell = Nothing
Set objNetwork = Nothing
Self.Close()
End Sub
</SCRIPT>
<BODY STYLE="font:14 pt arial; color:white; filter:progid:DXImageTransform.Microsoft.Gradient( GradientType=1, StartColorStr='#000000', EndColorStr='#0000FF')">
<a name="Top"></a><CENTER>
<table border="0" cellpadding="0" cellspacing="0"><font size="2" color="black" face="Arial">
<tr>
<td height="30">
<p align="right">Usuario (@dominio.local)</p>
</td>
<td height="30"> <input type="text" name="UsrnameArea" size="30"></td></tr>
<tr>
<td height="30">
<p align="right">Senha</p>
</td>
<td height="30"> <input type="password" name="PasswordArea" size="30"></td></tr>
</table><BR>
<HR color="#0000FF">
<Input id=runbutton class="button" type="button" value=" Create Drive " name="run_button" onClick="RunScript">
<Input id=runbutton class="button" type="button" value="Cancel" name="cancel_button" onClick="CancelScript">
</CENTER>
</BODY>
</HTML>
Salve o script acima com a extensao .hta e execute. Faça as alterações necessárias.
Até mais,
Jesiel
Obs.: Se útil, classifique
- Sugerido como Resposta Edson S Freitas quinta-feira, 18 de março de 2010 17:36
- Marcado como Resposta Fábio JrModerator sexta-feira, 13 de janeiro de 2012 15:26
Todas as Respostas
-
Olá,
Está correto. Você está passando o usuário e senha no script?
onde está username, você deve colocar o usuário. Exemplo: "CONTOSO\Jose"
O mesmo vale para a senha. Lembrando sempre das Aspas.
Abaixo, verifique um script em hta que criei... O legal deste script é que você não precisa colocar o usuário e senha no script (que seria uma falha de segurança).
<HTML>
<HEAD>
<TITLE>Mapeamento de rede</title>
<HTA:APPLICATION
ApplicationName="MappingWithCredentials.HTA"
SingleInstance="Yes"
WindowsState="Normal"
Scroll="No"
Navigable="Yes"
MaximizeButton="No"
SysMenu="Yes"
Caption="Yes"
></HEAD>
<SCRIPT LANGUAGE="VBScript">
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 "U:","\\servidorcompartilhamento", "FALSE", strLogin, strSenha
Set oShell = Nothing
Set objNetwork = Nothing
Self.Close()
End Sub
Sub CancelScript
Set oShell = Nothing
Set objNetwork = Nothing
Self.Close()
End Sub
</SCRIPT>
<BODY STYLE="font:14 pt arial; color:white; filter:progid:DXImageTransform.Microsoft.Gradient( GradientType=1, StartColorStr='#000000', EndColorStr='#0000FF')">
<a name="Top"></a><CENTER>
<table border="0" cellpadding="0" cellspacing="0"><font size="2" color="black" face="Arial">
<tr>
<td height="30">
<p align="right">Usuario (@dominio.local)</p>
</td>
<td height="30"> <input type="text" name="UsrnameArea" size="30"></td></tr>
<tr>
<td height="30">
<p align="right">Senha</p>
</td>
<td height="30"> <input type="password" name="PasswordArea" size="30"></td></tr>
</table><BR>
<HR color="#0000FF">
<Input id=runbutton class="button" type="button" value=" Create Drive " name="run_button" onClick="RunScript">
<Input id=runbutton class="button" type="button" value="Cancel" name="cancel_button" onClick="CancelScript">
</CENTER>
</BODY>
</HTML>
Salve o script acima com a extensao .hta e execute. Faça as alterações necessárias.
Até mais,
Jesiel
Obs.: Se útil, classifique
- Sugerido como Resposta Edson S Freitas quinta-feira, 18 de março de 2010 17:36
- Marcado como Resposta Fábio JrModerator sexta-feira, 13 de janeiro de 2012 15:26
-
Achei muito útil o script que você montou.
Eu testei aqui com mais uma coisa.
Preciso que após o usuário se conectar a rede ele execute uma arquivo .bat (robocopy) isso todos os dias para isso eu fiz o seguinte:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\teste2.bat"Porem ainda tem mais um problema, pelo que eu reparei você não adicionou nenhum validação ao Script que você montou, eu também não tenho muita pratica em VBSCRIPT é possível adicionar uma validação para campos vazios ou melhor para quando o usuário ou senha estiverem incorretos ?
Eu tornei esse arquivo uma tarefa agendada do windows, para que todos os dias ao ligar o computador seja solicitado o usuário e senha do servidor.
Ainda não utilizamos AD aqui na empresa.
Achei desnecessário abrir um outro tópico sendo que esse já me atendeu em basicamente tudo faltando apenas o que eu mencionei acima.
-