Есть следующая проблема. У нас есть приложение (А), работающее от обычного пользователя, оно запускает приложение (Б) с повышенными привилегиями (админ), которое, в свою очередь, может запускать несколько разных процессов уже без изменения привелегий (т.е. через CreateProcess), далее оно добавляет их в Job Object и следит за ними, и когда процессы заканчивают работу - выходит. Проблема в том, что добавление в Job Object перестаёт работать, как только мы запускаем приложение Б используя CreateProcessWithLogonW (а именно так оно запускается из приложения А). Если запустить его руками - то всё хорошо. Как я понял из обрывков статей - CreateProcessWithLogonW использует для имперсонации Secondary Logon и сам по себе создаёт анонимный джоб, что автоматически блокирует возможность добавить процесс в свой, и судя по всему, там ещё и лимиты стоят, которые не позволяют выполнить CreateProcess с флагом CREATE_BREAKAWAY_FROM_JOB. Т.е. что получается: A->CreateProcessWithLogonW( B ); B->CreateProcess(CREATE_BREAKAWAY_FROM_JOB) возвращает ACCESS_DENIED Если просто сделать B->CreateProcess(), то последующий вызов B->AssignProcessToJobObject возвращает ACCESS_DENIED Собсно вопрос: Как можно это обойти? Т.е. получить возможность нормально создавать джобы в дочерних процессах, запущенных от имени. ЗЫ: Windows 7 x64, UAC Disabled