Private/Test-ADLogon.ps1
|
function Test-ADLogon { param( [Parameter(Mandatory)] [String]$domain, [Parameter(Mandatory)] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [string]$DomainController ) Add-Type -AssemblyName System.DirectoryServices.AccountManagement $CurrentFunction = Get-FunctionName Write-Log -Message "### Start Function $CurrentFunction ###" $StartRunTime = (Get-Date).ToString($Script:DateFormatLog) #################### main code | out- host ##################### $user = $Credential.UserName $pwd1 = $Credential.GetNetworkCredential().Password $contextType = [System.DirectoryServices.AccountManagement.ContextType]::Domain $context = New-Object System.DirectoryServices.AccountManagement.PrincipalContext( $contextType, $domain, $DomainController ) Write-log -Message " >> Check Login for '$domain\$user' against DC $DomainController" ######################## main code ############################ $runtime = Get-RunTime -StartRunTime $StartRunTime Write-Log -Message " Run Time: $runtime [h] ###" Write-Log -Message "### End Function $CurrentFunction ###" return $context.ValidateCredentials($user, $pwd1) } |