Если бы проблемы с публикуемой fnCheckAccess (strDomain, strUserID, strUserPWD), как мой домен OU структура делает не имеют пользователей в OU = Пользователи. На основании статьи MSDN придумал, после чего должно работать на любом домене:
'http://msdn.microsoft.com/en-us/library/windows/desktop/aa706065%28v=vs.85%29.aspx
Set objNetwork = CreateObject("WScript.Network")
strDomain = objNetwork.UserDomain
Const ADS_SECURE_AUTHENTICATION = 1
strUsername=InputBox("Enter Username:")
strPassword=InputBox("Enter Password:")
Set objDS = GetObject("LDAP:")
On Error Resume Next
Set objDomain = objDS.OpenDSObject("LDAP://" & strDomain, strUsername, strPassword, ADS_SECURE_AUTHENTICATION)
If Err.Number Then
WScript.Echo _
"For user:" & vbCrLf & _
" " & strDomain & "\" & strUsername & vbCrLf & _
"Error Number:" & vbCrLf & _
" " & Err.Number & vbCrLf & _
"Error Description:" & vbCrLf & _
" " & Err.Description
Else
WScript.Echo _
"Valid password entered for user" & vbCrLf & _
" " & strDomain & "\" & strUsername
End If
On Error Goto 0
выглядит следующим образом (http://stackoverflow.com/questions/290548/c -validate-a-username-and-password-on-active-directory) - это хороший способ сделать это в .NET, но оптимальным решением VBScript было бы лучше. – c0nsumer