我希望我的 Active Directory 用户拥有自己的主文件夹来存储他们的文件,并且我希望通过 PowerShell 为每个用户帐户设置此文件夹。我尝试了几种方法,但它所做的只是将 AD 中“配置文件”下的设置更改为主文件夹位置,而这似乎并没有在用户登录时显示出来。我尝试过的一些代码:
SET-ADUSER inggul –HomeDrive ‘P:’ –HomeDirectory ‘\\WIN-L372AGVF8AI\NewHome\$Inggul’
$users = Get-ADUser -SearchBase "ou=sAdminOU,dc=kossi,dc=local" -Filter * -Properties Department
foreach ($user in $users)
{
Set-ADUser $_.SamAccountName -HomeDrive "Z:" -HomeDirectory "\\WIN-L372AGVF8AI\NewHome\($_.SamAccountName)"
}
答案1
如果您已设置路径,并且该路径显示在配置文件中,但无法为用户映射,则很可能是访问问题。除非用户有权访问该路径,否则它不会映射驱动器。如果输入错误或权限不正确,驱动器将不会映射。如果登录时网络不可用,它也不会映射。网络不可用问题在笔记本电脑中很常见,因为无线连接速度不够快。
另请注意,当您通过 AD 用户和计算机 GUI 创建主目录时,它将创建文件夹(如果需要)并为用户明确添加权限。如果您通过 powershell 更改属性,则需要自己创建和设置权限。您也可以通过 powershell 执行此操作。
$samAccountName = "TUser"
$domain = "Contoso"
$homePath = "\\Server\Home"
### Create Home Folder
New-Item -Path "$homePath\$samAccountName" -ItemType Directory
### Set Permissions on home folder
$aclPath = "$homePath\$samAccountName"
$acl = Get-Acl $aclPath
$identity = "$domain\$samAccountName"
$rights = "Modify"
$inheritanceFlags = "ContainerInherit, ObjectInherit"
$propagationFlags = "None"
$accessControlType = "Allow"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$identity","$rights","$inheritanceFlags","$propagationFlags","$accessControlType")
$acl.AddAccessRule($rule)
Set-Acl $aclPath $acl