Question
Lotus Notes
- Dupuis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 2 semaines #19173
par Dupuis
Lotus Notes a été créé par Dupuis
Bonjour,
J'ouvre un nouveau sujet, j'ai besoin d'interroger mon annuaire Lotus Notes avec Powershell,mon but récupérer
Nom Prenom Adresse mail de chaque user.
J'ai commencé à regarder ce post powershell-scripting.com/index.php?optio...59&catid=6#17159
Mais je voulais savoir si d'autre personne avait du faire face à ce genre de problématique pour m'aider !
En attendant google sera mon ami !
J'ouvre un nouveau sujet, j'ai besoin d'interroger mon annuaire Lotus Notes avec Powershell,mon but récupérer
Nom Prenom Adresse mail de chaque user.
J'ai commencé à regarder ce post powershell-scripting.com/index.php?optio...59&catid=6#17159
Mais je voulais savoir si d'autre personne avait du faire face à ce genre de problématique pour m'aider !
En attendant google sera mon ami !
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 2 semaines #19175
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Lotus Notes
Salut,
stabz écrit:
stabz écrit:
Est-ce que tu comprends le code contenu dans le post cité ?<br><br>Message édité par: Laurent Dardenne, à: 4/03/15 11:32J'ai commencé à regarder ce post
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Dupuis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 2 semaines #19181
par Dupuis
Réponse de Dupuis sur le sujet Re:Lotus Notes
Bonjour Laurent,
Je vois l'idée plus ou moins maintenant, je ne pense pas avoir besoin de sa fonction ajoutligne sachant que moi je veux simplement lister l'existant et non voir la différence.
Apres la ou je vois flou c'est la façon dont il remplit sont tableau je patoge !
Je vois l'idée plus ou moins maintenant, je ne pense pas avoir besoin de sa fonction ajoutligne sachant que moi je veux simplement lister l'existant et non voir la différence.
Apres la ou je vois flou c'est la façon dont il remplit sont tableau je patoge !
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 2 semaines #19182
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Lotus Notes
stabz écrit:
Quelque chose comme ceci :
[code:1]
$Connection = New-Object -Com \"ADODB.Connection\" #création d'un objet de connexion à une source de données
$Connection.Provider = \"ADsDSOObject\" #Utilisé pour une connexion LDAP
$Connection.Properties.Item(\"User ID\"«»)=\"CN=Darum,O=Ma Société\" #authentifiant à préciser
$Connection.Properties.Item(\"Password\"«»)=\"P@ssw0rd!\" #Votre mot de passe
$Connection.Open(\"Active Directory Provider\"«»)
$Command = New-Object -Com \"ADODB.Command\" #on initialise la commande qui sera fournie à la connexion $Connection
$Command.ActiveConnection = $Connection #On lie la commande à la connexion
$Query = \"SELECT displayname, mail, member FROM 'LDAP://lotusserveur.mondomaine.com' WHERE objectclass='
dominogroup'\" #nous enregistrons un texte qui sera pris comme commande, et qui précise que nous sélectionnons les
propriétés displayname mail et member sur le serveur LDAP pour tout ce qui est un dominogroup
$Command.Commandtext = $Query
$Command.Commandtimeout = 60 #Ce timeout est le temps de validité de la commande avant qu'elle soit précisée comme perdue. Si
votre base est imposante ou que votre connexion vers le serveur est lente, augmentez la valeur.
$execute = $Command.execute() #On exécute la commande et on l'enregistre dans $execute
$tab = @() #on crée un tableau qui recueillera les données
$execute.MoveFirst() #nous nous déplaçons au premier enregistrement
while ($execute.eof -eq $false) #cette boucle s'execute tant que nous ne sommes pas arrivés sur le EOF (End Of File) qui indique la
fin des enregistrements. Une valeur BOF (Begin Of File) existe pour préciser le premier
enregistrement.
{
$member = $execute.Fields | Where-Object {$_.name -eq \"member\"} #nous selectionnons dans l’élément de la boucle la valeur \"member\"
$displayname = $execute.Fields | Where-Object {$_.name -eq \"displayname\"} #idem pour displayname
$addresse = $execute.Fields | Where-Object {$_.name -eq \"mail\"} #idem pour mail
if ($member.Value -isnot [System.DBNull]) #Pour un enregistrement de base de donnée vide, $null n'est pas valide. Le type pour une entrée
vide est [System.DBNull]
{
$displayname.value
$addresse.value
$member.value
}
$execute.MoveNext()
}
[/code:1]
Une fois que cela fonctionne, tu passes à l'étape suivante.
Dans un premier temps tu ne gardes que le nécessaire à la lecture des infos.je veux simplement lister l'existant
Quelque chose comme ceci :
[code:1]
$Connection = New-Object -Com \"ADODB.Connection\" #création d'un objet de connexion à une source de données
$Connection.Provider = \"ADsDSOObject\" #Utilisé pour une connexion LDAP
$Connection.Properties.Item(\"User ID\"«»)=\"CN=Darum,O=Ma Société\" #authentifiant à préciser
$Connection.Properties.Item(\"Password\"«»)=\"P@ssw0rd!\" #Votre mot de passe
$Connection.Open(\"Active Directory Provider\"«»)
$Command = New-Object -Com \"ADODB.Command\" #on initialise la commande qui sera fournie à la connexion $Connection
$Command.ActiveConnection = $Connection #On lie la commande à la connexion
$Query = \"SELECT displayname, mail, member FROM 'LDAP://lotusserveur.mondomaine.com' WHERE objectclass='
dominogroup'\" #nous enregistrons un texte qui sera pris comme commande, et qui précise que nous sélectionnons les
propriétés displayname mail et member sur le serveur LDAP pour tout ce qui est un dominogroup
$Command.Commandtext = $Query
$Command.Commandtimeout = 60 #Ce timeout est le temps de validité de la commande avant qu'elle soit précisée comme perdue. Si
votre base est imposante ou que votre connexion vers le serveur est lente, augmentez la valeur.
$execute = $Command.execute() #On exécute la commande et on l'enregistre dans $execute
$tab = @() #on crée un tableau qui recueillera les données
$execute.MoveFirst() #nous nous déplaçons au premier enregistrement
while ($execute.eof -eq $false) #cette boucle s'execute tant que nous ne sommes pas arrivés sur le EOF (End Of File) qui indique la
fin des enregistrements. Une valeur BOF (Begin Of File) existe pour préciser le premier
enregistrement.
{
$member = $execute.Fields | Where-Object {$_.name -eq \"member\"} #nous selectionnons dans l’élément de la boucle la valeur \"member\"
$displayname = $execute.Fields | Where-Object {$_.name -eq \"displayname\"} #idem pour displayname
$addresse = $execute.Fields | Where-Object {$_.name -eq \"mail\"} #idem pour mail
if ($member.Value -isnot [System.DBNull]) #Pour un enregistrement de base de donnée vide, $null n'est pas valide. Le type pour une entrée
vide est [System.DBNull]
{
$displayname.value
$addresse.value
$member.value
}
$execute.MoveNext()
}
[/code:1]
Une fois que cela fonctionne, tu passes à l'étape suivante.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Lotus Notes