none
Connexion à un open ldap avec PowerShell RRS feed

  • Question

  • Bonjour,

    J'ai besoin d'interroger un annuaire ldap pour récupérer les numéros de téléphones des utilisateurs pour les intégrer dans l'AD.
    Je souhaiterais le faire en powershell pour dialoguer avec l'ad facilement.

    Je suis capable de me connecter au ldap via un ldapbrowser (softerra, jxplorer) ou depuis une ligne de commande linux avec la commande ldapsearch.

    Je dispose de

    url: ldap://serveur:389/o=Groupe%,o=directoryRoot
    cn: uid=user,cn=Administrators,cn=8770 administration,o=nmc
    mdp : password

    J'avais essayé ce bout de script pour établir la connexion en powershell :

    #$root = new-object DirectoryServices.DirectoryEntry("ldap://serveur:389/o=Groupe%,o=directoryRoot","uid=user,cn=Administrators,cn=8770 administration,o=nmc","password")
    #$selector = new-object DirectoryServices.DirectorySearcher($root)
    #$selector.findone()

    mais j'obtiens l'erreur suivante : Exception lors de l'appel de « FindOne » avec « 0 » argument(s) : « Erreur inconnue (0x80005000) »

    Je vous remercie pour votre aide.
    Bonne journée

    mercredi 30 décembre 2020 09:10

Toutes les réponses

  • Bonjour,

    Avez-vous essayé d'utiliser Get-ADUser ou ldapsearch pour ce besoin? Pour plus de détails:


    Youssef Saad | New blog: https://youssef-saad.blogspot.com | Linkedin: linkedin.com/in/youssef-saad

    mercredi 30 décembre 2020 09:36
  • Bonjour Arthur-s,

    En règle générale, quand il y a 0x...5 c'est un souci de droits. Et celui-ci je peux t'assurer que c'est ça. Attention que powershell n'existe pas sous linux. Soit tu installer powershell core et tu "essaies" de faire des recherches par ce biais-la, soit tu lance powershell qui lui va lancer une session SSH et faire tes commandes à distances.


    The key of learning is practice.

    lundi 15 février 2021 09:41
  • [...powershell n'existe pas sous linux..]

    Inexact ! Windows Powershell n'existe pas effectivement sous linux - ou tout autre OS - mais powershell oui. Il fut un temps nommé Powershell  Core (ce qui correspond à la version 6.x), puis a adopté définitivement le nom Powershell  à partir de la version 7.

    Windows Powershell s'appuie sur Windows .Net qui n'existe pas sur les autres OS. Cependant, et ce depuis des années, Windows .Net est passé Open-Source par MS et cela a donné .Net core qui fut alors décliné sur différents OS. Ensuite, Windows Powershell a été revu pour devenir Powershell en s'appuyant sur .net core (et Windows .net pour l'OS Windows, car ce dernier est bien plus riche que .net core actuellement. Cela dit .net core s'enrichit régulièrement par la communauté). Bien entendu, les binaires Powershell sont différents selon les OS.

    On peut avoir un script PS qui tourne indifféremment sur un OS Windows ou non sans pb et qui s'adresse indifféremment à des machines distantes Windows ou autre OS. Il faut juste le prévoir (facile avec les 3 variables prédéfinies $IsLinux, $IsWindows et $IsMacOs) et en tenir compte.

    Dernier point, certaines cmdlets sont "OS specific" et ne peuvent être utilisée que pour un OS particulier (ex. le système de fichier est différent selon les OS, et les cmdlets correspondantes sont donc différentes).

    Olivier

    mardi 16 février 2021 14:51
  • "mais powershell oui" => ce n'est pas moins inexact. Il ne l'est pas par défaut il faut l'installer.

    "...tu installe powershell core..." => Ca sous-entend que quand je parlais de PowerShell je parlais bien de Windows Powershell, si je dois préciser ce point alors que par après je parle de la version Core, ça va devenir délicat.


    The key of learning is practice.

    mardi 16 février 2021 15:41