none
Powershell V5 - Get-aduser samaccountname ne fonctionne plus RRS feed

  • Question

  • Bonjour,

    Depuis mon passage à Windows 10, j'ai la commandlet powershell "get-aduser abc123" (abc123 étant mon login windows) qui ne fonctionne plus et me donne cette erreur :

    Get-ADUser : Impossible de lier le paramètre «Identity». Impossible de convertir la valeur en type «Microsoft.ActiveDirectory.Management.ADUser
    ». Seuls les types principaux sont pris en charge dans ce mode de langage.
    Au caractère Ligne:1 : 12
    + get-aduser abc123
    +            ~~~~~~~
        + CategoryInfo          : InvalidArgument : (:) [Get-ADUser], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADUser

    Sur powershell 4, je n'ai pas ce problème.

    Je suis en version Windows 10

    Name                           Value                                                                                                            
    ----                           -----                                                                                                            
    PSVersion                      5.1.16299.1146                                                                                                   
    PSEdition                      Desktop                                                                                                          
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                          
    BuildVersion                   10.0.16299.1146                                                                                                  
    CLRVersion                     4.0.30319.42000                                                                                                  
    WSManStackVersion              3.0                                                                                                              
    PSRemotingProtocolVersion      2.3                                                                                                              
    SerializationVersion           1.1.0.1 

    Le problème qui va se poser est que j'ai un serveur de script qui utilise beaucoup cette fonction et si cette fonction ne marche plus, je vais devoir changer tous mes scripts.

    La commande "get-aduser -filter {samaccountname -eq "abc123"} fonctionne elle très bien.

    Merci pour votre aide,
    Jonathan GAY

    mardi 13 août 2019 13:58

Toutes les réponses

  • Bonjour, et si vous utiliser la commande avec "Get-Aduser -Identity abc123" ?

    https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-aduser?view=win10-ps


    vote if you think useful



    • Modifié F.ABASSI mardi 13 août 2019 14:15
    mardi 13 août 2019 14:15
  • Bonjour,

    J'ai le même problème sur mon poste W10 : avec ou sans le -Identity, on dirait qu'une valeur <samAccountName> n'est plus reconnue, bien que le technet indique qu'on peut utiliser au choix :

    • A distinguished name
    • A GUID (objectGUID)
    • A security identifier (objectSid)
    • A SAM account name (sAMAccountName)

    Ca semble lié au LanguageMode du PC ? Dans ISE, en tappant 

    $ExecutionContext.SessionState

    Je vois que je suis en 

    LanguageMode                  : ConstrainedLanguage

    Ce qui semblerait être la cause du problème. Je vais poursuivre mes tests pour voir si changer ce langage mode peut résoudre le problème.

    Bonne journée, 


    • Modifié MarionDi mercredi 14 août 2019 14:21
    mercredi 14 août 2019 14:19
  • Bonjour,

    J'ai le même problème sur mon poste W10 : avec ou sans le -Identity, on dirait qu'une valeur <samAccountName> n'est plus reconnue, bien que le technet indique qu'on peut utiliser au choix :

    • A distinguished name
    • A GUID (objectGUID)
    • A security identifier (objectSid)
    • A SAM account name (sAMAccountName)

    Ca semble lié au LanguageMode du PC ? Dans ISE, en tappant 

    $ExecutionContext.SessionState

    Je vois que je suis en 

    LanguageMode                  : ConstrainedLanguage

    Ce qui semblerait être la cause du problème. Je vais poursuivre mes tests pour voir si changer ce langage mode peut résoudre le problème.

    Bonne journée, 


    Vous pourrez changer le language mode en full et tester:

    $ExecutionContext.SessionState.LanguageMode = "FullLanguage"


    vote if you think useful


    • Modifié F.ABASSI mercredi 14 août 2019 14:50
    mercredi 14 août 2019 14:49
  • En ouvrant PowerShell ou PowerShell ISE avec les privilèges Administrateur - je n'ai pas eu le problème.


    -- Thibault


    • Modifié ThibaultG mercredi 25 septembre 2019 10:08
    mercredi 25 septembre 2019 09:33
  • Bonjour,

    Je suis sous windows 10 et la commande get-aduser toto me renvoie bien un résultat.

    PS C:\> $psversiontable

    Name                           Value
    ----                           -----
    PSVersion                      5.1.17763.592
    PSEdition                      Desktop
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
    BuildVersion                   10.0.17763.592
    CLRVersion                     4.0.30319.42000
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    SerializationVersion           1.1.0.1


    Merci de marquer comme reponses les interventions qui vous ont ete utile.

    mercredi 25 septembre 2019 10:05
  • @MarionDi

    tu as bien identifié la source de ton prbolème. Plus d'infos ici https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/

    et on trouve marqué textuellement

    PowerShell module script files must explicitly export functions by name without the use of wildcard characters.
    This is to prevent inadvertently exposing powerful helper function not meant to be used publicly.

    Ce mode de fonctionnement peut etre changé facilement. Plus d'info avec help about_language_mode

    ou comme l'a indiqué Fethy

    $ExecutionContext.SessionState.LanguageMode = "FullLanguage"

    Oliv


    mercredi 25 septembre 2019 20:56