mortis

AD User mit bestimmten Attributen per PS Script exportieren

Moin,
ich bin gerade dabei aus Sicherheitstechnischen Gründen alle AD User zusammen zu tragen, welche sich mit dem RAS Server verbinden können.
Das wollte ich mithilfe eines Powershell Skriptes machen und habe mir da bislang folgendes überlegt:

Get-ADUser -Filter 'msNPAllowDialin' | Select-Object name,msNPAllowDialin| Export-Csv c: \

Leider bekomme ich dann aber den folgenden Fehler und auch rumprobieren hat mich bisher nicht weitergebracht. Vielleicht kann mir ja hier jemand weiterhelfen, schon einmal vielen Dank face-smile


Get-ADUser : Fehler beim Analysieren der Abfrage: "msNPAllowDialin" Fehlermeldung: "syntax error" an folgender
Position: "1".
In Zeile:1 Zeichen:1

back-to-topGet-ADUser -Filter 'msNPAllowDialin' | Select-Object name,msNPAllowDi ...

back-to-top~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : ParserError: (face-smile [Get-ADUser], ADFilterParsingException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADFilterParsingException,Micr
osoft.ActiveDirectory.Management.Commands.GetADUser
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 1759185594

Url: https://administrator.de/forum/ad-user-mit-bestimmten-attributen-per-ps-script-exportieren-1759185594.html

Ausgedruckt am: 17.05.2025 um 00:05 Uhr

SlainteMhath
SlainteMhath 25.01.2022 um 09:13:22 Uhr
Goto Top
Moin,

ein Blick in die Doku wirft heutzutage wohl niemand mehr, oder? Hier https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-a ... findest du die Bechreibung wie ein Filter auszusehen hat:
<filter> ::= "{" <FilterComponentList> "}"  

<FilterComponentList> ::= <FilterComponent> | <FilterComponent> <JoinOperator> <FilterComponent> | <NotOperator> <FilterComponent>

<FilterComponent> ::= <attr> <FilterOperator> <value> | "(" <FilterComponent> ")"  

<FilterOperator> ::= "-eq" | "-le" | "-ge" | "-ne" | "-lt" | "-gt"| "-approx" | "-bor" | "-band" | "-recursivematch" | "-like" | "-notlike"  

<JoinOperator> ::= "-and" | "-or"  

<NotOperator> ::= "-not"  

<attr> ::= <PropertyName> | <LDAPDisplayName of the attribute>

<value>::= <compare this value with an <attr> by using the specified <FilterOperator>>
colinardo
colinardo 25.01.2022 aktualisiert um 10:49:30 Uhr
Goto Top
Zitat von @SlainteMhath:
ein Blick in die Doku wirft heutzutage wohl niemand mehr, oder?
Tja hat sich wohl bei so manchem immer noch nicht rum gesprochen face-smile.
Get-ADUser -Filter {msNPAllowDialin -eq $true} -Properties msNPAllowDialin | select Name,msNPAllowDialIn | export-csv .\users.csv  -Delimiter ";" -NoType -Encoding UTF8  

screenshot

Ob für eine Abfrage ob das einem User Zugang ermöglicht ist diese Abfrage ungeeignet, denn dem User kann über die NPS-Regeln ja die Einwahl trotzdem erlaubt werden (sofern vorhanden) und dafür muss das Attribut nicht gesetzt sein face-wink.
Du musst also zusätzlich die Mitglieder der hinterlegten Gruppen in den NPS-Policies ebenfalls auslesen um ein Gesamtbild zu erhalten.

Grüße Uwe
Mortis
Lösung Mortis 25.01.2022 um 10:04:27 Uhr
Goto Top
Also der Tipp mit den Filtern hat mir leider nicht geholfen.
Nach längerem suchen und rumprobieren hat es so funktioniert.

Get-ADUser -filter * -Properties * | ? {$_.msNPAllowDialin} | Select-Object CN,SamAccountName,msNPAllowDialin | Export-Csv c:\Users\admin\Desktop\list.csv

Mit NPS-Regeln arbeiten wir nicht, von daher ist eine solche Abfrage völlig genug, danke trotzdem face-smile
SlainteMhath
SlainteMhath 25.01.2022 um 11:30:48 Uhr
Goto Top
Ok, ich hoffe du fährst die Abfrage nich zu oft. Mit " -filter * -Properties *" wird der/die DC(s) maximal belastet - es werden bei jedem Lauf immer alle Eigenschaften von allen Userobjekten abgerufen. Sei dann aber konsequent und pack' noch ein "-ResultSetSize $NULL" ran
Mortis
Mortis 26.01.2022 um 07:58:53 Uhr
Goto Top
Alles klar, vielen Dank.