none
Error ejecución logon script Vbs en algunos pc. RRS feed

  • Pregunta

  • Buenos días, necesitaría que alguien me diese un poco de luz pues estoy un poco atascado. En un entorno de dominio Server 2012 essentials tengo un script de inicio de sesion por medio de OU que lo que hace es abrir una instancia de IE y sobre ella saca el usuario el grupo al que pertenece y conecta las unidades de red correspondientes. El script funciona correctamente, pues en algunos equipos funciona correctamente probando cualquier usuario y en otros se abre la instancia de IE, pero no muestra el usuario ni el grupo ni conecta las unidades de red. Son equipos con windows 7 pro y en unos se completa la ejecucion y en otros no, solo sale la pantalla de IE, pero no saca los usuarios ni conecta las unidades de red.

    Os muestro una parte del script:

    On Error Resume Next
    Dim WshNetwork, asdPath, strUser
    Dim strMappedDrives, strStatus
    Dim IE
    
    Const ADS_READONLY_SERVER = 4
    
    Call CreateIE()'Llamada al procedimiento que crea la instancia del internet explorer
    ' Display IE status window
    strStatus = "Fecha de inicio " & Date()
    ie.document.all.Msg0.InnerText = "Iniciando sesión en red..."'Escribe este mensaje en la ventana de inicio
    
    ' Get the User ID
    Set WSHNetwork = WScript.CreateObject("WScript.Network")
    strUser = ""
    While strUser = ""
    	strUser = WSHNetwork.UserName
    Wend
    
    ie.document.all.Msg1.InnerText = strUser'Escribe el nombre de usuario dentro de la ventana de inicio
    
    Call main()
    
    strStatus = strStatus & vbCRLF & "Acceso a red completado..."
    ie.document.all.wstatus.InnerText = strStatus
    ie.document.all.Msg0.InnerText = "Puede cerrar esta ventana"
    
    ' Close IE status window
    If not ie.document.all.holdit.checked Then
    	'ie.quit()
    End If
    ' End of logon script
    
                        
    'XXXXXXXXXXXXXXXXXXXXXXXXXX
    'FUNCIONES Y PROCEDIMIENTOS
    'XXXXXXXXXXXXXXXXXXXXXXXXXX
    
    Public Sub Main()'Obtiene los grupos a los que pertenece el usuario y llama al procedimiento
                     'correspondiente para montar las unidades de red
      'Main loop to detect group that user belongs to
      adsPath = "WinNT://dominio/" & strUser
      Set dso = GetObject("WinNT:")
      Set objUser = dso.OpenDSObject(adsPath,"","", ADS_READONLY_SERVER)
      For Each Prop In objUser.groups
        Select Case Prop.Name
          Case "PROYECTOS"
            Call PROYECTOS()
          Case "ADMINISTRACION"
            Call ADMINISTRACION()
          Case "CALIDAD"
    	Call CALIDAD()	
          Case "DIRECCION"
    	Call DIRECCION()	
          Case "COMERCIAL"
    	Call COMERCIAL()			
    		End Select
    
    Sub CreateIE()
      On Error Resume Next
      Set IE = CreateObject("InternetExplorer.Application")
      With IE
        .navigate "\\servidor\netlogon\logon.htm"
        .resizable=0
        .height=430
        .width=350
        .menubar=0
        .toolbar=0
        .statusBar=0    
        .left=.document.parentWindow.screen.width \ 2 - .width \ 2
        .top=.document.parentWindow.screen.height\ 2 - .height \ 2
        .visible=1   
      End With
      Do while ie.Busy
        ' wait for page to load
        Wscript.Sleep 100
      Loop
    End Sub
    
    Sub CALIDAD()'Usuarios de Calidad
    	  strStatus = strStatus & vbCRLF & "Usuarios de CALIDAD..."
    	ie.document.all.wstatus.InnerText = strStatus
    	
    	  MapDrive "O:", "\\192.168.1.101\calidad"  
    	  MapDrive "Q:", "\\192.168.1.100\archivos"
    	  MapDrive "Z:", "\\192.168.1.101\personal"
    	
    	
    
    End Sub
    
    Sub COMERCIAL() 'Usuarios de Comercial 
    	strStatus = strStatus & vbCRLF & "Usuarios de COMERCIAL..."
    	ie.document.all.wstatus.InnerText = strStatus  	
    
    	  MapDrive "O:", "\\192.168.1.101\trabajo"  
    	  MapDrive "Q:", "\\192.168.1.100\personal"
    	
    
    End Sub
    
    Sub MapDrive(strDrive,strShare)'Procedimiento para montar una unidad de red
    	On Error Resume Next
    	WSHNetwork.MapNetworkDrive strDrive, strShare
    	If Err.Number Then
    		WSHNetwork.RemoveNetworkDrive strDrive
    		WSHNetwork.MapNetworkDrive strDrive, strShare
    	End If
    	strMappedDrives = strMappedDrives & strDrive & " "
    	ie.document.all.Msg2.InnerText = strMappedDrives & "P:"
    Gracais

    jueves, 12 de mayo de 2016 11:44

Todas las respuestas