在 Vista 工作站上,我连接了一台 XP Embedded 计算机,我想在其上以编程方式在本地安装一个卷(例如,安装 XP Embedded \\MyXPEmbedded\C:\some\path\到 Vista 工作站(安装到 C:\mounted_XPEmbedded\)。
(这是一个在 Vista 工作站上运行的管理实用程序,用于维护 XP Embedded 工作站上的文件,而 XP Embedded 工作站是更大设备的一部分。)
我可以从 Vista 工作站看到 XP Embedded 计算机。例如,我可以通过 ::getnameinfo() 从 IP 地址解析 XP Embedded 计算机的名称。
但是,所有对 GetVolumeNameForVolumeMountPoint() 的调用都会失败(返回 false),来自 ::GetLastError() 的格式化消息为:
Logon failure: unknown user name or bad password
很明显,这似乎是一个权限问题。但是,我在 Microsoft API 中没有看到如何通过这些卷 GUID 路径 API 提供用户/密码的讨论。
当通过在地址栏中输入 XP Embedded 机器的 IP 地址从 Vista 工作站上的 Windows 资源管理器“浏览”XP Embedded 时,系统提示我输入用户名和密码,之后我可以看到 XP Embedded 上的所有内容XP Embedded(duh!我如何以编程方式提供它?)
问题:在使用 GUID 路径 API(特别是 ::GetVolumeNameForVolumeMountPoint())时,如何以编程方式提供用户登录名/密码?
部分问题可能是这些计算机不共享同一个域(它们不能,Vista 计算机将添加到客户的域中,XP Embedded 必须“隐藏”)。
其他可能不重要的信息:
红利问题:如果我可以在 Vista 工作站上运行此管理实用程序而不需要管理权限,那就太好了,这可能吗? (我知道嵌入式 XP 的管理登录名/密码。)
最佳答案
调用电话WNetAddConnection2在尝试访问嵌入框上的共享之前。您可能需要使用 MyXPEmbedded\[admin username] 形式的用户名。
如果您之前已经尝试连接到嵌入式盒子,您可能会遇到问题。要删除您可以使用的任何延迟连接,请从命令行 - net use 和 /delete 选项。您还可以在运行程序以进行调试之前尝试建立与 net use 的连接。
至于在没有管理员权限的情况下运行,这主要与您决定在何处创建本地挂载点有关,但您可能只需使用 UNC 即可。小路。使用默认管理共享(如果“使用简单文件共享”被禁用则启用),您可以使用类似 \\MyXPEmbedded\c$\some\path 的内容访问嵌入式系统。
关于windows - GetVolumeNameForVolumeMountPoint() 的用户/密码问题(Windows 远程驱动器挂载?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6447315/