Belépési adatok ellenőrzése

Szintén nem csak AD környezetben, hanem helyi gépen is feladat a belépési adatok ellenőrzése. Gondoljunk arra a helyzetre, hogy a szkriptünk paraméterként vár vagy bekér egy credential objektumot a Get‑Credential cmdlet segítségével. Ilyenkor megadjuk a felhasználónevet és jelszót, de maga a cmdlet nem ellenőrzi ezek helyességét, bármit elfogad.

Az alábbi függvény a bejelentkezési adatokat ellenőrzi. Paraméterként egy credential objektumot vár és megadhatjuk a –DomainContext kapcsolóval, hogy ez egy tartományi fiók-e.

function Check-Credential{

param(

    $cred,

    [switch] $DomainContext

)

$username = $cred.UserName

$password = [Runtime.InteropServices.Marshal]::PtrToStringAuto(

        [Runtime.InteropServices.Marshal]::SecureStringToBSTR( $cred.Password )

    )

 

$context, $user = $username -split "\\"

if($DomainContext){

    $contexttype = "domain"

}

else{

    $contexttype = "machine"

}

 

Add-Type -AssemblyName System.DirectoryServices.AccountManagement

$obj = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $contexttype,$context

try{

    $obj.ValidateCredentials($username, $password) 

}

catch{

    $false

}

}

 A függvény True vagy False értéket ad, attól függően, hogy helyesek-e a belépési adatok.



Word To HTML Converter