none
Ayuda con Script de Inicio de Sesion Para Conectar Unidades de Red de Usuario RRS feed

  • Pregunta

  • Buen día Respetados Señores:

    He logrado crear un script en vbs para poder conectar una o varias unidades de red segun mi necesidad, el cual funciona perfectamente con carpetas compartidas diferentes a la de usuario (ejemplo: \\Server\BD_CLIENTES). Dicho script lo he guardado en la carpeta C:\Windows\SYSVOL\sysvol\midominio.red\scripts y lo he configurado para que se ejecute por medio de una politica GPO en Configuracion de Usuario\Directivas\Configuracion de Windows\Scripts\Iniciar Sesion, la cual se encuentra aplicada al Grupo de Seguridad Comercial.

    He estado intentando utilizar dicho Script para que tambien conecte de forma automatica la unidad de red que corresponde a cada usuario (ejemplo: \\Server\Datos\asierra) pero no me ha querido funcionar, pues cuando se hace inicio de sesion aparece un mensaje de error al ejecutarse el Script y no conecta la unidad de red del usuario, mientras que las demas si.

    A continuacion doy a conocer el codigo del Script:

    1 Option Explicit
    2 Dim objNetwork, strDrive, objShell, objUNC
    3 Dim strRemotePath, strDriveLetter, strNewName
    4 strDriveLetter = "T:"
    5 strRemotePath = "\\Server\DATOS\"
    6 strNewName = "DATOS"
    7 Set objNetwork = WScript.CreateObject("WScript.Network")
    8 objNetwork.MapNetworkDrive strDriveLetter, strRemotePath
    9 Set objShell = CreateObject("Shell.Application")
    10 objShell.NameSpace(strDriveLetter).Self.Name = strNewName
    11 WScript.Quit

    En la linea No. 5 he modificado de varias formas ese parametro (ejemplo: "\\Server\DATOS\%username%" ó "\\Server\DATOS\" & %username%" pero cuando el usuario inicia sesion aparecen mensajes de error de vbs tales como se esperaba un objeto ó falta variable ó caracter invalido, etc y definitivamente no conecta la unidad de red del usuario

    Quisiera que por favor me ayudaran diciendome en donde esta el error, o si me faltan lineas de codigo cuales y donde deben ir, o como hago para capturar el nombre del usuario que inicia sesion y concatenarlo al Path (aunque ya lo probe pero no me funciono), o mejor dicho, modificar este script para que me funcione perfectamente con las unidades de red para cada usuario.

    Espero me haya hecho entender de forma clara. Les agradezco su valiosa ayuda y pronta respuesta

     


    "El espiritu de lucha es lo que nos impulsa cada día a emprender nuevos retos..." Alexsc007 Bogotá - Colombia
    martes, 21 de junio de 2011 21:09

Respuestas

  • Despues de tanto cacharrear y darle vueltas al Script, he logrado solucionarme mi problema. A continuacion doy a conocer la modificacion al codigo para que funcione perfectamente:

    Option Explicit

    Dim objNetwork, strDrive, objShell, objUNC
    Dim strRemotePath, strDriveLetter, strNewName, strUsername

    Set objNetwork = WScript.CreateObject("WScript.Network")
    strUsername = objNetwork.UserName

    strDriveLetter = "T:"
    strRemotePath = "\\Server\DATOS\"

    objNetwork.MapNetworkDrive strDriveLetter, strRemotePath & strUsername

    Set objShell = CreateObject("Shell.Application")
    objShell.NameSpace(strDriveLetter).Self.Name = strUsername

    WScript.Quit

    Probado y corroborado al 100%

    Espero que les sirva de ayuda a muchos, porque se que este tema del mapeo de unidades de red siempre ha sido un carma....

     


    "El espiritu de lucha es lo que nos impulsa cada día a emprender nuevos retos..." Alexsc007 Bogotá - Colombia
    • Marcado como respuesta Alexsc007 martes, 21 de junio de 2011 22:03
    martes, 21 de junio de 2011 22:03

Todas las respuestas

  • Despues de tanto cacharrear y darle vueltas al Script, he logrado solucionarme mi problema. A continuacion doy a conocer la modificacion al codigo para que funcione perfectamente:

    Option Explicit

    Dim objNetwork, strDrive, objShell, objUNC
    Dim strRemotePath, strDriveLetter, strNewName, strUsername

    Set objNetwork = WScript.CreateObject("WScript.Network")
    strUsername = objNetwork.UserName

    strDriveLetter = "T:"
    strRemotePath = "\\Server\DATOS\"

    objNetwork.MapNetworkDrive strDriveLetter, strRemotePath & strUsername

    Set objShell = CreateObject("Shell.Application")
    objShell.NameSpace(strDriveLetter).Self.Name = strUsername

    WScript.Quit

    Probado y corroborado al 100%

    Espero que les sirva de ayuda a muchos, porque se que este tema del mapeo de unidades de red siempre ha sido un carma....

     


    "El espiritu de lucha es lo que nos impulsa cada día a emprender nuevos retos..." Alexsc007 Bogotá - Colombia
    • Marcado como respuesta Alexsc007 martes, 21 de junio de 2011 22:03
    martes, 21 de junio de 2011 22:03
  • Que tal,

    Y si quisiera mapear varias unidades?, en mi caso uso este:

     Set oWshNet = CreateObject("Wscript.Network")
     Set oShellApp = CreateObject("Shell.Application")

     sDriveLetter = "T:"
     sDriveDesc = "ALLE"
     sShare = "\\SERVIDOR\ALLE$"

     sDriveLetter = "V:"
     sDriveDesc = "SERVICIOS-COMUNICACIONES"
     sShare = "\\SERVIDOR\SERVICIOS-COMUNICACIONES$"

     sDriveLetter = "S:"
     sDriveDesc = "ESCANEOS"
     sShare = "\\SERVIDOR\ESCANEOS$\SERVICIOS-COMUNICACIONES"
     
     ' Mapeo de la unidad de red
     On Error Resume Next
     oWshNet.RemoveNetworkDrive sDriveLetter, True, True
     On Error Goto 0
     oWshNet.MapNetworkDrive sDriveLetter, sShare

     ' Establece la descripcion
     oShellApp.NameSpace(sDriveLetter & "\").Self.Name = sDriveDesc



    Jorge Ramirez

    martes, 17 de noviembre de 2015 16:40