Beveiligd en geautomatiseerd opnieuw instellen van wachtwoord met PowerShell Command

De hieronder vermelde PowerShell-script kan worden gebruikt voor het automatisch opnieuw instellen van de wachtwoorden met regelmatige intervallen. ADSelfService Plus biedt ook een optie die kan worden gebruikt voor het automatisch opnieuw instellen van domeingebruikerswachtwoorden wanneer ze verlopen. Wanneer deze optie is ingeschakeld, wordt een planner met regelmatige intervallen uitgevoerd om gebruikersaccounts met verlopen wachtwoord te zoeken en de wachtwoorden automatisch opnieuw in te stellen. Het nieuwe wachtwoord wordt dan via e-mail verstuurd naar de gebruiker. Hier vindt u een vergelijking tussen het automatisch opnieuw instellen van wachtwoorden met PowerShell en ADSelfService Plus:

PowerShell

Param (
    [Parameter(Mandatory=$True)]
    [String]$InputFile
)
Function MakeRandomPass {
    Param (
        [Int]$PLength
    )
    If ($PLength -LT 4) {Return $Null}
    $Numbers = $Null
    For ($A=48;$A -LE 57;$A++) {$Numbers+=,[Char][Byte]$A}
    $UpCase = $Null
    For ($A=65;$A -LE 90;$A++) {$UpCase+=,[Char][Byte]$A}
    $LowCase = $Null
    For ($A=97;$A -LE 122;$A++) {$LowCase+=,[Char][Byte]$A}
    $SpChar = $Null
    For ($A=33;$A -LE 47;$A++) {$SpChar+=,[Char][Byte]$A}
    For ($A=58;$A -LE 64;$A++) {$SpChar+=,[Char][Byte]$A}
    For ($A=123;$A -LE 126;$A++) {$SpChar+=,[Char][Byte]$A}
    
    $Buffer = @()
    For ($A=1;$A -LE $PLength;$A++) {$Buffer+=0}
    While ($True) {
        $NumChar = (Get-Random -Minimum 0 -Maximum $PLength)
        If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 1; break}
    }
    While ($True) {
        $NumChar = (Get-Random -Minimum 0 -Maximum $PLength)
        If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 2; break}
    }
    While ($True) {
        $NumChar = (Get-Random -Minimum 0 -Maximum $PLength)
        If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 3; break}
    }
    While ($True) {
        $NumChar = (Get-Random -Minimum 0 -Maximum $PLength)
        If ($Buffer[$NumChar] -EQ 0) {$Buffer[$NumChar] = 4; break}
    }
    $ThisPassword = $Null
    ForEach ($CharType In $Buffer) {
        If ($CharType -EQ 0) {
            $CharType = ((1,2,3,4) | Get-Random)
        }
        Switch ($CharType) {
            1 {$ThisPassword+=($Numbers | Get-Random)}
            2 {$ThisPassword+=($UpCase | Get-Random)}
            3 {$ThisPassword+=($LowCase | Get-Random)}
            4 {$ThisPassword+=($SpChar | Get-Random)}
        }
    }
    Return $ThisPassword
}

$ErrorActionPreference = "SilentlyContinue"
$T = Get-Date
If ($Error) {$Error.Clear()}
Write-Host "`n"
Write-Host "Working. Please wait"
Write-Host "`n"
$RepFile = $T -Replace " ", $Null
$RepFile = $RepFile -Replace ":", $Null
$RepFile = $RepFile -Replace "/", $Null
$RepFile = $RepFile -Replace "-", $Null
If (Test-Path "Report_$RepFile.txt") {
    Remove-Item "Report_$RepFile.txt"
}
New-Item -Path "Report_$RepFile.txt" -Type File -Force -Value "REPORT: Reset Local User Account Password On Multiple Computers" | Out-Null
Add-Content "Report_$RepFile.txt" "`n"
Add-Content "Report_$RepFile.txt" "`n"
Add-Content "Report_$RepFile.txt" "Report Created On $T"
Add-Content "Report_$RepFile.txt" 
Add-Content "Report_$RepFile.txt" "`n"

