Campo managedby sin CN

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

0 Miembros y 2 Visitantes están viendo este tema.

palophp

Estoy realizando un script para sacar los nombres de los Equipos y por quien esta administrado.
Pero al sacar la consulta me sale por ejemplo:
Equipo1 CN=Elena
Equipo2 CN=Pepe

Como podria quitar el CN, y que aparezca solamente el nombre?
Estoy poniendo:
obj.managedby y asi es como saco los nombres de las personas

okik

Ejemplo1:
Código (vb) [Seleccionar]
Dim Nombre As String
Nombre = "Equipo1 CN=Elena"

Dim sN() As String
sN = Split(Nombre, "=")
MsgBox (sN(1))




Ejemplo2:
Código (vb) [Seleccionar]
Dim sN() As String
sN = Split(CStr(obj.managedby), "=")
MsgBox (sN(1))

palophp

Me sale error...

Tengo puesto:
For Each obj In usuarioEquipo
   
   objConsulta_PING2.WriteLine (StrEquipo & TabStop & obj.managedby & TabStop     &"APAGADO")

Next
   

Y claro me sale luego en el txt
Equipo1 CN=PEPE, DC=..

okik

#3
Cita de: palophp en 18 Octubre 2016, 20:35 PM
Me sale error...

Tengo puesto:
For Each obj In usuarioEquipo
   
  objConsulta_PING2.WriteLine (StrEquipo & TabStop & obj.managedby & TabStop     &"APAGADO")

Next
   

Y claro me sale luego en el txt
Equipo1 CN=PEPE, DC=..

no dice que obj.managedby  devuelve  esto Equipo1 CN=PEPE?

Necesitaría saber la cadena complenta. esto no me sirve

Equipo1 CN=PEPE, DC=..

En un principio dijiste: Equipo1 CN=Elena

para extraer "Elena" usas lo que he puesto. No entiendo el problema. Lo que hace SPLIT es obtener el valor de cada lado distinto de "=", el lado izquierdo de la cadena será (0) y el derecho (1)



usa:

object.name

y para quitar el "CN="
Código (vb) [Seleccionar]
Dim N As String
N = "CN=HOla"
MsgBox (Right(N, Len(N) - 3))



Código (vb) [Seleccionar]
(Right(obj.Name, Len(N) - 3))

palophp

Lo siento, me he debido de explicar mal.
Estoy hablando contigo en otro foro referido a lo de eliminar un fichero txt.
Ahi he pegado todo el codigo.
Lo que quiero es que me saque como resultado final un unico fichero con:
Equipo1 Pepe Apagado
Equipo2 Elena No se ha podido apagar
....
Y lo que quiero es borrar el otro fichero donde he guardado la consulta LDAP con todos los nombres de los equipos.
Gracias!!!

okik

a ver esto:

Añade VbNewLine

Código (vb) [Seleccionar]
For Each obj In ou
        objConsulta_PING2.WriteLine (StrEquipo & TabStop & obj.managedby & " " & "Hace PING" & vbNewLine)
    Next

palophp

Tampoco jajaja me sigue apareciendo esto, ademas no se porque me sale tantas veces el Equipo IMIO

MIO   CN=paloma,CN=Users,DC=palo,DC=age Hace PING
MIO    Hace PING
MIO   CN=Dani ,CN=Users,DC=palo,DC=age Hace PING
MIO1    No se ha podido apagar
MIO2    No se ha podido apagar

okik

Cita de: palophp en 18 Octubre 2016, 22:30 PM
Tampoco jajaja me sigue apareciendo esto, ademas no se porque me sale tantas veces el Equipo IMIO

MIO   CN=paloma,CN=Users,DC=palo,DC=age Hace PING
MIO    Hace PING
MIO   CN=Dani ,CN=Users,DC=palo,DC=age Hace PING
MIO1    No se ha podido apagar
MIO2    No se ha podido apagar



También se podría usar vbCrlf en lugar de vbNewline.

Ya lo tengo espera un rato...



palophp


okik

#9
Cita de: palophp en 18 Octubre 2016, 22:44 PM
Si? Espero espero jaajja

Vale mira reemplaza esto:

Código (vb) [Seleccionar]
For Each obj In ou
       objConsulta_PING2.WriteLine (StrEquipo & TabStop & obj.managedby & " " & "Hace PING" & vbNewLine)
  Next


Por esto otro:

Código (vb) [Seleccionar]
 
   For Each obj In ou
      Dim sN() As String
       sN = Split(obj.managedby, ",")
       sN = Split(sN(0), "=")
       If  sN(1) <> vbNullString Then '<- Si Sn es distinto de nada
           objConsulta_PING2.WriteLine (StrEquipo & TabStop & UCase(sN(1)) _
           & " " & _
           "Hace PING" & vbNewLine)
       End If
   Next


y me cuentas q tal

El UCase es para que el nombre se vea en mayúsculas