ユーザー名またはSIDを指定して、ユーザーのデフォルトのプロファイルディレクトリを取得する必要があります。
どうすればいいですか?
GetUserProfileDirectory()は、現在のアカウントに対してのみ機能するようです。
GetUserProfileDirectory と SHGetFolderPath の両方が別のアカウントのプロファイル ディレクトリを取得できます。唯一の問題は、SID ではなくトークン ハンドルが必要なことです。トークン ハンドルを取得するには、ユーザーのパスワードを知って LogonUser を呼び出す必要があります。または、ユーザーが既にログオンしていてサービスとして実行している場合は、トークンを取得できます。
これらの解決策はどちらもあなたが望むものではないと思うので、文書化されていない土地に行かなければなりません:
「HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%SID%」の下の ProfileImagePath 値を読み取ります。