Вход на удаленный компьютер и доступ к сетевым ресурсам - PullRequest
1 голос
/ 23 марта 2010

Я хочу получить доступ к файлу на удаленном компьютере (win2k3, 10.10.20.30), но я не мог понять, как войти в систему на этом компьютере в моей программе.Есть ли простой Win API, который берет сетевой путь, учетные данные и возвращает дескриптор?я просто хочу получить доступ к \ 10.10.20.30 \ c $ \ test.txt, WNetAddConnection2, WNetAddConnection3 немного сбивают с толку.Любое предложение будет полезно.

извините за то, что не очень ясно.Я хочу получить доступ к компьютеру в той же сети (LAN).Я хотел получить доступ к файлу, который не доступен на другом компьютере.

Ответы [ 3 ]

5 голосов
/ 23 марта 2010

Если у вас есть права администратора, решение довольно простое.Доступен административный ресурс C$.Вы можете позвонить WNetAddConnection2, чтобы создать локальную букву диска, указывающую на него.NETRESOURCE.dwType = RESOURCETYPE_DISK конечно, .lpLocalName = NULL как вам это не нужно, .lpRemoteName = _T("\\\\10.10.20.30\\c$") (обратите внимание на экранирование \ in строк C, оно действительно начинается с 4 из них)..lpProvider = NULL - пусть Windows определит поставщика.

Оставьте имя пользователя и пароль пустыми, и Windows будет использовать ваши текущие учетные данные пользователя.Если это действительно (сетевые) учетные данные администратора, их достаточно.

dwFlags должен включать CONNECT_TEMPORARY, поскольку вас интересует только один файл.

Однако я думаю, что (при наличии достаточных учетных данных) проще просто позвонить CreateFile("\\\\10.10.20.30\\c$\\test.txt")пусть Windows разберется с деталями.

0 голосов
/ 23 марта 2010

Выполните mstsc.exe из вашего кода, используя createprocess ... Остальное, что он будет обрабатывать ...

0 голосов
/ 23 марта 2010

Обычные функции доступа к файлам c ++ и библиотеки должны работать как есть, просто укажите полный сетевой путь к файлу, в который вы поместите имя файла, и вы сможете получить к нему доступ. Хорошие учебники с образцом кода доступны по этой ссылке: http://www.cplusplus.com/doc/tutorial/files/

Если вы получаете ошибки, убедитесь, что у пользователя, вошедшего в систему, установлены разрешения на доступ к файлам в общей папке, а также разрешения на совместное использование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...