От рабочей станции Vista у меня есть подключенный компьютер XP Embedded, на котором я хочу программно смонтировать том локально (например, смонтировать XP Embedded \\MyXPEmbedded\C:\some\path\
на рабочую станцию Vista (смонтированную на C:\mounted_XPEmbedded\
).
(Это административная утилита, которая запускается на рабочей станции Vista и обслуживает файлы на рабочей станции XP Embedded, которая является частью более крупного устройства.)
Я могу видеть компьютер XP Embedded с рабочей станции Vista. Например, я могу ::getnameinfo()
разрешить имя компьютера XP Embedded по его IP-адресу.
Однако все вызовы GetVolumeNameForVolumeMountPoint()
терпят неудачу (возвращает false
), а форматированное сообщение от ::GetLastError()
:
Logon failure: unknown user name or bad password
Итак, очевидно, что это проблема с разрешениями. Однако я не вижу обсуждения в API Microsoft того, как я могу предоставить пользователя / пароль через эти API пути GUID тома.
При "просмотре" XP Embedded из проводника Windows на рабочей станции Vista путем ввода IP-адреса компьютера XP Embedded в адресную строку, мне предлагается ввести имя пользователя и пароль, после чего я могу видеть все на XP Embedded. (Ага! Как мне предоставить это программно?)
ВОПРОС: Как я могу программно указать логин и пароль пользователя при работе с API-интерфейсами GUID path (и, в частности, ::GetVolumeNameForVolumeMountPoint()
)?
Частично проблема может заключаться в том, что эти компьютеры не используют один и тот же домен (они не могут, компьютер Vista будет добавлен в домен клиента, XP Embedded должен быть «скрытым»).
Другая информация, которая, вероятно, не важна:
- Рабочая станция Vista и XP Embedded не используют один и тот же домен (они не могут)
- Приложение работает на рабочей станции Vista под учетной записью с правами администратора (я полагаю, это требуется?)
- Эта учетная запись администратора Vista отсутствует на компьютере XP Embedded (XP Embedded имеет другую учетную запись администратора)
- Часы между обоими компьютерами текущие (учетные данные должны работать)
- Рабочая станция Vista имеет две сетевые карты, одна карта подключается непосредственно к коробке XP Embedded, в которой только одна сетевая карта.
- Используя C ++, MSVS2008
БОНУСНЫЙ ВОПРОС: Было бы неплохо, если бы я мог запустить эту административную утилиту на рабочей станции Vista без прав администратора, возможно ли это? (Я знаю административный логин / пароль для встроенной XP.)