Я пытаюсь получить путь к каталогу профилей в разных версиях Windows. В более старых версиях это может быть [диск]:\Documents and Settings, в новых — [диск]:\Users. Есть несколько способов сделать это локально без проблем, однако мне нужно найти путь на удаленной машине, к которой я подключен.
- Удаленный реестр включен.
- У меня есть токен олицетворения, и я могу успешно собирать информацию с удаленного хоста через Net API и т. д.
- У меня есть доступ к административной папке и, следовательно, ко всем файлам на удаленном диске.
Вот список других важных предостережений.
- Это проект С++.
- Похоже, что GetProfilesDirectory или GetUserProfileDirectory не могут работать в удаленном контексте. Если я ошибаюсь, дайте мне знать, но во всех моих экспериментах функция что-то возвращала с локальной машины.
- Я не могу использовать WMI, мы много раз пытались интегрировать функциональность WMI в наш проект, и это просто не работало.
- Я бы предпочел делать как можно меньше «очистки экрана». Если у вас есть идея, не связанная с чтением какого-либо текстового файла и анализом результата, я бы с удовольствием ее выслушал. Но я был бы признателен за любой полезный ответ.
- Информация о каталоге профиля в реестре кажется бесполезной, поскольку содержит переменные среды, и, как и GetProfilesDirectory, функция раскрытия переменных среды не предназначена для работы с удаленными хостами. Это означает, что решение не сработает, если я буду звонить с более новой машины Windows на старую машину Windows или наоборот.
- Решение должно быть достаточно общим, чтобы работать между хостами, на которых может работать любая версия Windows от Windows Server 2003 до Windows 7.
Заранее спасибо за любые ваши идеи. В идеале я просто хотел бы заставить GetProfilesDirectory работать на удаленном хосте, поэтому, если вы знаете, как это сделать, я буду любить вас вечно.