Ich verwende den folgenden Code Mitglieder der lokalen Administrator-Gruppe zu bestimmen:Print Lokale Gruppenmitglieder in 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"
Dieser Code funktioniert in Powershell 2,0-4,0. Auf meinem Windows 10-Computer mit PowerShell 5.0 bricht es jedoch. Für jedes lokale Konto, das ein Mitglied der lokalen Administrator-Gruppe ist, wirft es die folgenden Fehler:
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
für Domänenkonten, die ein Mitglied der Administratoren sind, wird kein Fehler erzeugt.
Die Sache, die mich verwirrt, ist GetType()
ist ein Mitglied des Objekts (ich führte den Befehl von Hand), so dass ich nicht sicher bin, warum es aus Fehler.
Ich schaute auf das Änderungsprotokoll für PowerShell 5.0 und sah nichts, das dieses Verhalten offensichtlich erklären würde.
Warum passiert das? Gibt es eine bessere Möglichkeit zum Drucken von Mitgliedern einer lokalen Gruppe in PowerShell 5.0?
Das hat es behoben. Getestet in XP (PowerShell 2.0), Windows 7 (PowerShell 4.0) und Windows 10 (PowerShell 5.0). –