Thank you for your reply. My process runs fine. I get and id back and I use the getprocess method to get the process. but when it hit the code Process.EnableRaisingEvents or any Process.(something) it gives me an Access denied message. But if i impersonate myself, it works fine. this is the code: bool ret = true; ret = CreateProcessWithLogonW(m_username, m_domain, m_password, (int)LogonFlags.WithProfile,null,m_sb, (uint)PriorityFlags.NormalPriority | (uint)CreationFlags.UnicodeEnvironment, IntPtr.Zero,"c:\\", ref m_sui, out m_pi); if(ret) { System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(m_pi.dwProcessId); p.EnableRaisingEvents = true; "FAILS IN THIS LINE" }