【发布时间】:2011-06-22 22:28:53
【问题描述】:
在 Vista 工作站上,我连接了一台 XP Embedded 计算机,我想在该计算机上以编程方式在本地挂载一个卷(例如,将 XP Embedded \\MyXPEmbedded\C:\some\path\ 挂载到 Vista 工作站(挂载到 C:\mounted_XPEmbedded\)。
(这是一个在 Vista 工作站上运行的管理实用程序,用于维护 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(duh!如何以编程方式提供?)
问题:如何在使用 GUID 路径 API(特别是 ::GetVolumeNameForVolumeMountPoint())时以编程方式提供用户登录名/密码?
部分问题可能是这些计算机不共享同一个域(它们不能,Vista 计算机将被添加到客户的域中,XP Embedded 必须“隐藏”)。
其他信息,可能不重要:
- Vista 工作站和 XP Embedded 不共享同一个域(它们不能)
- 应用程序在 Vista 工作站上以具有管理权限的帐户运行(我认为这是必需的?)
- XP Embedded 计算机上不存在该 Vista 管理帐户(XP Embedded 具有不同的管理帐户)
- 两台计算机之间的时钟是最新的(安全凭据应该可以工作)
- Vista 工作站有两张网卡,一张卡直接连接到只有一张网卡的 XP Embedded 盒子
- 使用 C++,MSVS2008
奖励问题:如果我可以在 Vista 工作站上运行此管理实用程序 管理权限会很好,这可能吗? (我知道嵌入式 XP 的管理登录名/密码。)
【问题讨论】:
标签: windows windows-7 windows-vista accounts mount-point