2010-01-25 5 views
8

안녕하세요. 환영 화면을 거치지 않고 빠른 사용자 전환을 허용하는 Microsoft의 버려진 Super Fast User Switcher (download)과 비슷한 유틸리티를 만들려고합니다. 대화 형 로그온 세션 만들기

I ( WTSEnumerateSessions와 함께) 문서화되지 않은 WinStationConnectW API를 사용하여 작업 구현을 가지고 있지만, 그것은 단지 이미 로그인 한 사용자로 전환 할 수 있습니다. 그것은 전환 할 수 있도록 내가 로그인 세션을 만들 수있는 방법

을 로그인하지 않은 사용자에게?
Vista/7에서 작동하는 것이 좋지만 XP 만 지원하면됩니다. (내 현재 코드가 이미 있음)

나는 이것이 슈퍼 패스트 사용자 스위처 때문에 가능하다는 것을 알고있다. (Windows 서비스가 필요하지만)

저는 C#을 쓰고 있습니다.하지만 C#으로 답을 번역 할 수 있습니다.

+0

P/Invoking LogonUser를 시도 했습니까? –

+0

@nobugz :'LogonUser'는 로그온 세션이 아닌 사용자 토큰을 만듭니다. 이미 암호를 확인하는 데 이미 사용하고 있습니다. – SLaks

+1

다른 그룹은 Citrix 나 GotoMyPC와 같은 비슷한 작업을하므로이 작업을 수행 할 수 있다고 생각합니다. 그러나, 그들은 그들 자신의 서비스에서 무언가를하고 있을지도 모른다. 그래서 나는 확실하지 않다. – jcolebrand

답변

4

ShellLocalMachine COM 개체의 문서화되지 않은 InitiateInteractiveLogon 함수를 호출하여 XP에서이 문제를 해결했습니다.

로컬 시스템 계정에서만 호출 할 수있는이 메서드는 사용자를 콘솔에 기록합니다. (사용자를 RDP 세션에 로그온 할 수 없음)

Windows 7 (및 아마도 Vista 인)에 포함 된 DLL의 버전에는이 방법이 포함되어 있지 않습니다.

+2

이 함수는 _SO_ 문서화되지 않았으므로 Google 검색 결과가 전혀 없습니다. (Google에서 아직이 답변의 색인을 생성하지 않았습니다.) http://www.google.com/search?q=shgina.dll+ShellLocalMachine+%2BInitiateInteractiveLogon – SLaks

0

대상으로 지정할 Windows 버전은 무엇입니까?

나는 간단한 방법이 없다고 생각합니다. Windows XP의 경우 GINA입니다. Windows Vista에는 '자격 증명 제공자'가 있습니다.

또한 Windows XP를 대상으로하는 경우 사용자가 키보드를 누른 것처럼 로그인하기 위해 WinLogon 바탕 화면에 키 입력을 보내는 서비스를 만들 수 있습니다. 이것은 RealVNC 또는 UltraVNC에 의해 수행되었지만 기억이 안납니다. 그러나이 방법은 Windows Vista에서 작동하지 않습니다.

+0

GINA는 (어떤 이유로) 빠른 사용자 전환과 호환되지 않기 때문에 의문의 여지가 없습니다. – SLaks