J'utilise le code suivant pour déterminer les membres du groupe local Administrateurs:groupe local Membres PowerShell 5.0
$obj_group = [ADSI]"WinNT://localhost/Administrators,group"
[email protected]($obj_group.Invoke("Members"))|foreach{$_.GetType().InvokeMember("Name","GetProperty",$null,$_,$null)}
Write-Output "Current local Administrators: $members"
Ce code fonctionne dans PowerShell 2,0 - 4,0. Cependant, sur mon ordinateur Windows 10 avec PowerShell 5.0, il casse. Pour chaque compte local qui est un membre du groupe local Administrateurs, il jette l'erreur suivante:
Error while invoking GetType. Could not find member.
At line:2 char:54
+ ... "))|foreach{$_.GetType().InvokeMember("Name","GetProperty",$null,$_,$ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], MissingMemberException
+ FullyQualifiedErrorId : System.MissingMemberException
Pour les comptes de domaine qui sont membres des administrateurs, à aucune erreur. La chose qui me laisse perplexe est GetType()
est un membre de l'objet (j'ai tracé la commande à la main), donc je ne suis pas sûr pourquoi il fait erreur.
J'ai regardé le changelog pour PowerShell 5.0 et n'ai rien vu qui puisse expliquer ce comportement.
Pourquoi cela se produit-il? Y a-t-il une meilleure façon d'imprimer les membres d'un groupe local dans PowerShell 5.0?
Cela l'a corrigé. Testé sous XP (PowerShell 2.0), Windows 7 (PowerShell 4.0) et Windows 10 (PowerShell 5.0). –