Authentication 使用vbscript测试本地用户凭据

Authentication 使用vbscript测试本地用户凭据,authentication,vbscript,Authentication,Vbscript,我正在制作一个安装程序,使用vbscript验证用户帐户 如何测试用户键入的密码? 我使用了下面的代码,但它不起作用,甚至在错误的密码上返回true Const ADS_SECURE_AUTHENTICATION = 1 Function CheckCredentials(Domain, Account, Password) Dim objIADS Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & D

我正在制作一个安装程序,使用vbscript验证用户帐户

如何测试用户键入的密码? 我使用了下面的代码,但它不起作用,甚至在错误的密码上返回true

Const ADS_SECURE_AUTHENTICATION = 1
Function CheckCredentials(Domain, Account, Password)

    Dim objIADS
    Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & Domain , Account, Password, ADS_SECURE_AUTHENTICATION)

    If err.number = 0 then
    CheckCredentials = True
Else
    CheckCredentials = False
End If
End Function
代码怎么了?
谢谢

如果Account参数包含与vbscript进程所有者相同的用户,它可能会忽略密码,只需重新使用以前存在的目录连接。只是猜测而已。如果您确保该帐户不是Windows用户当前登录的帐户,密码是否也会被忽略?您好,@Morbo,我已与另一个用户测试过,它仍然返回“是”。您好,@Morbo,我测试发现,即使我使用的帐户根本不存在,它仍然返回“是”。我使用Set objNTInfo=CreateObject(“WinNTSystemInfo”)ComputerName=UCase(objNTInfo.ComputerName)来获取域。有什么想法吗?也许命令失败时不会产生错误。请尝试检查
是否objIADS为Nothing
以查看它是否失败。@Morbo,我通过将COM对象更改为“GetObject”(“WinNT:”)解决了此问题。OpenDSObject(“WinNT:/”&Domain&“/”&Account&“,user”,Account…”使用用户界面解决此问题。谢谢