Jump to content

Kuddel071089

Members
  • Gesamte Inhalte

    559
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Kuddel071089

  1. Moin,

     

    ich verstehe nicht, was du vorhast. Ablaufdatum?

    Deaktivieren kann OldCmp direkt.

     

    Falls du unbedingt was mit PowerShell bauen willst, dann nimm das AD-Feld lastLogonTimestamp. Das ist für Vergleiche der hier erwünschten Art gedacht und wird üer alle DCs repliziert, du musst also nicht alle DCs auslesen. Den Wert lastLogon und den Vergleich über die DCs braucht man nur, wenn man aktuelle Daten benötigt (letzte Anmeldung in den letzten wenigen Tagen), aber die brauchst du hier ja gerade nicht.

     

    Gruß, Nils

     

    Was ich vorhabe:

     

    Wenn sich ein User länger als 180 Tage nicht angemeldet hat, wird sich User per Ablaufdatum gesperrt. Falls er jetzt nach z.B. 200 Tagen aus einer langen Krankheit zurück kommt, wird der User wieder freigeschaltet.

     

    Wenn sich ein User länger als z.B. 360 Tage nicht angemeldet hat. wird er deaktiviert und alle Gruppenmitgliedschaften entzogen...

     

    Ich werde es dann mal mit LogonTimeStamp versuchen....

  2. Moin,

     

    nicht selbst bauen, das Thema ist seit Jahren abschließend gelöst.

     

    [Leichenzählung in Active Directory | faq-o-matic.net]

    https://www.faq-o-matic.net/2011/08/29/leichenzhlung-in-active-directory/

     

    Gruß, Nils

    Hallo Nils,

     

    vielen Dank für die schnelle Antwort.

     

    Mit dem PS Skript wollte ich, wenn denn alles klappt, den Usern ein Ablaufdatum setzten bzw. die ganz alten direkt deaktivieren.

     

    Wenn ich jetzt eine Auswertung mit oldcmp machen, müsste ich dann also die Daten verarbeiten richtig?

  3. Hallo zusammen,

     

    ich bin gerade dabei ein Skript zu schreiben, welches unser AD von Altlasten befreien soll.

     

    Ziel ist es, alle User zu deaktivieren, die sich länger als 180 Tage nich am System angemeldet haben.

     

    Dazu habe ich folgendes Skript geschrieben, wo ich leider am Vergleich scheitere

    $tage = 180
    
    #Abfrage aller aktiven User
    $aktive_user = Get-ADUser -Filter {enabled -eq $true} -SearchBase "OU=****,DC=****-ad,DC=local" -Properties * | Sort
    
    #Ablaufdatum von vor X Tagen definieren
    $ablaufdatum = (get-date -date ((get-date).AddDays(-$tage)) -Format "dd.MM.yyyy");
    
    "Heute vor 180 Tagen:  $ablaufdatum"
    ""
    
    #Abfrage der letzten Anmeldung jedes Users an den drei DCs
    foreach($user in $aktive_user) {$letzte_anmeldung_dc1 = Get-ADUser $user.SamAccountName -Properties * -Server DC1 | Select LastLogon$letzte_anmeldung_dc2 = Get-ADUser $user.SamAccountName -Properties * -Server DC2 | Select LastLogon$letzte_anmeldung_dc3 = Get-ADUser $user.SamAccountName -Properties * -Server DC3 | Select LastLogon#Datum formatieren fü den Vergleich$letzte_anmeldung_dc1 = [dateTime]::FromFileTime($letzte_anmeldung_dc1.LastLogon).ToString('dd.MM.yyyy')$letzte_anmeldung_dc2 = [dateTime]::FromFileTime($letzte_anmeldung_dc2.LastLogon).ToString('dd.MM.yyyy')$letzte_anmeldung_dc3 = [dateTime]::FromFileTime($letzte_anmeldung_dc3.LastLogon).ToString('dd.MM.yyyy')#Check ob der User sich länger als X Tage nicht angemeldet hatif($letzte_anmeldung_dc1 -lt $ablaufdatum -and $letzte_anmeldung_dc2 -lt $ablaufdatum -lt $letzte_anmeldung_dc3 -gt $ablaufdatum)) {
    
    "Der User $($user.SamAccountName) ist abgelaufen / Letzte Anmeldungen: DC1: $letzte_anmeldung_dc1, DC2: $letzte_anmeldung_dc2; DC3: $letzte_anmeldung_dc3"
    
    }
    
    
    
    }
    
     
    

    Irgendwie wird beim Vergleich nur der erste Tag im Datum verglichen.

     

     

    Vielen Dank schon einmal

  4. Ich hatte eben die Idee, das gnaze als Powershell-Skript zu versuchen:

     

    Wenn die LAN IP erreichbar ist, soll der WLAN-Adapter deaktiviert werden

     

    IF(Test-Connection 192.168.1.5) {disable-netadapter -name "WLAN"}
    else{
    $wlan = Get-NetAdapter -Name "WLAN"
    if($wlan.Status -ne Up) {Enable-NetAdapter -Name "WLAN"}
    }
    

     

    Dazu dann noch eine Geplante Aufgabe erstellen, die bei Anmeldung auslöst und evtl. bei dem Erreignis "Ethernet Status UP".

     

    Was sagt ihr ? Könnte doch funktionieren...

  5. Hallo zusammen,

     

    ich habe gerade mein neues Notebook in Betrieb genommen.

     

    Mit Windows 10. Das alte lief noch mit Windows 7.

     

    Von Windows 7 her kenne ich, dass man die Reihenfolge der LAN-Adapter (LAN / WLAN) einstellen kann.

     

    Spricht wenn ein LAN-Kabel eingesteckt ist geht der Traffic über LAN, ansosten über WLAN.

     

    Wie genau stellt man das bei Win10 ein?

     

    Generell nutze ich WLAN, aber wenn ich z.B. ein Backup mache, geht das über LAN deutlich schneller.

     

    Ich könnte natürlich immer den WLAN Adapter bei LAN Nutzung deaktivieren, aber das ist mir dann doch ein wenig zu umständlich.

     

     

    Vielen Dank schon einmal für eure Antworten

  6. Moin,

     

    warum löst du das nicht über Gruppenrichtlinien? Dafür gibt es die Funktion "Eingeschränkte Gruppen".

     

    Gruß, Nils

     

    Hallo Nils,

     

    wo ich angefangen habe mit dem Skript, habe ich es per GPo versucht.

     

    Umbennen des lokalen Admins hat auch funktioniert.

     

    Die Berechtigung der Admin-Gruppe habe ich alleridngs nicht hinbekommen, weil jeder Server eine eigene Admin-Gruppe hat.

     

    Die allgemeine Admin-gruppe von uns Domain-Admins wird bei jedem Server per GPO zugewiesen.

     

     

    Gruß Kuddel

  7. Hallo zusammen,

     

    in unserer VMware Umgebung werden die VMs per Powershell und Powercli bereitgestellt.

     

    Nach dem die VM aus einem Template erstellt wurde, sollen natürlich noch AD-Gruppen berechtigt werden.

     

    Das Ganze Bereitstellungskript arbeitet dabei eine CSV-Datei mit den Infos zu den VMs ab.

     

    Leider funktioniert die Berechtigung der Gruppe nicht immer sauber.

     

    Aktuell sieht es im Skript so aus

     

    #Check ob Remote-Session verfügbar ist
    while (!(Test-WSMan -ComputerName $servername -EA SilentlyContinue)) {sleep 5}
     sleep 10
     
    #Gruppen auf Server berechtigen
    #Admin-Gruppe berechtigen
    Invoke-Command -ComputerName $servername -ScriptBlock {net localgroup Administrators S-ZBS-$using:servername-Admin /ADD}
    
    #Domain-Admins entfernen
    Invoke-Command -ComputerName $servername -ScriptBlock {net localgroup Administrators Domänen-Admins /DELETE}
    
    #Lokalen Administrator umbennen
    Rename-LocalUser -Name 'Administrator' -NewName 'Inspector' -Computername $servername
    

     

    Irgendwie bräcuhte ich also noch eine Verbesserung der ersten Schleife, so dass ich sicher sein kann, dass die VM auch wirklich erreichbar ist.

     

     

    Vielen Dank schon einmal für eure Hilfe

  8. Und was genau begründet jetzt die Verwendung der gpmc auf genau diesem einen Server? Starte die gpmc einfach nicht dort sondern nur auf den dcs. Problem gelöst.

     

    der 2008er setzt u.a. die GPOs bzgl. WSUS nicht korrekt um. Der Server sollte eigentlich nach der Installation automatisch booten.

     

    Hat er nicht getan. Daher wollte ich lokal schauen, welche Einstellungen gestzt sind, daher -> rsop.msc

  9. Hallo zusammen,

     

    mir ist heute aufgefallen, dass unsere Windows Server 2008 (32bit) Maschinen Probleme mit dem Auslesen der ADMX-  und ADML-Files auf dem Central Store haben.

     

    Es scheint so, als wäre sie veraltet, da wir im Central Store alle ADMX-Files für WIndows Server 2016 liegen haben.

     

    Wenn ich jetzt auf einem der 2008er Server "rsop.msc" ausführe, bekomme ich einen Haufen an Fehlermeldung wie z.B.:

     

    post-68700-0-33092500-1511264079_thumb.jpg

     

    Was genau muss ich jetzt mit den ADMX-Files machen ?

     

    Die neuen auf den 2008er Server kopieren geht auf jeden Fall schon einmal nicht.

     

     

    Vielen Dank schon einmal

  10. Auch das könne wir nicht beurteilen. Das Dateisystem kennst nur Du.

     

    Das Problem ist, dass das DFSr von einem Dienstleister erstellt wurde nicht von uns selbst.

     

    Wenn ich in der DFS Konsole unter Repikation meine Replikationsgruppen angucken und im Reiter Mitgliedschaften einen Server entferne habe ich zwei Möglichkeiten:

     

    "Mitglied löschen und Mitglied als Ziel im Namespace entfernen"  - Dort steht dann ja noch explizit "Der replizierte Inhalt wird auf dem Mitglied nicht gelöscht"

     

    "Nur das Mitglied löschen" - Hier steht leider kein Hinweis bzgl. des replizierten Inhalts....

  11. Viel verrätst du uns nicht.

    Für mich steht in der Fehlermeldung doch schon die Lösung drin.

     

    Was für Infos fehlen noch ?

    Domain Level 2012, auf den beiden Servern, die gesynct werden sollen läuft WinSrv2012 Std

    3 DCs mit WinSrv2012 und 2016

     

    Was wäre denn für dich die Lösung?

  12. Hallo zusammen,

     

    wir haben zwei Server im Einsatz, bei denen zwei Verzeichnisse (D:\APPS) gesynct werden sollen.

     

    Leider funktioniert das nicht mehr.

     

    Da es sich um produktive Server (24/7) handelt, kann ich da nicht so einfach dran rumspielen und muss bei einer geplanten Downtime wissen, wie ich das Problem lösen kann.

     

    Auszug aus dem Eventlog:

     

    Der DFS-Replikationsdienst hat die Replikation für den Ordner unter dem folgenden lokalen Pfad "D:\Apps" beendet. Dieser Server wurde von anderen Partnern für 650 Tage getrennt. Dadurch wird die im Parameter "MaxOfflineTimeInDays" zulässige Dauer überschritten (60). Aus diesem Grund geht der DFS-Replikationsdienst davon aus, dass diese Daten veraltet sind, und dieser Ordner wird vom Server erst nach Korrektur dieses Fehlers wieder repliziert.
     
    Verwenden Sie zum Fortsetzen der Replikation dieses Ordners das DFS-Verwaltungs-Snap-Ins zum Entfernen dieses Servers aus der Replikationsgruppe, und fügen Sie ihn dann der Gruppe erneut zu. Dadurch führt der Server einen ersten Synchronisierungstask aus, wodurch die veralteten Daten durch aktuelle Daten der Mitglieder der Replikationsgruppe ersetzt werden.
     
    Weitere Informationen:  
    Fehler: 9061 (Der replizierte Ordner war zu lange offline.)  
    Name des replizierten Ordners: Apps  
    ID des replizierten Ordners: 6C1ABAD6-19EF-411D-8A7E-A2F7A3944514  
    Replikationsgruppenname: xxxxxx.local\dfs\apps  
    ID der Replikationsgruppe: F076570F-573B-45B9-9F80-7DC74AB2967E  
    Mitglieds-ID: 3F390E53-0DF8-4C77-93A3-79701A4F4A1E
    

     

    Ich hoffe ihr habt eine zündene Idee für mich.

     

    Vielen Dank schon einmal

  13. Habe mir die entsprechenden Tage in eine Variable geschrieben:

    $aktuelles_datum = Get-Date -Format dd.MM.yyyy
    $7_tage = get-date -date $(get-date).adddays(+7) -format dd.MM.yyyy
    $5_tage = get-date -date $(get-date).adddays(+5) -format dd.MM.yyyy
    $1_tag = get-date -date $(get-date).adddays(+1) -format dd.MM.yyyy
    

    Jetzt muss ich nur noch das Ablaufdatum wie oben formatieren

    $user = Get-ADUser Test-5 -Properties * | Select AccountExpirationDate
    $user_ablaufdatum = $user.AccountExpirationDate
    

    EDIT:

     

    Okay, habs gelöst:

    $user = Get-ADUser Test-5 -Properties * | Select AccountExpirationDate
    $user_ablaufdatum = $user.AccountExpirationDate
    $user_ablaufdatum = ($user_ablaufdatum.tostring("dd.MM.yyyy"))
    
  14. Hallo zusammen,

     

    bei uns bekommen externe Mitarbeiter bei der Einrichtung immer ein Ablaufdatum und werde in eine Gruppe aufgenommen, wo alle externen MAs gelistet sind.

     

    Jetzt möchte ich ein PS Skript schreiben, welches die User, sofern sie ein Mail-Adresse haben, bei X Tagen vor dem Ablaufdatum benachrichtigen.

     

    Ich dachte da so an 7 Tage, 5 Tage und 1 Tag.

     

    Mein Ansatz wäre jetzt ersteinmal die Mitglieder der Gruppe abzufragen.

     

    Dann würde ich mir eine Schleife bauen, in der für jeden User das Ablaufdatum abgefragt wird und mit dem aktuellem Datum verglichen wird.

     

    Leider hänge ich gerade ein wenig an dem Vergleich der beiden Daten.

     

     

    cls
    $user = Get-AdUser Test-5 -Properties * | Select AccountExpirationDate
    $userdatum = $user.AccountExpirationDate
    $aktuellesdatum = Get-Date
    if($userdatum -gt $aktuellesdatum) {"NICHT ABGELAUFEN"}
    

     

    Im Vergleich müsste man ja vom aktuellen Datum irgendwie X Tage abzeigen und dann vergleichen.

     

    Hat jemand eine Idee ?

     

     

    Vielen Dank schon einmal

  15. Hallo zusammen,

     

    wenn sich bei uns User auf Windows Server 2016 Server anmelden, bekommen Sie bevor das RPD-Fenster aufgeht, immer einen Dialog, wo sie Ihre Credentials eingeben sollen.

     

    Bei Windows Server 2012 haben wir dieses Verhalten per GPO verhindert, sodass der Anwender seine Credentials direkt in der RDP-Session eingeben kann.

     

    Hintergrund ist, dass User ihre Admin-Kennwörter jetzt nicht ändern können, da die Tastenkombination STRG+ALT+ENDE nicht funktioniert, da die RDP-Session noch nicht geöffnet ist.

     

    Wie genau kann ich diesen vorgeschalteten Diaglog verhindern?

     

     

    Vielen Dank schon einmal

     

  16. Na endlich, trag beim Alternativen Downloadserver auch den WSUS ein, wenn der Server den Wert in der Registry stehen hat, dann den Dienst WUAUSERV einmal neu starten. Beim Client den Schnellstart deaktivieren und dann neu starten. Jetzt auch Softwaredistribution löschen und wieder neu starten. Jetzt nach Updates suchen lassen.

     

    Sieht gut aus. Nachdem ich die 2016er Server alle einemal gebootet habe, melden sie sich nach und nach wieder korrekt im WSUS

  17. Hallo zusammen,

     

    seit kurzem erstellen unsere Windows Server 2016 Maschinen keinen Bericht mehr auf unserem WSUS.

     

    Der WSUS läuft ebenfalls auf 2016.

     

    Alle anderen Server kommunizieren korrekt mit dem WSUS und generieren auch Berichte.

     

    Wenn ich auf den 2016er Servern nach Updates suche, bekomme ich folgende Fehlermeldung:

    Beim Installieren von Updates sind Probleme aufgetreten. Wir versuchen es allerdings später noch einmal. Falls dieser Fehler weiterhin auftritt und Sie Informationen im Web suchen oder sich an den Support wenden möchten, kann dieser Fehlercode hilfreich sein: (0x8024401c).
    

    Bei Google habe ich eine Seite gunden https://blog.blackseals.net/2017/07/28/fehler-bei-suche-nach-updates-0x8024401c/

     

    Diese Konfigänderung am WSUS verursachte leider nur eine größere Last, aber keine Verbesserung bei den 2016er Servern.

     

    Jemand eine Idee, was ich machen kann?

     

     

    Vielen Dank schon einmal

  18. Hallo zusammen,

     

    ich habe mir mit dem Windows Update Powershell Module eine Auswertung der Patchstände für unsere Server gebaut.

     

    https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc

     

    Da wir mittlerwiele auch die ersten 2016er Server einsetzten, warte ich jetzt auf ein Updates der o.g. Modules.

     

    Leider kann ich aktuell die Infos von der 2016er Servern nicht korrekt auslesen.

     

    Letzte Updates Installation = 30.12.1899

     

    Vielleicht kennt ja jemad das Problem oder weiß, wann es eine neue Versio des Moduls gibt, bzw. weiß, wie ich 2016er Server korrekt abfragen kann.

     

    So ist meine Auswertung leider unvollständig.

     

     

    Vielen Dank schon einmal

×
×
  • Neu erstellen...