Вам потребуется получить токен текущего пользователя, вошедшего в систему, и вызвать CreateProcessAsUser.При использовании Fast-User-Switching (FUS) помните, что на компьютере может быть зарегистрировано более одного пользователя, поэтому вам нужно выбрать, с каким пользователем вы хотите запустить процесс.
Для перечисления пользовательских сессий выможно использовать API WTSEnumerateSessions .Используйте это, чтобы найти текущие идентификаторы сессии.Затем вызовите WTSQueryUserToken, чтобы получить токен для текущего пользователя, вошедшего в систему.Используя этот токен, вы можете использовать CreateProcessAsUser.
К сожалению, вам нужно будет использовать P / Invoke для всех этих вызовов методов.Если у вас есть имя пользователя и пароль, вы можете просто использовать перегрузку System.Diagnostics.Process.Start ().