Zum Inhalt springen
  • 0

Änderungen in Domäne planen


Gast NerdFs

Frage

Hi, 

ich hoffe es hat jemand eine Idee für folgenden Problematik. Es geht um eine Windows 2012R2 Domäne, welche ich bis jetzt nur mit den Windows Tools administriere. Nun habe ich häufig den Fall, dass ich Änderungen in der Zukunft vornehmen muss, z.B. wenn ein Nutzer ab einem gewissen Datum in eine andere Gruppe wechselt oder sich die OU tauscht. Gibt es denn irgendwo ein einfaches Tool, mit dem man solche Änderungen im voraus planen und zu einem bestimmten Zeitpunkt dann automatisch übernommen werden kann? Da wir ein gemeinnütziger Verein sind, sind die finanziellen Mittel recht dünn, daher wäre ein was kostengünstiges Super.

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

8 Antworten auf diese Frage

Empfohlene Beiträge

  • 1

Gibt natürlich eine Menge kostenpflichtige Tools, die das können.
Kostenfrei pflichte ich Maniska da zu. Powershell mit der Aufgabenplanung.
Musst Dich da halt reinfuchsen, gibt aber viele Vorlagen für die meisten Dinge, die Du nur anpassen musst.
Trotzdem würde ich mir die Syntax anschauen, um zu verstehen was da passiert. Powershell schadet als Admin nie.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1

Naja, mit der Powershell müsste es auch möglich sein, aus einer CSV Datei ein Datum auszulesen. Also rennt dein Script z.B. tägöich um 3 Uhr früh, überprüft die Einträge einer CSV Wenn $Datum in CSV >= aktuelles Datum, dann entferne $User aus $GruppeXYZ und füge zu $GruppeABC hinzu.

Könnte gehen, dafür bin ich aber zu wenig im Thema, gerade in Verbindung mit CSV, drin.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1

Du musst auch nicht jedes mal ein neues script anlegen.

Du kannst dir ne einfache Textdatei erstellen und darin das Datum der gewünschten Ausführung, ein geeignetes Trennzeichen und den nötigen Befehl in Powershell abspeichern.

14.06.2018:Add-ADGroupMember -Identity <Gruppe> -Members <Benutzer>

Dein Script liest dann die Datei, prüft das Datum und führt den Befehl per Invoke-Expression aus.

Möchte man einen eher anspruchsvollen Ansatz, kann man statt der fertigen Befehle auch eine eigene Syntax basteln

14.06.2018 GROUP ADD MeineGruppe
14.06.2018 GROUPMEMBER ADD MeineGruppe Benutzername

Dadurch wird das Script deutlich komplexer. Allerdings umgeht man so Invoke-Expression.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Danke für die Infos. Mit Powershell beschäftige ich mich schon eine Weile. Allerdings fehlt mir noch eine Anhaltspunkt, wie ich damit eine Art "Stapel" anlege um die Änderungen zeitgesteuert durchzuführen. Die Änderungen in der Domäne durchzuführen via Powershell sind nicht das Problem. Nur habe ich irgendwie an ein einfaches GUI gesucht :) solche Änderungen zu erfassen und dann nachts z.B. zu übertragen. Wollte nicht jedes mal ein Script dafür anlegen bzw. bearbeiten. Aber die Idee mit der Aufgabenplanung ist ganz gut. Danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Hier mal mein erster Entwurf dazu. Kann sicher noch einiges ausgebaut werden, aber funktioniert soweit erst einmal. Vielen Dank für die Tipps!

 

$Changes = Import-Csv -Delimiter "`t" -Path .\veraenderungen.txt | Where-Object {$_.datum -eq "$(Get-Date -UFormat "%d.%m.%Y")"}
$logfile = ".\log.txt"

Function LogWrite
{
    Param([string]$logline)
    $logdate = get-date -format "yyyy-MM-dd HH:mm:ss"
    $text = "["+$logdate+"] " + $logline
    $text >> $logfile
}

ForEach($Change in $Changes){
 
    $username = $Change.Benutzer
    # prüfe ob Benutzer exsistiert
    if(Get-ADUser -Filter {SamAccountName -eq $username})
    {
        switch($Change.Aktion)
        {
            add-group {
                $group = $Change.Parameter
                # prüfe ob Gruppe existiert
                if(Get-ADGroup -Filter {SamAccountName -eq $group}) {
                    Add-ADGroupMember -Identity $group -Members $username
                    LogWrite -logline "Benutzer $username der Gruppe $group hinzugefügt"
                }
                else {
                    LogWrite -logline "Gruppe $group wurde nicht gefunden"
                }
            }
            remove-group {
                $group = $Change.Parameter
                if(Get-ADGroup -Filter {SamAccountName -eq $group}) {
                    Remove-ADGroupMember -Identity $group -Members $username -Confirm:$false
                    LogWrite -logline "Benutzer $username aus der Gruppe $group gelöscht"
                }
                else {
                    LogWrite -logline "Gruppe $group wurde nicht gefunden"
                }
            }
        }
    }
    else
    {
        LogWrite -logline "Benutzer $username wurde in der AD nicht gefunden"
    }
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...