bea*_*mit 4 windows winlogon user-profile windows-7
我正在尝试做类似于提出此问题的用户尝试执行的操作:
关于用户配置文件的组件,我发现了这一点.
我的目标是Windows 7(专业版或企业版).我不仅仅是一个Linux人,所以在Windows上进行编程时我很无能为力,所以请保持温和.
PS有没有办法可以在Linux上开始开发,然后在不使用VM的情况下在Windows上进行测试?
我正在构建一个配置文件同步程序,供那些移动很多的人使用,这样他们就不必到处携带笔记本电脑.此问题解决了用户登录到新计算机的情况.可能的应用是:
我希望尽可能提供最好的用户体验,这意味着近乎即时的配置文件创建.漫游配置文件很慢并且充满了错误.让Windows创建一个配置文件实际上不是一个选项,因为我需要进行自定义身份验证(我想出这个),我需要从服务器复制设置.
我需要的是一种方法:
这就是我在想的事情:
首先,我建议你阅读本关于用户个人资料.
用户配置文件的主要思想很简单,从第一版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_INTERACTIVE
dwLogonType
lpProfilePath
dwLevel
因为真正需要来自[LogonUser]的登录令牌才能获得大用户对其文件和注册表项所需权限所需的用户SID,从Vista开始Microsoft引入了另一个简化且非常实用的API CreateProfile,它取代了CreateUserProfileEx(仅存在)在Windows XP上).
我之前解释的所有内容实际上只是在很少的情况下才需要.主要是仅当您使用Windows服务的用户帐户时.在标准情况下,将在计算机上的第一个交互式用户登录时自动创建用户配置文件.
如果您需要对计算机上的所有用户进行一些更改,例如在安装新软件之后,您可以通过多种方式执行此操作,而无需创建用户配置文件.
如果您更准确地解释为什么需要创建用户配置文件,我可能会建议您使用另一种方法来存档相同的目标.