Windows MapNetworkDrive将接受任何密码

Windows MapNetworkDrive将接受任何密码,windows,windows-7,vbscript,wsh,Windows,Windows 7,Vbscript,Wsh,我正在写一个脚本,将网络共享添加到我所在学校为学生提供的windows笔记本电脑中 该脚本是用VBS编写的,并使用MapNetworkDrive函数,因此非常简单,只需两个对话框询问用户名和密码。但是当我用我自己的用户名测试它时,它会完全忽略我输入的密码,并且可能会使用存储在某处的密码,因为它总是映射驱动器。有人知道这些凭据存储在windows 7中的什么位置吗?(它没有存储在凭证存储中,我选中了)凭证根本没有存储在任何地方。相反,Windows使用当前登录用户的凭据来验证与共享资源的连接。也就

我正在写一个脚本,将网络共享添加到我所在学校为学生提供的windows笔记本电脑中

该脚本是用VBS编写的,并使用MapNetworkDrive函数,因此非常简单,只需两个对话框询问用户名和密码。但是当我用我自己的用户名测试它时,它会完全忽略我输入的密码,并且可能会使用存储在某处的密码,因为它总是映射驱动器。有人知道这些凭据存储在windows 7中的什么位置吗?(它没有存储在凭证存储中,我选中了)

凭证根本没有存储在任何地方。相反,Windows使用当前登录用户的凭据来验证与共享资源的连接。也就是说,如果当前登录到本地计算机的用户的用户名和密码与远程计算机上具有适当凭据的用户匹配,则将授予访问权限

让我看看能否用一个例子更清楚地解释这一点。假设我用用户名“Cody Gray”和密码“1234”登录到我的笔记本电脑。然后,我尝试启动与桌面计算机上共享资源的连接。由于我的桌面计算机上有相同的用户名和密码,并且该用户帐户有足够的权限远程连接到共享资源,因此我将自动进行身份验证,并自动授予访问权限。但是,如果我试图连接到我的同事的一台机器,而我在这台机器上没有帐户,我将被要求提供用户名和密码以及有效的访问凭据

仅当当前登录用户的凭据未能成功验证时,才会使用您提供给WSH
MapNetworkDrive
方法的用户名和密码。报告说:

斯特鲁瑟

可选。指示用户名的字符串值。如果要使用当前用户以外的其他人的凭据映射网络驱动器,则必须提供此参数

strPassword

可选。指示用户密码的字符串值。如果要使用当前用户以外的其他人的凭据映射网络驱动器,则必须提供此参数


简而言之,出于测试目的,您可以在计算机上创建一个与服务器上的帐户不直接对应的新帐户。如果学生已经在服务器上拥有帐户,就没有理由要求他们再次输入用户名和密码;Windows已经知道它是什么,它将自动用于身份验证。

非常感谢您的回答!我不知道它会首先检查本地用户的凭据,即使提供了strPassword,但在测试中,它不应该工作。本地用户的用户名相同,但密码不同。知道会发生什么吗?@Dimse:嗯,不知道。不同的密码将阻止您连接。这两个帐户有不同的密码,但你会自动连接吗?您是否已从同一服务器连接到其他网络资源?如果是这样,您也不需要身份验证。另一个选项是尝试WMI而不是
MapNetworkDrive
函数。您将需要类似于
ConnectServer
的东西。它采用类似的参数,工作方式也类似,因此可能对您也不起作用。我不应该连接,当我运行net use/DELETE*时,它告诉我没有活动连接,但我以前已经连接过,可能它从那时起就记住了密码。谢谢,我回去工作时会尝试使用WMI:)