Можно ли выдать себя за пользователя без указания имени пользователя и пароля? В принципе, я бы хотел получить CSIDL_LOCAL_APPDATA для пользователя (не текущего) с помощью функции ShGetFolderPath(). Все, что у меня сейчас есть, это SID для этого пользователя.

Нет, вам нужно вызвать функцию Win32 API LogonUser, чтобы вернуть токен учетной записи Windows, чтобы затем вы могли выдать себя за другое лицо.
Вы можете выдать себя за пользователя без ввода пароля, вызвав ZwCreateToken. См. Функцию CreatePureUserToken в этой статье: RunAsEx на основе графического интерфейса Вы должны работать как администратор (или LocalSystem), чтобы это работало.
Другой способ - использовать пакеты субаутентификации Windows. Это позволяет вам переопределить встроенную проверку подлинности Windows и позволить LogonUser успешно завершить работу, даже если пароль не был указан. Смотрите это Статья в базе знаний.
Хм, это объясняет, почему я не могу заставить его работать должным образом ... Есть ли другой способ получить этот путь? Спасибо.