인터넷에서 어딘가에서 같은 질문에 직면했습니다. 약간의 변화로 나는 이미 아래에 질문을 수정했다.:: createFile winApi가 오류 5 (access_denied)로 실패합니다. 쉘 프로그래밍 또는 다른 솔루션 또는 힌트입니다.
질문 :
내가 원격 시스템 (10.10.20.30)에있는 파일에 액세스하려면,하지만 난 내 프로그램에서 해당 컴퓨터에 로그인하는 방법을 이해 couldnt한다. 네트워크 경로, 자격 증명을 받아 파일 핸들을 반환하는 간단한 승리 API가 있습니까? 방금 \ 10.10.20.30 \ share folder \ test.txt에 액세스하려고합니다. 제안 사항이 도움이 될 것입니다.
미안하지만 코딩 감각이 분명하지 않습니다. 상세 정보 : 공유 폴더에서 공유되는 파일에 액세스하려고했지만 권한이 부여되지 않았습니다. 나는 :: CreateFile을 사용하여 파일의 헨켈을 얻습니다. 그러나이 경우 나는 오류 코드 5 (ACCESS_DENIED)를 암시합니다. 공유되는 파일에 액세스하려면 사용자 (내 클라이언트) 권한 정보 (사용자 이름 암호)를 사용해야합니다. 난 그냥 파일의 핸들이 필요해. 내가 틀렸다면 말해봐 : CreateFile은 MSDN에서 말한 것처럼 보안 속성을 사용하거나 수정함으로써이 경우 사용할 수 없다. CreateFile은 기존 파일을 열 때 lpSecurityDescriptor 멤버를 무시합니다. 또한 Window 셸을 사용한다고 생각했지만 솔루션을 다시 쓸 수 없었습니다.
문제 세부 정보 * 글쎄 요구 사항은 원격 컴퓨터에서 Everyone 권한이 없습니다. 예를 통해 설명하겠습니다. 최소한 3 대의 컴퓨터가 있다고 말하는 특정 도메인의 네트워크가 있다고 가정합니다. 이제는 C1 (클라이언트), C2 (대상), C3, C4, C5가 있습니다. 이제이 경우 C2 컴퓨터에서 파일 (모든 유형)을 만들고 그 폴더에 MyFolder라고 말합니다. 이제 공유하고 그 후에 Everyone을 제거하십시오. 그런 다음 C5를 액세스하기위한 사용자로 추가하십시오. 이제 그냥 :: CreateFile 구현으로 일부 코드를 작성하고 컴퓨터 C1 (클라이언트)과 C5 (권한이 있음)에서 모두 실행할 수 있습니다. 당신은 클라이언트 (C1)이 ACCESS_DENIED를 의미하는 에러 5를 얻게 될 것이고 C5가 그것을 실행할 것이고 파일 핸들을 얻을 것임을 알 수있을 것이다 ...... 다시 한번 나는 내 질문을 반복한다. 사용자 이름과 암호, 그리고 내 프로그램은
나에게 사전에 감사를 조언 해 주시기 바랍니다 C1 기계 .. *에서 핸들을 얻을 것이다
:: CreateFile이 거부 액세스와 쉘 프로그래밍 또는 다른 솔루션이나 힌트 실패한다
아마도 [NetUseAdd] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa370645(v=vs.85) .aspx) 기능을 사용해야합니다. Windows 탐색기에서 "\\ 10.10.20.30 \ share folder \"열 수있는 경우이 작동합니다. –
@MichaelWalz 탐험가를 통해 열 수 없습니다. 위의 문제 세부 사항을 참조하십시오. – user2809792
이 문제가 해결 되었습니까? 네트워크 경로, 자격 증명을 받아 파일 핸들을 반환하는 간단한 승리 API가 있습니까? – AcidBurn