2010-02-09 4 views
2

가 제한된 로그온 세션에서 실행하는 동안 Windows 7에서 공유 폴더를 programmaticaly 할 수 있는지 궁금 윈도우 : NetShareAdd은 ERROR_ACCESS_DENIED를7 폴더 공유 API

1)을 반환합니다. 2) 명령 행 net share는 동일하게 말합니다. 3) 그러나 탐색기는 UAC를 호출하지 않고 새 공유를 만드는 데 아무런 문제가 없습니다. 어떻게 그럴 수 있죠?

도움이 될 것입니다.

+0

관리자가 아닌 세션을 의미합니까? –

+0

아니요, 관리자이지만 실제 관리자 (UAC)가 아닙니다 – GoAvs

+0

Explorer가 실제로 공유를 만들고 있습니까? 예를 들어 이미 공유 된 항목의 하위 디렉토리를 공유하면 방패가 표시되지 않습니다. 그러나 이미 공유되지 않은 것을 공유하려고하면 방패 아이콘이 표시됩니다. –

답변

0

Windows 7의 UAC는 Vista보다 덜 엄격합니다. Windows 7은 Explorer를 신뢰할 수있는 응용 프로그램으로 간주하므로 UAC 프롬프트없이 자동으로 공유를 만듭니다 (제어판에서이 동작을 변경할 수 있음).

귀하의 응용 프로그램은 신뢰할 수있는 응용 프로그램이 아닙니다. (신뢰할 수 있지만 운영 체제는 신뢰할 수 없습니다.) 아마도 응용 프로그램에서 관리자 권한을 명시 적으로 요구하지 않았을 수도 있습니다. 이 경우 Windows 7은 프로그램을 권한이없는 것으로 간주하고 액세스를 거절합니다. 그 이유는 오류 메시지입니다.

해결책은 requireAdministratior의 ExecutingLevel을 요청하는 프로그램에 매니페스트를 추가하는 것일 수 있습니다. 예를 들어 Demand UAC elevation for an application by adding a manifest을 참조하십시오. 하지만 전체 응용 프로그램은 관리자 권한으로 실행됩니다. 좀 더 상세한 솔루션이 있습니다.

+0

설명 주셔서 감사합니다 (신뢰할 수있는 응용 프로그램 부분) – GoAvs

+0

보다 세부적인 접근 방식은 무엇입니까? 관리자로 실행되도록 앱을 확대하는 것을 피하고 싶지만 폴더를 공유해야합니다 (예 :). – gap