Campo managedby sin CN

Iniciado por palophp, 17 Octubre 2016, 20:54 PM

0 Miembros y 1 Visitante están viendo este tema.

okik

#20
hola

mira yo creo que ya más no puedo aportar. Para lo de crear líneas ya te propuse VbNewLine o vbCrLf y eso funciona.pero por alguna razón que desconozco no funciona dentro de tu código. Como no puedo reproducir tu código no hay forma de que pueda encontrar la razón.

Incluso he usado un código de VBScript y un For Each y dentro de este el Split. Para comprobar que funciona.

Para sacar el nombre lo del SPLIT que ya habrás comprobado que funciona,

Este código por ejemplo lista los procesos en formato "Aplicación.exe" y se trata de listarlo quitando ".exe".

Código (vb) [Seleccionar]
Dim strComputer As String
strComputer = "."
       Dim objWMIService As Object
           Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
       Dim colProcessList As Object
           Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
       For Each objProcess In colProcessList
               Dim sN() As String
                   sN = Split(objProcess.Name, ".")
                   List1.AddItem (sN(0))
       Next
       
       


funciona sin problemas

Ahora vamos con tu código. Es básicamente lo mismo pero no te funciona. Lo único que se me ocurre sin poder probarlo es quitar la condición y poner On error Resume Next.

Código (vb) [Seleccionar]
 For Each obj In ou
        Dim sN() As String
             sN = Split(CStr(obj.managedby), ",")
             sN = Split(sN(0), "=")
             On Error Resume Next
           objConsulta_PING2.WriteLine (StrEquipo & TabStop & UCase(sN(1)) _
         & " " & _
           "Hace PING" & vbNewLine)
   Next



Podrías probar a usar puntos de interrupción para ver el valor de obj.managedby en tiempo de ejecución antes de escribir.

En la parte izquierda del editor, justo donde acaba lo blanco,  hay una columna vacía tipo botón que si le das aparece un punto rojo.




Marca justo donde está la línea :

     objConsulta_PING2.WriteLine (StrEquipo & TabStop & obj.managedby  _
         & " " & _
           "Hace PING" & vbNewLine)


mete  obj.managedby en una variable String

Código (vb) [Seleccionar]
Dim g As String
 g = obj.managedby


y marca el el punto justo donde está   g = obj.managedby

y marca el el punto justo donde está   Next

Inicia le código y cuando se interrumpa coloca el puntero justo encima de g, debería mostrarse un texto que muestra su valor justo en ese momento. A ver que formato tiene, para poder extraer el nombre.



palophp

Vale voy a probarlo,y muchas gracias por tu ayuda y tu tiempo

okik

Perdona marca el punto de interrupción donde está el NEXT porque si no g te mostrará "".