用户/密码问题与GetVolumeNameForVolumeMountPoint()(Windows远程驱动器挂载?)

在Vista工作站上,我有一个附带的XP Embedded计算机,我想以编程方式在本地安装卷(例如,将XP Embedded \\MyXPEmbedded\C:\some\path\安装到Vista工作站(安装到C:\mounted_XPEmbedded\ )。

(这是一个在Vista工作站上运行的pipe理工具,用于维护XP Embedded工作站上的文件,这是大型设备的一部分。)

我可以从Vista工作站上看到 XP Embedded计算机。 例如,我可以::getnameinfo()从其IP地址parsingXP Embedded计算机的名称。

但是,所有对GetVolumeNameForVolumeMountPoint()调用都会失败(返回false ),格式为::GetLastError()消息为:

 Logon failure: unknown user name or bad password 

很显然,这似乎是一个权限问题。 但是,我没有在Microsoft API中看到如何通过这些卷GUIDpathAPI提供用户/密码。

当通过在地址栏中inputXP Embedded机器的IP地址从Vista工作站上的Windows资源pipe理器“浏览”XP Embedded时,系统会提示input用户名和密码,之后可以看到XP Embedded上的所有内容( 呃!我如何提供这个编程?)

问题:如何在使用GUIDpathAPI(特别是::GetVolumeNameForVolumeMountPoint() )时以编程方式提供用户login名/密码?

部分问题可能是这些计算机不共享相同的域(它们不能,Vista计算机将被添加到客户的域中,XP Embedded必须“隐藏”)。

其他信息,这可能不重要:

  • Vista工作站和XP Embedded不共享相同的域(他们不能)
  • 应用程序运行在Vista工作站下的帐户与pipe理权限(我认为这是必需的?)
  • 在XP Embedded计算机上不存在Vistapipe理帐户(XP Embedded具有不同的pipe理帐户)
  • 两台计算机之间的时钟是最新的(安全凭证应该工作)
  • Vista工作站有两个网卡,一个网卡直接连接到只有一个网卡的XP Embedded机箱
  • 使用C ++,MSVS2008

红利问题:如果我可以在没有pipe理权限的情况下在Vista工作站上运行这个pipe理工具,这将是一件好事,这是可能的吗? (我知道embeddedXP的pipe理login/密码。)

Solutions Collecting From Web of "用户/密码问题与GetVolumeNameForVolumeMountPoint()(Windows远程驱动器挂载?)"

在尝试访问嵌入式框中的共享之前拨打WNetAddConnection2的电话。 您可能需要以MyXPEmbedded\[admin username]的形式拥有用户MyXPEmbedded\[admin username]

如果您之前已尝试连接到嵌入式框,则可能会遇到问题。 要从命令行/delete可以使用的任何延迟连接 – net use/delete选项。 在运行程序进行调试之前,您也可以使用建立与网络连接的连接来玩游戏。

至于运行W / O管理员权限,主要是与你决定在哪里做本地安装点,但你可能只是使用UNC路径逃脱。 使用默认的管理共享(如果“使用简单文件共享”处于禁用状态,则启用该功能),则可以使用类似\\MyXPEmbedded\c$\some\path方式访问嵌入式系统。

您可能需要建立至少一个从Vista工作站到XP工作站的SMB(命名管道/文件共享)连接,在具有足够权限的任何共享上,如\\ myXP \ whatever或\\ myXp \ c $甚至\\ myXP \ icp $,然后才能打开任何针对“myXP”计算机的网络路径。

您可以使用WNetAddConnection2函数以编程方式使用用户名和密码。