2010-03-23 6 views
1

원격 컴퓨터 (win2k3, 10.10.20.30)의 파일에 액세스하려고하지만 내 프로그램에서 해당 컴퓨터에 로그인하는 방법을 이해할 수 없습니다. 네트워크 경로, 자격 증명을 받아 핸들을 반환하는 간단한 승리 API가 있습니까? 방금 ​​\ 10.10.20.30 \ c $ \ test.txt에 액세스하고 싶습니다. WNetAddConnection2, WNetAddConnection3은 다소 혼란 스럽습니다. 어떤 제안이 도움이 될 것입니다.원격 컴퓨터에 로그인하고 네트워크 리소스에 액세스

미안하지만 매우 명확하지 않습니다. 같은 네트워크 (LAN)에있는 컴퓨터에 액세스하려고합니다. 다른 컴퓨터에서 공유되지 않은 파일에 액세스하려고했습니다.

+0

매우 명확하지 않은 점에 대해 사과드립니다. 같은 네트워크 (LAN)에있는 컴퓨터에 액세스하려고합니다. vpn, 네트워크를 통한 컴퓨터 등 모든 모서리의 경우를 무시하십시오. 그리고 액세스하려는 파일은 공유되지 않습니다. 나는 신임장을주고 그 다음에 접근하고 싶다. – rplusg

+0

'C $'문법은 특정 해결책을 암시합니다. 이는 관리자가 아닌 관리자로 사용할 수없는 관리 공유입니다. (이유가 간단하지 않은 이유를 설명하기 때문에 의견으로 게시 됨) – MSalters

+0

관리자 자격이 있습니다. 하지만 프로그램에서 사용하는 방법을 모르므로 액세스 할 수 있습니다. – rplusg

답변

5

,이 솔루션은 매우 간단하다. C$ 관리 공유를 사용할 수 있습니다. WNetAddConnection2을 호출하면이를 가리키는 로컬 드라이브 문자를 만들 수 있습니다. NETRESOURCE.dwType = RESOURCETYPE_DISK 물론, .lpLocalName = NULL이 필요하지 않으므로 .lpRemoteName = _T("\\\\10.10.20.30\\c$") (C 문자열에서 \의 이스케이프 처리에주의하십시오. 실제로는 4 개로 시작합니다). .lpProvider = NULL - Windows가 공급자를 파악하도록하십시오.

사용자 이름/암호를 비워두면 Windows에서 현재 사용자 자격 증명을 사용합니다. 이들이 참으로 (네트워크) 관리자 자격 증명이면 충분합니다.

dwFlags은 하나의 파일에만 관심이 있으므로 CONNECT_TEMPORARY을 포함해야합니다.

그러나 (충분한 자격 증명이 주어지면) CreateFile("\\\\10.10.20.30\\c$\\test.txt")을 호출하고 Windows에서 세부 정보를 처리하는 것이 더 쉽다고 생각합니다.

+0

감사합니다. Msalters, 나는 방금 dwflags의 사용법과 혼동했습니다. 내 혼란을 해결해 주셔서 감사합니다. – rplusg

0

일반적인 C++ 파일 액세스 기능과 라이브러리는 그대로 작동해야합니다. 파일 이름을 넣을 파일의 전체 네트워크 경로를 입력하기 만하면 액세스 할 수 있어야합니다. http://www.cplusplus.com/doc/tutorial/files/

오류가 발생하는 경우 로그인 한 사용자에게 공유 폴더에 설정된 파일 권한과 공유 권한이 설정되어 있는지 확인하십시오. 관리자 권한이있는 경우

+0

매우 명확하지 않은 것에 대해 유감스럽게 생각합니다. 같은 네트워크 (LAN)에있는 컴퓨터에 액세스하려고합니다. vpn, 네트워크를 통한 컴퓨터 등 모든 모서리의 경우를 무시하십시오. 그리고 액세스하려는 파일은 공유되지 않습니다. 나는 신임장을주고 그 다음에 접근하고 싶다. – rplusg

+0

답변 됨 - 잘하면이게 더 도움이됩니다. –

+0

Im는 fopen이나 fclose 등의 파일 기능에 대해 묻지 않습니다. "로그인 한 사용자를 확인하십시오."라고 말하면서, 우리의 C++ 프로그램에서 다른 컴퓨터에 로그인하는 방법을 묻습니다. 파일에 저장하십시오. 파일은 전혀 공유되지 않습니다. – rplusg

-1

하는 createprocess를 사용하여 코드에서 mstsc.exe를 실행 ...이 처리 할 일의 나머지 ...

+0

나는 그 기계에 RDC를하고 싶지 않다. 한 파일에 액세스하려고합니다. – rplusg

+0

공유되지 않은 파일에 액세스하는 다른 방법을 모른다 ... –

관련 문제