Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell Filtern

Frage Entwicklung Batch & Shell

Mitglied: mguenth83

mguenth83 (Level 1) - Jetzt verbinden

28.08.2013, aktualisiert 13:19 Uhr, 2498 Aufrufe, 6 Kommentare, 1 Danke

Hi,
ist vielleicht ne blöde Frage aber wie kann ich nach einem Property Filtern?

Ziel des Skriptes ist es alle User aus dem AD aufzulisten die nicht in der Gruppe Passwort sind.

01.
Get-ADUser -Filter { Name -Like "*" } -SearchBase "OU=Benutzer,DC=CONTOSO,DC=DE" -Properties *
Das Script zeigt mir jetzt schon mal alle User mit den Properties an...jetzt will ich im Endeffekt die User rausfiltern sind nicht in der Gruppe Passwort sind. Diese User sollen das aufgelistet werden.

Gruß
Matthias
Mitglied: CooC
28.08.2013, aktualisiert um 13:24 Uhr
Hallo Matthias,

<dein_kommando> | where {$_ -match "<dein_muster>"}

dürfte das sein was du suchst!
Bitte warten ..
Mitglied: 106543
28.08.2013 um 13:32 Uhr
<dein_kommando> | where {$_ -match "<dein_muster>"}
eher
01.
<dein_kommando> | where {$_ -NOmatch "<dein_muster>"}
Bitte warten ..
Mitglied: mguenth83
28.08.2013 um 13:42 Uhr
Habe es jetzt ergänzt aber leider bekomme ich keine Ausgabe
01.
Get-ADUser -Filter { Name -Like "*" } -SearchBase "OU=Benutzer,DC=CONTOSO,DC=DE" -Properties * | where {$_ -match "PASSWORT"}

Vielleicht liegt es daran das der Inhalt in Klammern steht und er es deswegen nicht findet ?

01.
MemberOf                           : {CN=PASSWORT,OU=Gruppen,DC=CONSOTO,DC=de,}
Bitte warten ..
Mitglied: colinardo
28.08.2013, aktualisiert um 15:56 Uhr
Hallo Matthias,
das kannst du zuverlässiger so machen:
01.
#hole alle Benutzer im AD 
02.
$allUsers = Get-AdUser -Filter * 
03.
 
04.
#hole nur die Benutzer in der Gruppe "Passwort" inklusive User in Untergruppen 
05.
$groupPassUsers = Get-AdGroupMember -Identity "Passwort" -recursive 
06.
 
07.
#Vergleiche beide Objekte miteinander und ziehe die Nutzer in der Gruppe "Passwort" davon ab 
08.
$diffUsers = Compare-Object -ReferenceObject $allUsers -DifferenceObject $groupPassUsers 
09.
$diffUsers
Es zeigt dir alle Nutzer die nicht in der Gruppe Passwort sind.

Grüße Uwe
Bitte warten ..
Mitglied: filippg
28.08.2013, aktualisiert um 16:02 Uhr
Hallo,

"where {$_ -match "PASSWORT"}" kann nicht so richtig funktionieren, weil du nicht angibst, welches Property gematcht werden soll.
Ich würde einen Test mit " | where {$_.memberOf -notlike "*CN=PASSWORT,OU=Gruppen*"} " empfehlen (ich bilde mir auch ein, dass -notlike/-like schneller als -nomatch/match sein, weil letztere auch RegEx parsen).

Gruß

Filipp

Edit: alle hier gezeigten Ansätze haben natürlich den Nachteil, dass sie erst alle Nutzer laden, und dann die unerwünschten mit "where" aussortieren. Hübscher wäre es, gleich nur die richtigen zu bekommen. Mit dem "-Filter"-Attribut kann man nicht immer alles filtern, was man will, wie es sich bei Get-ADUser verhält weiß ich nicht. Aber mindestens mit dem -LDAPFilter-Attribut kann man die Auswahl von vorneherein auf die gewünschten Nutzer einschränken. Websuche nach "get-aduser filter group" hilft dir bestimmt weiter.

Edit 2:
$diffUsers = Compare-Object -ReferenceObject $allUsers -DifferenceObject $groupPassUsers
Ich kann das gerade (mangels Server) nicht testen - funktioniert das? Ich dachte, Get-AdUser liefert einen User, während Get-AdGroupMember einen anderen Datentyp liefert (GroupMember können ja auch Gruppen und im Zweilfesfall sogar Kontakte sein), und die Datentypen lassen sich nicht vergleichen (wenn man wiederum nur den DN selektiert, müsste es gehen)
Bitte warten ..
Mitglied: mguenth83
30.08.2013 um 10:07 Uhr
Hi,
bin endlich wieder mal am PC und wollt Euch rückmeldung geben. Danke an colinardo das Script hat soweit funktioniert. Habe ein paar Kontrollen ausgeführt und es scheint alles richtig zu sein. Filppg deine Variante habe ich noch nicht ausprobiert aber werde ich auf jedenfall am Wochenende in einer ruhen Minute mal angehen und gebe das Rückmeldung

Danke nochmal an alle die mir bei den ersten Schritten in Sachen Powershell geholfen haben.

Gruß
Matze
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell EventLog informationen filtern (1)

Frage von derhoeppi zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Hashtable to Übersichtliche Darstellung (2)

Frage von Marabunta zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Mauszeiger ausblenden (11)

Frage von Marabunta zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...