기본 서비스 계정 중 하나로 실행되는 프로세스를 시작하는 방법이 있는지 궁금합니다. 관리 코드에 대한 프로세스를 시작하고 싶습니다. 기본 서비스 계정 (LocalService, NetworkService, LocalSystem) 중 하나를 사용하고 싶습니다.내장 된 사용자 계정 중 하나에 대해 Process.Start()를 사용하는 방법은 무엇입니까?
0
A
답변
0
나는 당신이 로컬 시스템 (일명 시스템)에서 프로세스를 실행시킨 것으로 psexec를 사용할 수 있다고 생각 계정 :
실행 Regedit를 대화 형으로 SAM 및 보안 키의 내용을 볼 수있는 시스템 계정의 :
psexec -i -d -s c:\windows\regedit.exe
는하지만 다른 계정으로 실행하는 방법을 생각할 수 없다. 내가 이것을 생각할 수있는 유일한 간접적 인 방법은 서비스가 이미 적절한 계정에서 실행되고 나서 (예를 들어 리모팅, 파이프, WCF를 통해 어떤 일을 하든지간에) 연결할 수 있으며, 새로운 프로세스.
물론이 경우 새 프로세스가 데스크톱과 상호 작용할 수 없으므로 필요한 경우 여전히 운이 좋지 않을 수 있습니다.
0
다른 서비스의 컨텍스트 내에서만이 작업을 수행 할 수 있다고 생각합니다. (또는 LocalSystem으로 충분할 수도 있습니다); 이 경우 LogonUser()를 사용하여 토큰을 가져올 수 있습니다. 또는 원하는 계정에서 실행중인 기존 서비스를 찾고 해당 토큰을 복제하려고 할 수 있습니다 (적절한 액세스 권한이 있다고 가정).