IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

objRecordSet.Fields ("Description"). Value


Sujet :

VBScript

  1. #1
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut objRecordSet.Fields ("Description"). Value
    Bonjour,

    Je voudrais extraire des infos de l'AD concernant les ordinateurs.
    Ils sont rangés dans "domaine\site\stations"
    J'arrive à récupérer les nom des postes, mais pas la description.
    Pourriez-vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Option Explicit
     
    DIM objConnection, objCommand, objRecordSet, objFSO, objF
    DIM sOrdi, strPath, strName, descript
    Const ADS_SCOPE_SUBTREE = 2
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    strName="output.csv"
    strPath=".\"
    IF(objFSO.FileExists(strPath&strName)) Then
    objFSO.DeleteFile strPath&strName
    End if
    SET objF=objFSO.CreateTextFile(strPath&strName)
    objF.Close
    Set objF=objFSO.openTextFile(strPath&strName,ForAppending)
     
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = "Select Name, Location, DistinguishedName from 'LDAP://OU=Stations,OU=site,DC=domaine' Where objectClass='computer'"
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
     
    Do Until objRecordSet.EOF
    sOrdi = objRecordSet.Fields("Name").Value
    descript = objRecordSet.Fields("Description").Value
    objF.WriteLine(sOrdi&";"&descript)
    objRecordSet.MoveNext
    Loop
    objF.Close
    Erreur ligne 31 "Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandée."
    Code 800A0CC1
    Source ADODB.Recordset

    Sans la ligne 31, tout fonctionne bien ...

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    a priori, si tu demandes l'extraction de "Name, "Location" et "DistinguishedName"
    je ne vois pas trop comment le recordset pourrait contenir une référence à "Description"
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    Ah ... oups en effet ... Merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Option Explicit
     
    DIM objConnection, objCommand, objRecordSet, objFSO, objF
    DIM sOrdi, strPath, strName, descript
    Const ADS_SCOPE_SUBTREE = 2
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    strName="output.csv"
    strPath=".\"
    IF(objFSO.FileExists(strPath&strName)) Then
    objFSO.DeleteFile strPath&strName
    End if
    SET objF=objFSO.CreateTextFile(strPath&strName)
    objF.Close
    Set objF=objFSO.openTextFile(strPath&strName,ForAppending)
     
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = "Select Name, Description from 'LDAP://OU=Stations,OU=site,DC=domaine' Where objectClass='computer'"
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
     
    Do Until objRecordSet.EOF
    sOrdi = objRecordSet.Fields("Name").Value
    descript = objRecordSet.Fields("Description").Value
    objF.WriteLine(sOrdi&";"&descript)
    objRecordSet.MoveNext
    Loop
    objF.Close
    Maintenant j'ai une erreur ligne32 de type incompatible ...
    M'énerve cette variable !

  4. #4
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    Ok trouvé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Option Explicit
     
    DIM objConnection, objCommand, objRecordSet, objFSO, objF
    DIM sOrdi, strPath, strName, strDescription, StrTmp
    Const ADS_SCOPE_SUBTREE = 2
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    strName="output.csv"
    strPath=".\"
    IF(objFSO.FileExists(strPath&strName)) Then
    objFSO.DeleteFile strPath&strName
    End if
    SET objF=objFSO.CreateTextFile(strPath&strName)
    objF.Close
    Set objF=objFSO.openTextFile(strPath&strName,ForAppending)
     
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = "Select Name, Description from  'LDAP://OU=Stations,OU=site,DC=domaine' Where objectClass='computer'"
     
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
     
    Do Until objRecordSet.EOF
    sOrdi = objRecordSet.Fields("Name").Value
     
    strDescription = ""
    If Not (IsNull(objRecordSet.Fields("Description").Value)) then
    For each strTmp in objRecordSet.Fields("Description").Value
    strDescription = strTmp
    Next
    End If
     
    objF.WriteLine(sOrdi&";"&strDescription)
    objRecordSet.MoveNext
    Loop
    objF.Close
    Merci encore Omen, je ne l'aurais pas vu tout seul !
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Echappement de quote dans input/value
    Par pc.bertineau dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/09/2007, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo