네트워크 디스크의 파일에 액세스 할 수있는 서비스를 만드는 데 문제가 있습니다.Windows 서비스에 대한 네트워크 액세스
서비스에는 관리자 권한이 있어야하며 관리자 권한이없는 사용자가 서비스를 실행해야합니다.
나는 UNC
로 경로를 보내고 파일은 서비스로 볼 수 있지만 시도 열거 나 네트워크 드라이브에 아무것도 할 때 ACCES_DENIED
오류를 반환합니다.
서비스를 서버로 실행하면 모든 것이 정상적으로 작동합니다.
나는 대답을 찾으려하지만 어디서나 나는 전혀 도움이되지 않는 부분적인 답만을 찾을 수 있습니다.
========
나는 시스템이 네트워크에 접근 할 수 없기 때문에 표준 서비스가 기록 읽어 보시기 바랍니다. 그래서 나는 그것이 작동하지 않았다 LocalService
NetworkService
로 ID를 기록했습니다. 해당 사용자 중 하나로 실행 한 후 내 서비스에서 파일을 저장할 수 없습니다.- 어떤 종류의 관리자 계정이 있습니다. 그러나 그 성공을 관리하지는 못했습니다.
- 실제로 로그인 한 사용자입니다. 현재 사용자의 비밀번호를 가져 오는 방법을 모르겠습니다. 여전히 관리자 권한이없는 사용자에게는 작동하지 않습니다.
========
내가 무엇을 할 수 가르쳐주세요? 네트워크 리소스를 어떻게 든 사용하는 서비스가 많이 있습니다. 그들은 어떻게합니까?
anxser의 Thx. 서비스를 만들 때 실행할 서비스를 지정합니다. 그래서 나는 네트워크 드라이브에 대한 액세스 권한과 관리자 권한이 필요하다고 생각합니다. NT AUTHORITY \ NetworkService에서 실행할 때 네트워크에 액세스 할 수 있지만 f.e c :/Program Files에 대한 액세스 권한이 없으므로이 사용자에게는 관리자 권한이 없다고 가정합니다. 이 서비스에 대해 별도의 관리자 계정을 지정하면됩니다. – makefun
나는 그렇게 생각한다. 그것은 확실히 최고의 솔루션입니다. 실제로 네트워크에서 'NetworkService'는 네트워크 공유를 볼 수 없습니다. –
더 거칠 수 있습니다. Win7에서 실행할 때 시스템 계정 (네트워크 액세스 권한이 있음)에서도 작동합니다. WinXp에서만 access_denied가 있는데, 불행히도 작동해야합니다. 나는이 특정 서비스에 대한 전체 새 계정을 만들지 않고 서비스를 설치하는 계정을 사용하는 것이 가능하다고 생각합니다. (우리에게 필요한 모든 권한이 있음을 알고 있습니다) 그렇다면 어떻게 현재 활성 사용자의 CreateService 기능 자격 증명으로 전달할 수 있습니까? 분명히 다른 이름과 암호를 가질 수 있기 때문입니다. 그래서 이렇게하는 것이 일반적인 방법일까요? – makefun