baddog
Goto Top

Wie User via Powershell erst deaktivieren und dann löschen (2 Scripte)

Gibt es einen Weg (ich vermute das es ihn gibt) die folgenden zwei Probleme mit entsprechend zwei Powershell-Scripten zu lösen?

1. Problem: Alle Userkonten der Domäne Test deaktivieren und in die OU "deaktiviert" verschieben, die folgende Kriterien aufweisen:

1. Das Konto des User ist aktiviert
2. Der User hat sich seit mindestens 30 Tagen nicht mehr eingeloggt

oder

1. Das Konto des Users ist aktiviert aber ohne initiale Anmeldung seit mindestens 30 Tagen


2. Problem: Alle Userkonten der Domäne Test löschen, die folgende Kriterien aufweisen:

1. Das Konto des Users ist derzeit deaktiviert
2. Der User hat sich seit mindestens 60 Tagen nicht mehr eingeloggt
3. Das Konto des Anwenders befindet sich in der OU "Deaktiviert"

Wie müssten die beiden Scripte aussehen?

Vielen Dank für jede Hilfe im voraus!

Content-Key: 493198

Url: https://administrator.de/contentid/493198

Printed on: April 23, 2024 at 07:04 o'clock

Member: NordicMike
NordicMike Sep 08, 2019 updated at 21:10:07 (UTC)
Goto Top
Zitat von @BadDog:
Gibt es einen Weg (ich vermute das es ihn gibt) die folgenden zwei Probleme mit entsprechend zwei Powershell-Scripten zu lösen?
Ja, den gibt es.

Wie müssten die beiden Scripte aussehen?

Mal sehen, ob sich jemand die Mühe macht das für Dich zu schreiben. Wenn nicht, google einfach nach den einzelnen Funktionen.
Member: cykes
cykes Sep 09, 2019 at 05:31:26 (UTC)
Goto Top
Moin,

ein paar Ansätze findest Du in folgendem Script in der TechNet Gallery: https://gallery.technet.microsoft.com/scriptcenter/Remove-Inactive-user- ...

und https://gallery.technet.microsoft.com/scriptcenter/8f5016c1-c77b-4e95-8f ...

Das musst Du natürlich noch nach Deinen Kriterien anpassen.

Was sich mir noch nicht so ganz erschließt ist Punkt 2.2. - wenn der User bereits deaktiviert ist und in der entsprechenden OU, warum dann die erneute Überprüfung auf 60 Tage inaktiv, er kann sich ja nicht mehr anmelden, da deaktiviert. Hätte sich vermutlich bereits gemeldet und um Aktivierung des Accounts gebeten.

Gruß

cykes
Member: BadDog
BadDog Sep 09, 2019 updated at 06:20:38 (UTC)
Goto Top
Zitat von @cykes:

Was sich mir noch nicht so ganz erschließt ist Punkt 2.2. - wenn der User bereits deaktiviert ist und in der entsprechenden OU, warum dann die erneute Überprüfung auf 60 Tage inaktiv, er kann sich ja nicht mehr anmelden, da deaktiviert. Hätte sich vermutlich bereits gemeldet und um Aktivierung des Accounts gebeten.

Gruß

cykes


Das stand so in der Anforderung des Übungsbeispiels. (Nur eine Vermutung meinerseits: Hier soll, unabhängig vom "Sinn" erst mal gecheckt werden, ob der richtige Befehl gefunden bzw. angewendet wird)

@ Nordic Mike

Nein, das mir jemand gleich das ganze Script auf dem Silbertablett liefert, erwarte ich nicht. face-smile Das wäre auch nicht zielführend, da ich schon einen Lerneffekt anstrebe. Ich versuche jetzt mal entsprechen, mit den Quellen von Cykes zu kreieren, das poste ich dann und dann hoffe ich auf Feedback. Ich bin halt noch Anfänger in Sachen Scripting. Wenn ich gar nicht mehr weiter weiß, das kann ich immer noch die weiße Flagge hissen, aber soweit ist es noch nicht.

Danke an euch beide erst mal, bis hierhin! face-smile
Member: BadDog
BadDog Sep 09, 2019 at 07:52:27 (UTC)
Goto Top
An alle netten Hilfesteller! face-smile

Ich habe für die im Eingangsposting beschriebenen Probleme, einmal die aus meiner Sicht notwendigen Befehle aufgelistet. Wenn einer oder auch mehrere der Befehle "Quark" sind, dann ruhig ganz offen sagen und schön wäre es natürlich dann auch, den entsprechend richtigen Befehl anzugeben. face-smile Wie unten ersichtlich sollen einige Ausgabe-Ergebnisse in CSV-Dateien gespeichert werden. (Halte ich persönlich zur Übersicht nicht für verkehrt)

Ist mein Ansatz soweit korrekt? Im nächsten Schritt werde ich dann sehen, wie ich die Befehle in lauffähige Scripte integriere.


1. Problem

#Das Konto des User ist aktiviert
Search-ADaccount –Lockedout –UsersOnly | Export-CSV “C:\Temp\AktivierterUser.csv” -NoTypeInformation -Encoding UTF8

#Der User hat sich seit mindestens 30 Tagen nicht mehr eingeloggt
Search-ADaccount –Active -Timespan 30 –UsersOnly | Export-CSV “C:\Temp\AktivierterUser_NoLog30Days.csv” -NoTypeInformation -Encoding UTF8


2. Problem

#Das Konto des Users ist derzeit deaktiviert
Search-ADaccount –Inactive -UsersOnly | Export-CSV “C:\Temp\DeaktivierteUser.csv” -NoTypeInformation -Encoding UTF8

#Der User hat sich seit mindestens 60 Tagen nicht mehr eingeloggt
Search-ADaccount –Inactive -Timespan 60 –UsersOnly | Export-CSV “C:\Temp\AktivierterUser_NoLog60Days.csv” -NoTypeInformation -Encoding UTF8

#Das Konto des Anwenders befindet sich in der OU "Deaktiviert"
Search-ADAccount -SearchBase "OU=Deaktiviert,DC=Test,DC=com" | Export-CSV “C:\Temp\DektivierterUser_OUDeaktiviert.csv” -NoTypeInformation -Encoding UTF8

#Ausführen der Löschung
Search-ADAccount -SearchBase "OU=Deaktiviert,DC=Test,DC=com"-AccountDisabled -UsersOnly |
Remove-ADAccount -WhatIf