【问题标题】:How to fetch the user profile given a SID?如何获取给定 SID 的用户配置文件?
【发布时间】:2025-12-14 09:50:02
【问题描述】:

我需要获取用户默认配置文件目录,给定它的用户名或 SID。

我该怎么做?

GetUserProfileDirectory() 似乎只对当前帐户有效。

【问题讨论】:

    标签: windows winapi profile sid


    【解决方案1】:

    GetUserProfileDirectory 和 SHGetFolderPath 都能够获取不同帐户的配置文件目录,唯一的问题是它们需要令牌句柄而不是 SID。要获取令牌句柄,您需要知道用户密码并调用 LogonUser,或者如果用户已经登录并且您作为服务运行,您可以获得他们的令牌。

    我猜这些解决方案都不是你想要的,所以你必须进入无证土地:

    读取“HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%SID%”下的 ProfileImagePath 值

    【讨论】:

    • 有时我想知道雷德蒙德的那些人在想什么。谢谢。