我正在尝试做类似于提出此问题的用户尝试做的事情:
HTTPS Request From a Credential Provider DLL
关于用户个人资料的组件,我找到了this。
我的目标是Windows 7(专业版或企业版)。我不仅仅是一个Linux人,所以在Windows上进行编程时我很无能为力,所以请保持温和。
P.S。有没有办法让我可以开始在Linux上开发,然后在不使用VM的情况下在Windows上进行测试?
我正在构建一个配置文件同步程序,供那些移动很多的人使用,这样他们就不必到处携带笔记本电脑。此问题解决了用户登录到新计算机的情况。可能的应用是:
我希望尽可能提供最佳用户体验,这意味着即时创建配置文件。漫游配置文件很慢并且充满了错误。让Windows创建配置文件并不是一个真正的选择,因为我需要进行自定义身份验证(我想出了这个),我需要从服务器复制设置。
我需要的是一种方法:
这就是我在想的事情:
答案 0 :(得分:7)
首先,我建议您阅读有关用户个人资料的this。
用户配置文件的主要思想很简单,从第一版Windows NT(我的意思是Windows NT 3.1)开始保持不变:用户配置文件由本地计算机上现有的目录结构组成。用户配置文件中的一个文件(如此命名的配置单元)表示注册表的当前用户部分。用户对其用户配置文件具有完全访问权限非常重要。访问权限不仅保存在文件系统中,还保存在注册表的内部中。因此,要为用户创建配置文件,必须先创建用户帐户,因为注册表项文件的安全描述符部分必须包含用户的SID(安全标识符)。
如果将创建新用户配置文件,则用户配置文件的“原型”将用作模板。您可以在注册表中找到的模板路径为Default
注册表项下的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
值。您可以使用GetDefaultUserProfileDirectory获取相同的信息。
要创建配置文件,应使用用户帐户登录以获取登录令牌(请参阅LogonUser LOGON32_LOGON_INTERACTIVE
参数的dwLogonType
标记,然后使用LoadUserProfile如果用户不存在,将创建本地用户配置文件。如果用户具有中心或roaming profile,则应填写输入PROFILEINFO结构lpProfilePath
,以便它指向服务器上用户的漫游配置文件路径。要获取路径,可以使用NetUserGetInfo,dwLevel
等于4.这种方式非常陈旧,例如here。
因为真正需要来自[LogonUser]的登录令牌才能获得大用户对其文件和注册表项所需权限所需的用户SID,从Vista开始Microsoft引入了另一种简化且非常实用的API CreateProfile它取代CreateUserProfileEx(仅存在于Windows XP上)。
我在之前解释的所有内容仅在极少情况下才真正需要。主要是仅当您使用Windows服务的用户帐户时。在标准情况下,用户配置文件将在计算机上的第一个交互式用户登录处自动创建。
如果您需要对计算机上的所有用户进行一些更改,例如在安装新软件之后,您可以通过多种方式执行此操作,而无需创建用户配置文件。
如果您更准确地解释为什么,您需要创建用户个人资料,我可能会建议您使用另一种方法来存档相同的目标。
答案 1 :(得分:0)
我在ServerFault上问了一个非常similar question,我真的很喜欢我到那里的答案。换句话说,这些是步骤:
似乎没有直接的方式来覆盖它,但这似乎非常聪明,而且很可能是唯一的解决方案。
由于没有人评论或留下答案,我会稍微改变一下我的问题。