Jump to content
c0smic

Feld Password Expired auslesen

Recommended Posts

Hallo zusammen,

ich versuche mich gerade, in Powershell einzulesen, bin also noch ziemlich frisch im Thema.

Gegeben ist eine CSV-Datei mit Benutzernamen.

Bei diesen Benutzern soll geprüft werden, ob das Flag "PasswordNeverExpires" auf True oder False steht.

 

Folgendes Script funktioniert zwar, ignoriert aber vollkommen meine CSV und führt die Abfrage über die komplette AD aus und gibt mir auch nicht den Wert True/False zurück:

 

Import-Csv -Path "c:\temp\usernames.csv"
Search-ADAccount -PasswordNeverExpires | FT samaccountName,ObjectClass -A

 

Was mache ich hier falsch? Bzw. gibt es eine bessere Methode?

Als Endergebnis hätte ich gerne eine CSV mit den Usern und einer weiteren Spalte PasswordNeverExpires True oder False.

 

Vielen Dank schon mal für eure Hilfe!

 

 

Share this post


Link to post
Share on other sites

Ohne ObjectClass -A funktioniert bei mir auf der PS die Ausgabe korrekt. Allerdings importiere ich kein CSV.

Edited by Sunny61

Share this post


Link to post
Share on other sites

Moin,

 

von der Logik her ist es ziemlich einfach, warum es nicht funktioniert: Dein Skript macht was völlig anderes, als du willst.

 

Zeile 1 importiert eine CSV-Datei, macht aber nichts damit.

Zeile 2 durchsucht das AD nach Konten, bei denen  "PasswordNeverExpires" zutrifft. Das Ergebnis wird dann in einer Tabelle ausgegeben, die die Spalten SAM-Name und Objektklasse enthält.

 

Also bekommst du alle AD-User mit festem Kennwort zurück mit der Angabe, dass es sich um User handelt. Mit der CSV-Datei hat das nichts zu tun.

 

Wenn du in der PowerShell noch nicht firm bist, dann arbeite lieber erst mal mit einfacheren Beispielen. 

 

Gruß, Nils

 

Share this post


Link to post
Share on other sites

Hi,

 

die CSV "ins Leere" importieren dürfte auch nicht hilfreich sein. ;) Des Weiteren wirst du deine Aufgabe vermutlich auch nicht mit "Search-ADAccount" lösen können bzw. dürfte es einfachere Wege geben. Daher:

  1. Import-CSV (in eine Variable): https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-6
  2. ForEach (zum zeilenweise Durcharbeiten der CSV): https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_foreach?view=powershell-6
  3. Get-ADUser (um "PasswordNeverExpires" je User auszulesen): https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-aduser?view=win10-ps

Gruß

Jan

Share this post


Link to post
Share on other sites
vor 1 Stunde schrieb c0smic:
 

ich versuche mich gerade, in Powershell einzulesen, bin also noch ziemlich frisch im Thema.

 

Import-Csv -Path "c:\temp\usernames.csv"
Search-ADAccount -PasswordNeverExpires | FT samaccountName,ObjectClass -A

 

Dein Problem ist nicht powershell-spezifisch. Egal in welcher Sprache gilt:

Wenn du A mit B vergleichen willst solltest du das auch irgendwie programmieren.

 

Manuel

 

Share this post


Link to post
Share on other sites

Äh... ja. Danke für Eure Hilfe!

Die Techdocs hatte ich schon gefunden, schlau draus geworden bin ich nicht, sonst hätte ich nicht hier gefragt.

 

Immerhin weiß ich jetzt, wieso es nicht geht.

Share this post


Link to post
Share on other sites

So... bin ne ganze Ecke weiter, aber leider hänge ich jetzt wieder fest.

 

Mein Script sieht nun folgendermaßen aus:

 

Import-Csv -Path "c:\temp\ps\usernames.csv" | ForEach-Object { 
Get-ADUser -filter "samAccountName -like '*$($_.user)*'" -Properties PasswordNeverExpires} | FL samaccountname, PasswordNeverExpires

 

Die CSV wird gelesen, Output sieht auch gut aus,  allerdings macht die Schleife nach dem ersten Eintrag nicht weiter.

Eine Fehlermeldung gibt es allerdings auch nicht...

 

Share this post


Link to post
Share on other sites

Moin,

 

der übliche Weg ist, dass du eine CSV-Datei in eine Objektvariable importierst. Diese kannst du dann mit ForEach auswerten.

https://ss64.com/ps/import-csv.html

 

Dein Kommando dürfte die ganze CSV als ein Objekt behandeln, wodurch eben nur ein Durchlauf der Schleife stattfindet, nicht einer pro Zeile.

 

Gruß, Nils

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Werbepartner:



×
×
  • Create New...