如何以编程方式导致创建新的Windows用户的个人资料?
我正在为Windows服务创建(本地)用户运行。我有充分的理由不想使用网络服务,本地服务或本地系统。 我通过创建用户net user foobar "Abcd123!" /add-效果很好。 此时,c:\users\foobar尚不存在。 如果我创建了用户的主目录,则在用户登录(或更确切地说,是针对用户的服务)或启动用户要使用的服务之前,Windows会创建一个名为“邻家用户配置文件”的邻家服务器c:\users\foobar-{gibberish/SID/whatever}-这不是可预测的名称。 我需要用户的主目录包含诸如.ssh目录之类的东西,.gitconfig-这样的工具(不限于那些工具),这些工具假设它将是一个使用它们的人,因此用户配置应包含在内~/...。通常,工具来自Unix。 实际问题 那么-是否存在一种编程方式(最好是PowerShell或现成的命令行)来告诉Windows为本地用户创建用户配置文件? 或者,还有其他解决方法吗? 我尚未尝试的事情: 一个NSSM启动/预挂钩,通过Windows启动该服务,创建用户配置文件,然后将控制权交给运行该挂钩的NSSM包装程序,从而在启动之前将文件从其他位置复制到当前希望存在的用户配置文件目录中。 将服务的USERPROFILE环境变量设置为实际用户配置文件目录之外的其他位置。这使我觉得是危险的越野滑雪,但也可以正常工作。 其他背景: Windows Server 2016,桌面体验。 不能使用Core / Nano。 没有正在使用的活动目录。不会的。 这些是本地用户。 我正在通过Ansible进行此操作,后者在Windows的后台使用PowerShell。特别是带有Ansible 2.7.5 的win_user模块。 我不想创建一个C:\users\default(等效于/etc/skel),因为有几个不同的服务用户,并且一个大小无法容纳所有用户。这也不会影响用户配置文件的创建时间,只会影响创建时的内容。 我正在使用NSSM来管理服务。 我尝试过的事情 启动服务并允许Windows创建目录 我不想这样做,因为该服务在启动之前需要秘密,因此,如果我在图像烘焙过程中执行此操作,则需要清理它们,并确保我的服务不起作用烘烤阶段的任何工作。我想避免这两个小问题。