2012-03-28 3 views
3

로컬 시스템 사용자를 사용하여 Windows 서비스로 공유 리소스에 액세스해야합니다. 나는 클래스 UserImpersonation으로 시도했지만 디버깅에서만 작동합니다. 서비스를 설치할 때 공유 폴더에 액세스 할 수 없습니다.로컬 시스템 사용자를 사용하여 Windows 서비스로 공유 리소스에 액세스하는 방법은 무엇입니까?

이 주제에 대해 읽었으며 네트워크 자격 증명이있는 사용자를 만들고이 사용자와 서비스를 실행하는 유일한 방법인지 알고 싶습니다.

+0

이 문제를 다루는 많은 리소스를 찾을 수 있습니다. http://stackoverflow.com/questions/6016388/accessing-shared-folder-over-a-network-in-windows-service http : // serverfault .com/questions/135867/howt-to-grant-network-access-to-localsystem-account – JotaBe

답변

1

질문의 마지막 단락에 답이 있습니다. 이 서비스는 특정 사용자의 컨텍스트에서 실행됩니다. 이 사용자가 문제의 리소스에 액세스 할 수 있는지 확인해야합니다. 바로 이런 이유로 특정 서비스에 전용 사용자를 생성하는 경우는 드뭅니다.

+0

왜 네트워크 서비스를 사용하지 않습니까 ??? – JotaBe

+0

@ JotaBe 명시 적으로 부여하지 않으면 공유 리소스에 액세스 할 수 없으므로 –

+0

물론 권한이 부여되지는 않지만 권한을 부여 할 때까지만 허용됩니다. 그러나 네트워크 리소스에서 컴퓨터 계정에 사용 권한을 부여하면 네트워크 서비스 계정에서 실행되는 서비스가 리소스에 액세스 할 수있게됩니다. 암호를 사용할 필요가 없으므로 사용자가 해당 계정으로 로그온 할 수없고 유지 관리가 더 적기 때문에 네트워크 서비스가 더 안전하다고 생각합니다. – JotaBe

2

네트워크 액세스를 프로비저닝 한 계정 (스크린 샷과 같은 NetworkService 일 필요는 없음)에서 서비스를 실행할 수 있습니다. 이렇게하려면 서비스 관리자로 이동, 오른쪽 속성을 클릭하십시오

enter image description here

권한의 두 가지 유형의 당신은 당신이 있는지 확인해야 네트워크 공유를 액세스 할 때 고려해야 할 필요가있다 그 계정 당신 사용은 다음과 같습니다. Share and NTFS permissions

+0

@DavidHeffernan, 네트워크 서비스는 샘플 스크린 샷을 찍었을 때 구성되었던 것입니다. 나는 단순히 질문의 "사용자로서 실행"부분에 응답하고있었습니다. 나는 내 대답을 분명히 할 것이다. – Tung

관련 문제