Windows 在登录前创建域用户的主目录

Windows 在登录前创建域用户的主目录

我正在尝试在用户首次登录之前预填充用户的主目录。我想通过编程来实现这一点。现在,我可以创建一个文件夹,但是当用户登录时,它会创建一个不同的文件夹,并在末尾添加域。以下是目前的情况。

@echo off
IF EXIST C:\USERS\%1 GOTO COMPLETE
GOTO FIRSTLOGON

:FIRSTLOGON
:: Create user folder on C:\
mkdir "C:\USERS\%1"
:: copy folder structure from template to new user folder
mkdir "c:\Users\%1\Desktop"
mkdir "c:\Users\%1\Documents"
mkdir "c:\Users\%1\Downloads"
mkdir "c:\Users\%1\Music"
mkdir "c:\Users\%1\Pictures"

:: Set rights on new folder
::: Remove inheritance, grant owner everything and admin everything
icacls "C:\USERS\%1" /inheritance:r /grant DOMAIN\%1:(OI)(CI)F
icacls "C:\USERS\%1" /grant %computername%\Administrator:(OI)(CI)F
GOTO END


:COMPLETE
echo Folder creation complete

:END

但是,该文件夹不会是用户的主目录。我猜我需要将带有用户 GUID 的注册表项添加到 HKLM > SOFTWARE > Microsoft > Windows NT > CurrentVersion > ProfileList,但不确定如何从用户名获取 GUID,以及是否需要执行其他任何操作。

注意:我不想更改每台计算机的用户主目录,只想更改他们登录的计算机的主目录。

答案1

我解决这个问题的方法是,在 HKLM > SOFTWARE > Microsoft > Windows > Current Version > Run 中添加一个注册表项,该注册表项在另一个位置运行脚本。脚本的主要目的是在用户主目录中创建一个文件夹并移动一个文件。如果该文件夹已经存在,我就退出脚本。

我最初将它放在 RunOnce 中,但是它只会在任何用户第一次登录时运行,并且如果其他用户第一次登录则不会运行。

相关内容