程序化Windows用户配置文件创建

bea*_*mit 4 windows winlogon user-profile windows-7

我正在尝试做类似于提出此问题的用户尝试执行的操作:

来自凭据提供程序DLL的HTTPS请求

关于用户配置文件的组件,我发现了这一点.

  • Windows将识别和加载的最小配置文件是什么?
  • 如何在Windows中创建和注册配置文件?

我的目标是Windows 7(专业版或企业版).我不仅仅是一个Linux人,所以在Windows上进行编程时我很无能为力,所以请保持温和.

PS有没有办法可以在Linux上开始开发,然后在不使用VM的情况下在Windows上进行测试?

这就是我想要做的

我正在构建一个配置文件同步程序,供那些移动很多的人使用,这样他们就不必到处携带笔记本电脑.此问题解决了用户登录到新计算机的情况.可能的应用是:

  • 经常在办公室之间旅行的商人
  • 每天使用不同电脑的学生
  • 国外网吧用户
  • 不喜欢在获得新计算机时复制文件的家庭用户

我希望尽可能提供最好的用户体验,这意味着近乎即时的配置文件创建.漫游配置文件很慢并且充满了错误.让Windows创建一个配置文件实际上不是一个选项,因为我需要进行自定义身份验证(我想出这个),我需要从服务器复制设置.

我需要的是一种方法:

  • 仅在用户登录时创建基本要素
  • 如果配置文件已更新,则从云更新设置
  • 让用户从登录屏幕在30秒内工作(最好快得多)

这就是我在想的事情:

  • 使用服务器验证用户
  • 联系Windows服务以处理配置文件创建/更新
  • Windows服务将在创建配置文件时下载裸设置
  • 设置已应用
  • 用户已登录

Ole*_*leg 7

首先,我建议你阅读关于用户个人资料.

用户配置文件的主要思想很简单,从第一版Windows NT(我的意思是Windows NT 3.1)开始保持不变:用户配置文件由本地计算机上现有的目录结构组成.用户配置文件中的一个文件(如此命名的配置单元)表示注册表的当前用户部分.用户对其用户配置文件具有完全访问权限非常重要.访问权限不仅保存在文件系统中,还保存在注册表内部.因此,要为用户创建配置文件,必须先创建用户帐户,因为注册表项的文件的安全描述符部分必须包含用户的SID(安全标识符).

如果将创建新的用户配置文件,则用户配置文件的"原型"将用作模板.您可以在注册表中找到模板的路径,作为注册表项Default下的值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.您可以使用GetDefaultUserProfileDirectory来获取相同的信息.

要创建配置文件,应使用用户帐户登录以获取登录令牌(请参阅带参数标志的LogonUser),然后使用LoadUserProfile创建本地用户配置文件(如果该用户不存在).如果用户具有中央或漫游配置文件,则应填写输入PROFILEINFO结构,以便它指向服务器上用户的漫游配置文件路径.为了获得路径,可以使用等于4的NetUserGetInfo.这种方式非常陈旧,例如在此处描述.LOGON32_LOGON_INTERACTIVEdwLogonTypelpProfilePathdwLevel

因为真正需要来自[LogonUser]的登录令牌才能获得大用户对其文件和注册表项所需权限所需的用户SID,从Vista开始Microsoft引入了另一个简化且非常实用的API CreateProfile,它取代了CreateUserProfileEx(仅存在)在Windows XP上).

我之前解释的所有内容实际上只是在很少的情况下才需要.主要是仅当您使用Windows服务的用户帐户时.在标准情况下,将在计算机上的第一个交互式用户登录自动创建用户配置文件.

如果您需要对计算机上的所有用户进行一些更改,例如在安装新软件之后,您可以通过多种方式执行此操作,而无需创建用户配置文件.

如果您更准确地解释为什么需要创建用户配置文件,我可能会建议您使用另一种方法来存档相同的目标.