2012-05-27 1 views
3

서비스에서 Windows 7의 로그온 화면에서 응용 프로그램을 실행하고 싶습니다.Win7 로그온 화면에서 응용 프로그램 실행

저는이 문제에 대해 오랜 연구를 해왔으며 이미 여러 가지 방법을 시도해 보았습니다.하지만 불행히도 지금까지 완전히 성공하지 못했습니다. 나는 현재 로그온 한 사용자의 잠금 화면에서 응용 프로그램을 실행할 수있었습니다. 처음에는 그것이 기본적으로 성취하려고 시도했던 것처럼 보였습니다. 그러나 나는 모든 사용자와 일반 사용자에 대해 서로 다른 로그온 화면이 있음을 깨달았습니다.

제 생각 엔 사용자가 세션 1에서 실행되는 동안 여러 계정을 사용할 수 있거나 잠금 화면에서 "사용자 전환"을 클릭하면 부팅 한 직후에 나타나는이 사용자 독립 로그온 화면은 세션 0에서 실행됩니다. 세션 2의 사용자 2 등. 문제는 "winsta0 \ winlogon"과 함께 세션 0에서 응용 프로그램을 실행하면 표시되지 않는다는 것입니다. 세션 1에서 실행하면 잘 작동하지만 사용자가 이미 로그인해야하므로 많은 도움이되지 않습니다.

그래서 사용자 독립적 로그온/시작 화면에서 응용 프로그램을 실행하는 방법은 무엇입니까? 이 목적을위한 올바른 매개 변수와 기능은 무엇입니까? 누구든지 시위를위한 실제 사례가 있습니까? (델파이가 선호되지만 실제로 다른 언어도 가능합니다!)

+0

[Credential Providers] (http://msdn.microsoft.com/en-us/magazine/cc163489.aspx) 및 [ICredentialProviderCredential] (http://msdn.microsoft.com/en-us/library/)을 사용하여 시도한 적이 있습니까? us/library/windows/desktop/bb776029 % 28v = vs.85 % 29.aspx) 및 [ICredentialProvider] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb776042%28v=vs .85 % 29.aspx) 인터페이스? – RRUZ

답변

1

RRUZ의 설명에 따라 자격 증명 공급자를 구현하는 방법 만 지원됩니다.

규칙을 위반하지 않으려면 로컬 시스템으로 실행되는 서비스가 선택한 세션에서 서브 프로세스를 실행할 수 있어야합니다. OpenProcessToken을 사용하여 보안 토큰에 대한 핸들을 가져오고 DuplicateTokenEx으로 복제하고 SetTokenInformation을 사용하여 토큰 세션 식별자를 변경 한 다음 CreateProcessAsUser을 호출하여 하위 프로세스를 시작하십시오. (처음에는 별도의 실행 파일을 사용하는 것이 가장 간단하지만 일단 버그를 제거한 후에는 명령 줄 인수 나 환경 변수를 사용하여 서비스와 하위 프로세스를 단일 실행 파일로 롤백 할 수 있습니다 두 경우.)

WTSGetActiveConsoleSessionId 기능은 현재 어떤 세션이 실제 콘솔에 연결되어 있는지 알려줍니다.

+0

문제는 WTSGetActiveConsoleSessionId가 로그온 한 사용자와 만 작동하는 것 같습니다. 이 사용자는 다른 사용자의 것이 아니므로 '사용자 전환'화면에 액세스 할 수 없습니다. '잠금'화면에는 '스위치 사용자'화면에는 표시 할 수없는 항목이 있습니다. 또한 : "규칙을 어긴"이란 의미는 무엇입니까? – CodeX

+0

새로 부팅 된 시스템에서 로그온 화면이 세션 1에서 실행되고 있다고 생각합니다. 여하튼, 다음을 점검 할 수 있습니다. 대상 시스템에 대해 원격으로 tasklist를 실행하고 winlogon 프로세스가 포함 된 세션을 찾으십시오. 따라서이 세션에서 개념 증명으로 프로세스를 시작할 수 있습니다. 일단 정렬하면 일반적인 경우에 사용할 세션을 파악하는 방법에 대해 걱정할 수 있습니다. 물론이 프로세스는 올바른 데스크탑 및/또는 윈도우 스테이션에 연결해야합니다. 잠금 데스크톱에 콘텐츠를 표시하기 위해 이미 수행 한 작업과 매우 유사해야합니다. –

+0

"규칙을 어김"이란 뜻입니다. 자격 증명 공급자를 구현하는 경우를 제외하고는 로그온 화면에 콘텐츠를 표시하지 않아야합니다. 그렇게 할 가능성은 거의 확실하지만, 이후 버전의 OS에서 동일한 코드가 계속 작동한다는 보장은 없습니다. 심지어 미래의 핫픽스를 설치해도 작동을 멈출 수는 있지만 그 가능성은 적습니다. –