문제

LocalSystem 계정으로 서비스를 실행하면 다음 코드를 사용하여 현재 로그인 계정에서 GUI 프로그램을 시작할 수 있습니다.

wtsgetActiveConsolesessionID-> wtsqueryUserToken-> CreateProcessAsuser

그러나 개인 계정으로 서비스를 실행하면 GUI 프로그램이 표시되지 않습니다. 그래도 작업 관리자에서 볼 수 있습니다.

서비스가 내 개인 계정으로 실행될 때 GUI 프로그램을 시작하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

John과 Jdigital은 모두 옳습니다. 내 이해에서 서비스는 일반적으로 데스크탑 액세스 (로컬 시스템 사용이 필요) 또는 네트워크 액세스 (아래에서 실행할 계정을 지정해야 함)를 가질 수 있습니다.

두 개의 앱을 두 개의 앱으로 분할해야합니다. 하나는 데스크탑과 상호 작용하고 다른 하나는 네트워크를 통해 대화하기 위해 상호 작용합니다. 그런 다음 두 부분은 서로 대화하여 최종 사용자에게 정보를 전달할 수 있습니다.

다른 팁

그것은 모두 내가 믿는 권한과 관련이 있습니다.

LocalSystem은 현재 사용자를 가장 할 수있는 충분한 권한이 있지만 계정은 그렇지 않습니다.

자격 증명을 제기하거나 로컬 시스템으로 실행되는 도우미 서비스에 연결하여 서비스에 대한 권한을 연장하는 방법을 찾아야합니다.

(로컬 시스템 대신 계정으로 실행하고 싶습니까?)

나는 이것을하는 일을 다루는 훨씬 더 철저한 답변이 있다고 확신하지만, 높은 수준에서 나는 이것이 문제라고 생각합니다.

잘못된 윈도우 스테이션이나 데스크탑에서 실행 중일 수 있습니다. 이것 좀 봐 윈도우 스테이션 및 데스크탑에서 Microsoft 참조.

나는 당신이하려는 것이 보안 취약성으로 간주 될 수 있다고 생각합니다. 또한 어떤 경우에는 작동하지 않을 것입니다. jdigital은 윈도우 스테이션과 관련이 있으며 현재 사용자 창 스테이션과 데스크탑에 액세스하려고 노력한다는 점에서 정확하다고 생각합니다. 현재 윈도우 스테이션이 여러 개있는 터미널 서비스 서버 아래에있을 때는 혼란스러워합니다. Microsoft는 실제로 당신이 원하는 것을 원하지 않으며 모든 Windows 릴리스에서 더 어렵게 만듭니다.

가장 좋은 방법은 다른 각도에서 문제를 해결하고 사용자가 실행하는 GUI 응용 프로그램을 작성하는 것이며 (로그인 할 때 마나 자동으로) 서비스와 대화하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top