原始鏈接: https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3223434&SiteID=1
Hi Guys,
My goal is to run a program before user even log on to system in vista. Here are couple of links i have already went through. These codes are working fine when ever we are dealing with WinSta0\\default desktop when user is log on but my requirements are different.
http://www.codeproject.com/KB/vista-security/VistaSessions.aspx?fid=406624&sort=Position&noise=3&view=Quick&mpp=50&df=1
http://www.uvnc.com/vista/
http://www.codeproject.com/KB/vista-security/VistaSessionsC_.aspx
Steps that wosks fine
-------------------------------
I got this working on Vista but I would like to launch a progrma to the WinSta0\\Winlogon desktop. Anyone have any ideas? When I change the desktop to WinSta0\\Winlogon the application does not appear on the logon screen. However, when I run the program on XP it works.WTSGetActiveConsoleSessionId
lpDesktop
to winsta0\Default since I need to launch my process there.
CreateProcessAsUser
with Winlogon's duplicate token to launch my process into session 1.
Vista must have the Winlogon Desktop permissions set differently, I added "SeTcbPrivilege" but that did no good. Also, if I look at taskmgr I see the program started along with CreateProcessAsUser not returning any errors. It appears to work, just cannot see the application on the WinSta0\\Winlogon desktop. Anyone have any ideas?
==================================================================================================
It works! with vista !!
2. WTSQueryUserToken() for winlogon.exe winlogon pid
3. DuplicateTokenEx ()
4. AdjustTokenPrivileges ()
5. CreateProcessAsUser () lpDesktop
to Winsta0\Winlogon
Fire the executable via taskscheduler (schtasks.exe) with SYSTEM priveleges.
Muhahahaha , and then if you dont see youre app in the winlogon desktop, try hitting ALT+TAB .... in the winlogon desktop.
I hope microsoft keeps this entry point for showing things on the secure desktop, cause we use it to show the unattended installation progress, I think the secure desktop should stay accessible in future releases.
(btw, I did not test it with FUS Fast User Switching, It worked with a domain account setting, this means Fast User Switching is not enabled).
Much appreciated,
mon11.
==================================================================================================
Fast User Switching is enabled for domain accounts in Vista by default, so that's not necessarily true.
==================================================================================================
AndyCadley,
You are right, I tested it, it works also with FUS.
其他連接:
[1] http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx
[2] http://blogs.technet.com/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx