none
Méthode create sur un objet [ADSI]WinNT RRS feed

  • Question

  • Bonjour,

    Je sais comment créer un compte utilisateur local via un objet ADSI avec le fournisseur WinNT mais je n'arrive pas à le justifier.

    Je m'explique, la manip est la suivante : $ordi = [ADSI]"WinNT://." puis $user=$ordi.create("user","nomUtilisateur") et enfin $user.SetInfo()

    La hiérarchie des classes WinNT montre que la méthode "create" se trouve dans l'interface IADsContainer (http://msdn.microsoft.com/en-us/library/aa705985(v=VS.85).aspx) . Comment lister cette méthode avec Get-Member sous Powershell ? et ainsi découvrir les autres (comme "delete" par exemple).

    J'ai beau faire $ordi | gm ou $ordi.PSBase | gm pas de méthode "create" en vue...

     


    Cordialement, Thierry
    dimanche 21 novembre 2010 00:50

Réponses

  • Bonjour,

    je pense que l'objet COM est adapté en interne, donc coté documentation ce sera un peu juste ;-)

    $comp = [adsi] "WinNT://."
    Trace-Command MemberResolution {$user = $comp.Create("User", "Test")} -PSHost
    Trace-Command MemberResolution {$user = $comp.PSbase.Children} -PSHost
    Trace-Command MemberResolution {$user = $comp.psbase.Invoke("Create",@("User", "Test")) } -PSHost

    La dernière instruction effectue la même opération, mais en plus verbeux, il se peut que le parseur de PowerShell construise ce type d'appel.

    Une autre piste :

    Trace-Command MemberResolution {$user = $comp.Crate("User", "Test")} -PSHost
    Resolve-Error #cf. Blog MS PowerShell
    

    Cela renvoi la pile d'appel qu'on peut étudier via Reflector, si on le souhaite...

    ;-)

     


    Beatus, qui prodest, quibus potest.
    lundi 22 novembre 2010 21:02
    Modérateur