Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

Gelöst von Maniska

Zur Lösung

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.

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!

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.

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.

Du kannst auch mit der PowerShell ein GUI basteln ?

Für solche Aufgaben würde ich auch eine Excelliste verwalten, welche 1x pro Tag zeitgesteuert ausgewertet wird. Das reduziert den Aufwand und lässt sich in PowerShell wirklich ohne große Probleme abbilden.

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"
    }
}

 

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.