Как создать домашний каталог пользователя без непосредственного входа в Windows?

Необходимо создать домашний каталог существующего (только что созданного) пользователя заранее, до того, как он впервые войдёт в ОС. Есть один рабочий вариант, как это сделать в консоли:

runas /user:<Имя пользователя> rundll32

Представленный код запрашивает в консоли пароль пользователя и после правильного ввода создаёт домашний каталог. Проблема в том, что мне не подходит запрос пароля в консоли. Нужно обязательно сделать это через окно, а т.к. runas не поддерживает никакую передачу пароля ему, кроме непосредственного ввода с клавиатуры в консоль, вариант, представленный выше, оказывается неприемлемым.

Дополнение:

Выяснил, что домашний каталог создаётся при запуске любого процесса от имени нужного пользователя. Однако при запуске процесса rundll32 из C# с помощью класса Process (да, процесс точно был запущен, проверял через Procmon) каталог всё равно не был создан.

Вопрос: какие есть способы проделать необходимую операцию, не прибегая к способу, описанному выше?


Ответы (2 шт):

Автор решения: V-Mor

Проблема решена. Нужно было всего лишь включить загрузку профиля пользователя в C# (в runas она включена по умолчанию). Делается это такой строкой:

//...Предыдущие настройки по типу proc.StartInfo.xxx = yyy; и т.д.
proc.StartInfo.LoadUserProfile = true;
→ Ссылка
Автор решения: Oxyd

Возьмите psexec из комплекта microsoft sysinternals:

psexec -userUserName -p UserPassWord "rundll32"
→ Ссылка