Jump to content

Yoda

Members
  • Gesamte Inhalte

    269
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Yoda

  1. Guten Morgen,

     

    hab mich jetzt doch dazu entschieden die einzelnen Sprachen mit in das Script zu nehmen.

    War die einfachste Methoden.

     

    Anbei das fertige Script, falls es jemand mal benötigt.

    #################################################################################################################
    #
    # Version 1.1 May 2014
    # Robert Pearman (WSSMB MVP)
    # TitleRequired.com
    # Script to Automated Email Reminders when Users Passwords due to Expire.
    #
    # Requires: Windows PowerShell Module for Active Directory
    #
    # For assistance and ideas, visit the TechNet Gallery Q&A Page. http://gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27/view/Discussions#content
    #
    ##################################################################################################################
    # Please Configure the following variables....
    $smtpServer="127.0.0.1"
    $expireindays = 8
    $from = "Password Reminder <password@xyz.de>"
    $logging = "Enabled" # Set to Disabled to Disable Logging
    $logFile = "C:\PasswordReminder\pwd.csv" # ie. c:\mylog.csv
    $testing = "Disabled" # Set to Disabled to Email Users
    $bccRecipient = "abc@yxz.de"
    $testRecipient = "abc@yxz.de"
    $date = Get-Date -format ddMMyyyy
    #
    ###################################################################################################################
    
    # Check Logging Settings
    if (($logging) -eq "Enabled")
    {
        # Test Log File Path
        $logfilePath = (Test-Path $logFile)
        if (($logFilePath) -ne "True")
        {
            # Create CSV File and Headers
            New-Item $logfile -ItemType File
            Add-Content $logfile "Date,Surname,GivenName,EmailAddress,DaystoExpire,ExpiresOn"
        }
    } # End Logging Check
    
    # Get Users From AD who are Enabled, Passwords Expire and are Not Currently Expired
    Import-Module ActiveDirectory
    $users = get-aduser -filter * -properties GivenName, Surname, PasswordNeverExpires, PasswordExpired, PasswordLastSet, EmailAddress, co |where {$_.Enabled -eq "True"} | where { $_.PasswordNeverExpires -eq $false } | where { $_.passwordexpired -eq $false }
    $DefaultmaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    
    # Process Each User for Password Expiry
    foreach ($user in $users)
    {
        $Name = $user.Name
        $Surname= $user.Surname
        $GivenName= $user.GivenName
        $emailaddress = $user.emailaddress
        $passwordSetDate = $user.PasswordLastSet
        $country = $user.co
        $PasswordPol = (Get-AduserResultantPasswordPolicy $user)
        # Check for Fine Grained Password
        if (($PasswordPol) -ne $null)
        {
            $maxPasswordAge = ($PasswordPol).MaxPasswordAge
        }
        else
        {
            # No FGP set to Domain Default
            $maxPasswordAge = $DefaultmaxPasswordAge
        }
     
        $expireson = $passwordsetdate + $maxPasswordAge
        $today = (get-date)
        $daystoexpire = (New-TimeSpan -Start $today -End $Expireson).Days
            
        # Set Greeting based on Number of Days to Expiry.
    
        # Check Number of Days to Expiry
        $messageDays = $daystoexpire
        if (($messageDays) -ge "1")
        {
            switch ($country) {
                "Vereinigtes Königreich" {
                    $messageDays = "in " + "$daystoexpire" + " days"
                    }
                "Polen" {
                    $messageDays = "za " + "$daystoexpire" + " dni"
                    }
                "Frankreich" {
                    $messageDays = "dans " + "$daystoexpire" + " jours"
                    }
                default {
                    $messageDays = "in " + "$daystoexpire" + " Tagen"
                    }
            }    
        }
        else
        {
            switch ($country) {
                "Vereinigtes Königreich" {
                    $messageDays = "today"
                    }
                "Polen" {
                    $messageDays = "dzisiaj"
                    }
                "Frankreich" {
                    $messageDays = "aujourd'hui"
                    }
                default {
                    $messageDays = "heute"
                    }
            }
        }
        switch ($country) {
            "Vereinigtes Königreich" {
                $subject = "Your Windows password expires $messageDays!"
                $body = "Hello $GivenName $Surname,
                            <p>Your Windows password expires $messageDays.<br>
                            <p><b>You can change this as follow:</b><br>
                            <ul>
                                <li>Press STRG+ALT+DEL</li>
                                <li>Select 'Change password...'</li>
                                <li>Fill and confirm the appropriate fields</li>
                            </ul>
                            <p><b>Password requirements</b><br>
                            <ul>
                                <li>You must not use essential parts of the user name nor the full user name</li>
                                <li>Mind. 9 characters</li>
                                <li>Characters from three of the following four categories must be included:<ul>
                                <li>Uppercase</li>
                                <li>Lowercase</li>
                                <li>Numbers (0 bis 9)</li>
                                <li>One of the following special characters: !, $, #, %, &, (, ), *, +, -, .</li></ul>
                            </ul>
                            <p>many thanks<br>
                            - EDV -
                            </P>"
                    }    
            "Polen" {
                $subject = "Twoje hasło do systemu MS Windows wygaśnie $messageDays!"
                $body = "Witaj $GivenName $Surname,
                            <p>Twoje hasło do systemu MS Windows wygaśnie $messageDays.<br>
                            <p><b>Możesz je zmienić tak jak napisano poniżej (pracownicy biurowi pomijają punkt pierwszy):</b><br>
                            <ul>
                                <li>Włączyć VPN </li>
                                <li>nacisnąć razem przyciski Ctrl+ALT+DEL</li>
                                <li>wybrać opcje 'zmiana hasła…'</li>
                                <li>uzupełnić odpowiednie pola i nacisnąć 'Enter'</li>
                            </ul>
                            <p><b>Zasady polityki długości i złożoności hasła:</b><br>
                            <ul>
                                <li>nie można w haśle wykorzystywać ciągów znaków z loginu użytkownika oraz z imienia i nazwiska użytkownika.</li>
                                <li>Minimum 9 znaków</li>
                                <li>Znaki z minimum trzech z czterech kategorii musza być wykorzystywane:<ul>
                                <li>Wielkie litery</li>
                                <li>Małe litery</li>
                                <li>Cyrfy (od 0 do 9)</li>
                                <li>Jeden z następujących znaków specjalnych: !, $, #, %, &, (, ), *, +, -, .</li></ul>
                            </ul>
                            <p>Dziękujemy za współpracę<br>
                            - IT -
                            </P>"
                    }
            "Frankreich"{
                $subject = "Votre mot de passe Windows expire $messageDays!"
                $body = "Bonjour $GivenName $Surname,
                            <p> Votre mot de passe Windows expire $messageDays.<br>
                            <p><b>Vous pouvez modifier cette comme suit:</b><br>
                            <ul>
                                <li>appuyez sur CTRL + ALT + SUPPR</li>
                                <li>option 'Change Password ...' Sélectionnez</li>
                                <li>Remplir et confirmer champs appropriés </li>
                            </ul>
                            <p><b> Mot de passe requis</b><br>
                            <ul>
                                <li>Vous ne devez pas utiliser des pièces essentielles du nom d'utilisateur ni le nom d'utilisateur complet. </li>
                                <li>esprit. 9 caractères </li>
                                <li>Les caractères de trois des quatre catégories suivantes doivent être incluses:<ul>
                                <li>majuscules</li>
                                <li>minuscules</li>
                                <li>numéros (0 à 9)</li>
                                <li>L'un des caractères spéciaux suivants: !, $, #, %, &, (, ), *, +, -, .</li></ul>
                            </ul>
                            <p>Merci Beaucoup<br>
                            - Informatique -
                            </P>"
                }
            default {
                $subject = "Ihr Windows Passwort läuft $messageDays ab!"
                $body = "Hallo $GivenName $Surname,
                            <p> Ihr Windows Passwort läuft $messageDays ab.<br>
                            <p><b>Sie können dies wie folgt ändern:</b><br>
                            <ul>
                                <li>STRG+ALT+ENTF drücken </li>
                                <li>Option 'Kennwort ändern...' auswählen </li>
                                <li>Entsprechenden Felder ausfüllen und bestätigen </li>
                            </ul>
                            <p><b> Kennwortvoraussetzungen</b><br>
                            <ul>
                                <li>Sie dürfen weder wesentliche Teile des Benutzernamens noch den vollständigen Benutzernamen verwenden. </li>
                                <li>Mind. 9 Zeichen </li>
                                <li>Zeichen aus drei der vier folgenden Kategorien müssen enthalten sein:<ul>
                                <li>Großbuchstaben</li>
                                <li>Kleinbuchstaben</li>
                                <li>Ziffern (0 bis 9)</li>
                                <li>Eines der folgenden Sonderzeichen: !, $, #, %, &, (, ), *, +, -, .</li></ul>
                            </ul>
                            <p>Vielen Dank <br>
                            - EDV -
                            </P>"
                    }
        }
        
        # If Testing Is Enabled - Email Administrator
        if (($testing) -eq "Enabled")
        {
            $emailaddress = $testRecipient
        } # End Testing
    
        # If a user has no email address listed
        if (($emailaddress) -eq $null)
        {
            $emailaddress = $testRecipient    
        }# End No Valid Email
    
        # Send Email Message
        if (($daystoexpire -ge "0") -and ($daystoexpire -lt $expireindays))
        {
             # If Logging is Enabled Log Details
            if (($logging) -eq "Enabled")
            {
                Add-Content $logfile "$date,$Surname,$GivenName,$emailaddress,$daystoExpire,$expireson"
            }
            
            # Send Email Message
            Send-Mailmessage -smtpServer $smtpServer -encoding ([System.Text.Encoding]::UTF8)  -from $from -to $emailaddress -subject $subject -body $body -bcc $bccRecipient -bodyasHTML -priority High  
       
        } # End Send Message
      
    } # End User Processing
     End
    

    Im AD-Benutzerobjekt wird unter Adresse - Land/Region das Land eingestellt. Entsprechend wird die Password Erinnerung in der jeweiligen Sprache versendet.

    Läuft bei uns 1x in der Nacht als geplanter Task.

     

    Gruß

    Yoda

     

  2. Guten Morgen,

     

    hier mal das ganze Script.

    Als Grundlage dient folgendes Script:

     

    http://gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27/view/Discussions#content #

     

    Das ganze soll so aufgebort werden, dass es Mails in verschiedenen Sprachen verschickt.

    Um das Script etwas schlank zu halten, dachte ich mir, die Sprachen in extra Files aus zu lagern.

    #################################################################################################################
    # 
    # Version 1.1 May 2014
    # Robert Pearman (WSSMB MVP)
    # TitleRequired.com
    # Script to Automated Email Reminders when Users Passwords due to Expire.
    #
    # Requires: Windows PowerShell Module for Active Directory
    #
    # For assistance and ideas, visit the TechNet Gallery Q&A Page. http://gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27/view/Discussions#content
    #
    ##################################################################################################################
    # Please Configure the following variables....
    $smtpServer="127.0.0.1"
    $expireindays = 20
    $from = "Password Reminder <password-rimnder@xxx.de>"
    $logging = "Enabled" # Set to Disabled to Disable Logging
    $logFile = "c:\tmp\pwd.csv" # ie. c:\mylog.csv
    $testing = "Enabled" # Set to Disabled to Email Users
    $bccRecipient = "sdafsdaf@asfasd.de"
    $testRecipient = "adfasdf@asdfasdf.de"
    $date = Get-Date -format ddMMyyyy
    #
    ###################################################################################################################
    
    # Sprachen
    $lang_de = "c:\tmp\lang_de.txt"
    $lang_fr = "c:\tmp\lang_fr.txt"
    $lang_pl = "c:\tmp\lang_pl.txt"
    $lang_gb = "c:\tmp\lang_gb.txt"
    
    # Check Logging Settings
    if (($logging) -eq "Enabled")
    {
        # Test Log File Path
        $logfilePath = (Test-Path $logFile)
        if (($logFilePath) -ne "True")
        {
            # Create CSV File and Headers
            New-Item $logfile -ItemType File
            Add-Content $logfile "Date,Surname,GivenName,EmailAddress,DaystoExpire,ExpiresOn"
        }
    } # End Logging Check
    
    # Get Users From AD who are Enabled, Passwords Expire and are Not Currently Expired
    Import-Module ActiveDirectory
    $users = get-aduser -filter * -properties GivenName, Surname, PasswordNeverExpires, PasswordExpired, PasswordLastSet, EmailAddress, co |where {$_.Enabled -eq "True"} | where { $_.PasswordNeverExpires -eq $false } | where { $_.passwordexpired -eq $false }
    $DefaultmaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    
    # Process Each User for Password Expiry
    foreach ($user in $users)
    {
        $Name = $user.Name
        $Surname= $user.Surname
        $GivenName= $user.GivenName
        $emailaddress = $user.emailaddress
        $passwordSetDate = $user.PasswordLastSet
        $country = $user.co
        $PasswordPol = (Get-AduserResultantPasswordPolicy $user)
        # Check for Fine Grained Password
        if (($PasswordPol) -ne $null)
        {
            $maxPasswordAge = ($PasswordPol).MaxPasswordAge
        }
    	else
        {
            # No FGP set to Domain Default
            $maxPasswordAge = $DefaultmaxPasswordAge
        }
      
        $expireson = $passwordsetdate + $maxPasswordAge
        $today = (get-date)
        $daystoexpire = (New-TimeSpan -Start $today -End $Expireson).Days
            
        # Set Greeting based on Number of Days to Expiry.
    
        # Check Number of Days to Expiry
        $messageDays = $daystoexpire
    
        if (($messageDays) -ge "1")
        {
            $messageDays = "in " + "$daystoexpire" + " Tagen"
        }
        else
        {
            $messageDays = "heute"
        }
        
    	switch ($country) {
    		"Vereinigtes Königreich" {
    			$subject = get-content $lang_gb | where-object {$_.readcount -eq 3}
    			$body_gb = get-content $lang_gb | where-object {$_.readcount -gt 3} | Out-string
    			}	
    		"Polen" {
    			$subject = get-content $lang_pl | where-object {$_.readcount -eq 3}
    			$body_pl = get-content $lang_pl | where-object {$_.readcount -gt 3} | Out-string
    			}
    		"Frankreich"{
    			$subject = get-content $lang_fr | where-object {$_.readcount -eq 3}
    			$body_fr = get-content $lang_fr | where-object {$_.readcount -gt 3} | Out-string
    			}
    		default {
    			$subject = get-content $lang_de | where-object {$_.readcount -eq 3}
    			$body_de = get-content $lang_de | where-object {$_.readcount -gt 3} | Out-String
    			$body = $body_de
    			}
    	}
    	
        # If Testing Is Enabled - Email Administrator
        if (($testing) -eq "Enabled")
        {
            $emailaddress = $testRecipient
        } # End Testing
    
        # If a user has no email address listed
        if (($emailaddress) -eq $null)
        {
            $emailaddress = $testRecipient    
        }# End No Valid Email
    
        # Send Email Message
        if (($daystoexpire -ge "0") -and ($daystoexpire -lt $expireindays))
        {
             # If Logging is Enabled Log Details
            if (($logging) -eq "Enabled")
            {
                Add-Content $logfile "$date,$Surname,$GivenName,$emailaddress,$daystoExpire,$expireson" 
            }
            
            # Send Email Message
            Send-Mailmessage -smtpServer $smtpServer -encoding ([System.Text.Encoding]::UTF8)  -from $from -to $emailaddress -subject $subject -body $body -bcc $bccRecipient -bodyasHTML -priority High  
    		
    
        } # End Send Message
        
    } # End User Processing
    # End
    
  3. Hallo zusammen,

     

    ich hänge an einem PowerShell Problem.

     

    Ich lese einen Datei mit folgendem Befehl ein

    $body_de = get-content $lang_de | where-object {$_.readcount -gt 3} | Out-String
    

    Der Inhalt der Datei sieht wie folgt aus

    Tage
    heute
    Ihr Windows Passwort läuft $messageDays ab!
    Hallo $GivenName $Surname,
        <p> Ihr Windows Passwort läuft $messageDays ab.<br>
        <p><b>Sie können dies wie folgt ändern:</b><br>
        <ul>
            <li> STRG+ALT+DEL drücken </li>
            <li> Option 'Kennwort ändern...' auswählen </li>
            <li> Entsprechenden Felder ausfüllen und bestätigen </li>
        </ul>
        <b> Kennwortvoraussetzungen</b>
        <ul>
            <li> Sie dürfen weder wesentliche Teile des Benutzernamens noch den vollständigen Benutzernamen verwenden. </li>
            <li> Mind. 9 Zeichen </li>
            <li> Zeichen aus drei der vier folgenden Kategorien müssen enthalten sein:<ul>
                <li>Großbuchstaben</li>
                <li>Kleinbuchstaben</li>
                <li>Ziffern (0 bis 9)</li>
                <li>Sonderzeichen (z.B. !, $, #, %)</li></ul>
        </ul>
        <p>Vielen Dank <br>
        - EDV -
        </P>
    

    Der HTML Code wird entsprechend umgewandelt. Allerdings bleiben die Variablen ungefüllt und 1:1 in den Text übernommen.

     

    Was kann ich tun, damit diese mit den entsprechenden Werten ausgegeben werden?

     

    Danke und Gruß

    Yoda

  4. Hi,

     

    gerne.

     

    Loadbalancer: Linux mit LVS

    Cluster IP auf bond0: 172.16.0.30

    RealIPs Server über bond1: 172.17.0.8 - 12

    Client IP über bond1: 172.17.0.40

     

    Auf dem LB mussten folgende folgende Settings mit sysctl -w gestezt werden.

     

    net.ipv4.conf.all.rp_filter = 0
    net.ipv4.conf.default.rp_filter = 0
    net.ipv4.conf.lo.rp_filter = 0
    net.ipv4.conf.eth0.rp_filter = 0
    net.ipv4.conf.eth1.rp_filter = 0
    net.ipv4.conf.eth2.rp_filter = 0
    net.ipv4.conf.eth3.rp_filter = 0
    net.ipv4.conf.eth4.rp_filter = 0
    net.ipv4.conf.eth5.rp_filter = 0
    net.ipv4.conf.tunl0.rp_filter = 0
    net.ipv4.conf.bond0.rp_filter = 0
    net.ipv4.conf.bond1.rp_filter = 0
     

    Damit haben wir dann das ARP Spoofing deaktiviert und der Client konnte über die Cluster IP mit den Real Server kommunizieren.

     

    Gruß

    Yoda

  5. Hi,

     

    danke für die Antwort.

     

     

    Ansonsten zusätzlich mal das MAC Spoofing für die vNIC der VM erlauben.

     

    Wenn du damit den Punkt "Enable MAC address spoofing" unter den Advanced Features in der vNIC meinst, dann ist das auch nicht die Lösung.

    Bekommen trotztdem keinen Ping zurück. Ping sollte gehen. Gibt keine Firewall dazwischen.

     

    Hab auch die Änderungen in dem von mir genannten Link wieder rückgängig gemacht.



    Hallo,

     

    Thema ist geklärt.

    Es lag noch am Linux LB. Dort musste noch eine Einstellung gemacht werden, um ARP Spoofing zu deaktiveren.

     

    Gruß

    Yoda

  6. Hallo zusammen,

     

    ich müsste auf einem vSwitch Hyper-V 2012 R2 ARP Spoofing erlauben.

    Ich weiß, dass es eine Sicherheitslücke ist, aber wir brauchen es.

     

    Gefunden habe ich bis jetzt nur folgende Anleitung:

     

    http://blogs.technet.com/b/wincat/archive/2012/11/18/arp-spoofing-prevention-in-windows-server-2012-hyper-v.aspx

     

    Da geht aber leider nicht.

     

    Es muss auch am vSwitch liegen, denn wenn ich im gleich IP Subnet mit einem Linux Client teste funktioniert der Zugriff.

     

    Hintergund: Wir haben einen Linux LB mit einer VIP von einem anderen Netz. Die Realserver stehen aber im gleichen Netz wie die VMs.

     

    Gibts noch eine andere Möglichkeit ARP Spoofing zu erlauben?

     

    Gruß

    Yoda

  7. Guten Morgen,

     

    muss den Thread noch mal nach oben schieben.

     

    Der User hat auch mal versucht mit Windows 7 sich auf die getrennte RDP Session zu verbinden. Das klappt auch nicht.

     

    Mittlerweile wurde der Server auch geclont und beim dem neuen Server funktioniert es auch nicht.

     

    Demnach muss das Problem beim Server liegen.

     

    Gruß

    Yoda

  8. Guten Morgen,

     

    ein User hat ein Problem sich mit einer getrennten RDP Session wieder zu verbinden.

    Er nutzt die RDP Dienste nur als Admintätigkeiten.

    Beim wiederverbinden "blitz" die Session kurz auf und der RDP Client schließt sich gleich wieder.

    Im RDP Manager steht die Sicherung als getrennt drinnen.

     

    Der Client ist Windows XP SP3 und der Server hat Windows Server 200 R2 Std.

     

    Das Problem besteht auch, wenn er sich von einem anderen PC dort anmelden möchte.

    Das Profil auf dem Server habe ich schon mal gelöscht und neu anlegene lassen.

     

    Hat jemand noch eine Idee an was es liegen könnte?

     

    Gruß

    Yoda

  9. Guten Morgen,

     

    ich muss für einen Kunden einen mx-record erstellen.

    An sich ja keine schwere sache.

    Was mich aber wundert ist, dass der Subdomainname ein @ sein soll.

    Das ist mir bis jetzt noch nicht über den weg gekommen.

    Ist das eine Art Wildcard für alle MX Anfragen für diese Doamin?

     

    Gruß

    Yoda

  10. Guten Morgen zusammen,

     

    ich stehe gerade vor folgendem Problem und suche eine Lösung.

     

    ISA 2006 mit 3 Netzwerkkarten

    1x Internet

    1x DMZ

    1x LAN

     

    Wir haben von unserem Provider ein /29 Netz bekommen.

    Jetzt möchte ich, dass ich eine IP der Netzwerkkarte fürs Internet gebe und die restlichen öffentlichen dem Netz für die DMZ zuordne.

     

    Was muss ich tun, das ich die Konstelation zum laufen bekommen?

     

    Gruß

    Yoda

  11. Hi @all,

     

    ich sitzte hier gerade vor zwei Alcatel 6224 und versuche auf einem Port eine Bandbreitenbeschränkung einzurichten.

    Leider bisher ohne erfolg.

     

    Ich versuche mit traffic-shaping die Bandbreite auf 20Mbit zu beschränken.

    Am Port kann ich Werte zwischen 0-62.5 Mbps eintragen.

    Ich habe mit verschiebenen Werten getestet.

    Die Beschränkung hat erst mit dem Wert 500kbps gegriffen.

     

    Warum muss ist 500kbps eintragen um den Wert von 20Mbit zu erreichen?

    Oder ist das ein Bug von Alcatel?

     

    Vielleicht kann mir jemand die ganze Sache erläutern.

     

    Danke und Gruß

    Yoda

  12. Hi @all,

     

    habe gerade einen Tisch reserviert.

     

    Zwei klein Anmwerkungen zum Stern.

    Morgen findet im Nebenzimmer ein Darttunier ab 19Uhr statt. Könnte also etwas Trubel geben lt. Besitzer.

    Das zweite. Es ist ein Raucherlokale. Bin zwar Nichtraucher, aber es währe für mich o.k.

     

    Der Tisch ist auf den Namen MCSE bestellt.

     

    Wie schon geschrieben, werde ich erst gegen 1930 da sein.

     

    Bis dahin

    Yoda

  13. Hi dicker,

     

    hört sich nicht schlecht an.

    Hab die auch einen Nebenraum?

    Ich denke wenn wir da mit ein paar Mann einfallen und evtl. auch etwas Equipment mitbringen ist das von Vorteil.

    Aber fürs erste Treffen bestimmt gut.

     

    Habe mich letzte Woche Samstag mit TalonKarrde getroffen.

    Als nächsten Termin haben wir Freitag, den 08.01 um 19 Uhr ins Auge gefasst.

     

    Wie sieht es da bei dir bzw. euch aus?

     

    Gruß

    Yoda

×
×
  • Neu erstellen...