Import-CSV -Path $InputFile | ForEach-Object {
    Try {
        $ThisMachine = $_.ComputerName
        $ThisAccount = $_.LocalAccountLoginID
        If (!([string]::IsNullOrEmpty($ThisMachine)) -AND !([string]::IsNullOrEmpty($ThisAccount))) {
            Write-Host "`tAttempting to reset the  local account password in computer: $ThisMachine" -ForeGroundColor "Yellow"
            $PassToSet = MakeRandomPass 20
            $ThisUser = [ADSI]"WinNT://$ThisMachine/$ThisAccount, User"
            $ThisUser.SetPassword($PassToSet)
            $ThisUser.SetInfo()
            If (!$Error) {
                Add-Content "Report_$RepFile.txt" "$ThisMachine `t`t -- $ThisAccount `t`t -- $PassToSet `t`t --success: Password Has Been Reset/Changed."
            }
        }       
    }
    Catch {
        [System.Exception] | Out-Null
        If ($Error) {
            Add-Content "Report_$RepFile.txt" "$ThisMachine `t`t -- $ThisAccount `t`t -- Password Reset has failed. An Error Has Occurred."
            Add-Content "Report_$RepFile.txt" $Error
            $Error.Clear()
        }
    }
}
Write-Host "`n"
Write-Host "Task Completed. Check Report File: Report_$RepFile.txt"
Notepad "Report_$RepFile.txt"
Write-Host "`n"
 Copied
Klik om het volledige script te kopiëren

ADSelfService Plus

In ADSelfService Plus:
  • Ga naar Configuratie → Beleidsconfiguratie.
  • Een nieuw beleid maken.
  • Zodra de vereiste informatie voor het maken van het beleid is gegeven, klikt u op Geavanceerd. Ga vervolgens naar het tabblad Automatisering en schakel het selectievakje Automatisch wachtwoord domeingebruiker opnieuw instellen in uw domein in.
  • Geef op met welke Frequentie de planner moet worden uitgevoerd.
  • Schakel indien nodig, het selectievakje Na automatisch opnieuw instellen van wachtwoord, gebruikers dwingen om hun wachtwoord bij volgende aanmelding te wijzigen in.
  • Het veld 'Wachtwoord opnieuw instellen naar' kan worden ingesteld op Aangepaste tekst of Wachtwoordbeleid (een willekeurig wachtwoord, gegenereerd op basis van het aangepaste wachtwoordbeleid.
  • Ga naar Melding > Wachtwoord opnieuw instellen en voer de nodige details in om gebruikers te informeren over hun opnieuw ingestelde wachtwoorden.
  • Klik op OK en klik in de sectie Beleidsconfiguratie op Opslaan.
Secure & Automated Password Reset with PowerShell Command
Voordelen van ADSelfService Plus
  • Snelle configuratie:

    Met ADSelfService Plus, kan automatisch wachtwoord opnieuw instellen worden ingeschakeld door enkele klikken en het invoeren van minimale informatie. In PowerShell vereist dit het maken, oplossen van fouten en uitvoeren van scripts.

  • Kiezen van welke gebruikers de wachtwoorden automatisch opnieuw kunnen worden ingesteld:

    Wanneer u een ADSelfService-beleid maakt, kunnen beheerders het domein, OU's en groepen selecteren waarvan de gebruikers hun wachtwoord automatisch opnieuw kunnen laten instellen op de verloopdatum. Als u PowerShell gebruikt voor het automatiseren van het opnieuw instellen van wachtwoorden voor specifieke gebruikers, moet een uitgebreid script worden gemaakt

  • Het maken van zwakke wachtwoorden voorkomen:

    Afdwingen wachtwoordbeleid van ADSelfService Plus staat beheerders toe aangepaste wachtwoordbeleidslijnen die de aanmaak van zwakke wachtwoorden te maken en af te dwingen. De wachtwoorden die automatisch worden gegenereerd, kunnen worden gekozen om te voldoen aan dit aangepast wachtwoordbeleid.

  • Wachtwoorden synchroniseren met bedrijfstoepassingen:

    Als de functie Wachtwoordsynchronisatie van ADSelfService Plus is ingeschakeld, wordt het nieuwe wachtwoord automatisch gesynchroniseerd met de accounts van de gebruiker in toepassingen zoals G Suite en Salesforce.

  • Controlerapport voor het opnieuw instellen van wachtwoorden:

    Legt alle bewerkingen voor het opnieuw instellen van wachtwoorden vast, inclusief het geautomatiseerde opnieuw instellen van wachtwoorden in rapporten die gemakkelijk kunnen worden gegenereerd met één klik en geëxporteerd in verschillende indelingen zoals HTML, CSV, PDF en XLS.

  • Beheerders informeren:

    Beheerders ontvangen periodiek een geconsolideerd rapport met details over alle bewerkingen voor wachtwoordherstel.

Active Directory-gebruikerswachtwoorden automatisch resetten.

  Ontvang een gratis proefversie voor 30 dagen.

ADSelfService Plus vertrouwd door