Ejercicios de PowerShell: validar credenciales de AD y ejecutar un programa si son correctos

Ver información sobre validación de credenciales https://www.jesusninoc.com/01/04/validar-credenciales-en-el-directorio-activo-active-directory/

function Login
{
    param
    (
        [Parameter(Mandatory)]
        [SecureString]
        $SafeInput
    )

    $PlainText = [Management.Automation.PSCredential]::new('x',$SafeInput).GetNetworkCredential().Password

    "User entered "

    Add-Type -AssemblyName System.DirectoryServices.AccountManagement
    $account = New-Object System.DirectoryServices.AccountManagement.PrincipalContext([DirectoryServices.AccountManagement.ContextType]::Domain, $env:userdomain)

    if($account.ValidateCredentials('perry', $PlainText)){
    Start-Process notepad
    }
    else
    {
        "No puedes ejecutar Notepad"
    }
}

Login