我尝试使用 PowerShell 脚本自动将驱动器映射到用户。
该脚本使用以下命令创建用户:
New-ADUser -Name $userName -GivenName $userName -Surname $userName -DisplayName $userName -Path "OU=Eng,DC=lovely,DC=Local" -SamAccountName $userName -AccountPassword (ConvertTo-SecureString $pass -AsPlainText -Force) -UserPrincipalName ($userName + '@lovely.local') -Enable $true -HomeDrive 'H:' -HomeDirectory "\\DC01\Private\$userName"
用户已创建,但是当我登录到用户帐户时,驱动器未映射,“私人”共享中的用户文件夹未创建。
然后我尝试从客户端手动映射它,我收到以下错误消息:
由于发生以下错误,无法创建映射驱动器:指定的网络资源或驱动器不再可用
所以我在服务器中创建了用户文件夹(路径:)C:\Private\user1
,我可以手动映射它。
所以我断开了驱动器,并打开了用户配置文件选项卡(AD 用户和计算机 → OU → user1 → 配置文件)并再次手动输入相同的路径:
\\DC01\Private\user1
一旦我再次登录,驱动器就会被映射!
为什么会这样?
- 服务器(2016 标准)作为虚拟机安装在 VirtualBox 上,客户端是 Windows 8,也是一个虚拟机。
- Windows 防火墙已禁用,Windows Defender 也已禁用。
- Windows 8 机器是域中的成员。
“私人”共享属性:
再一次,当我手动创建一个新用户时,映射过程工作得很好。
完整的脚本:
Import-Module ActiveDirectory
#-----------------#
# Global Var
#-----------------#
$pass = 'Pa$$w0rd'
$drive_letter = 'H:'
$dir_path = '\\DC01\Private'
#-----------------#
# Eng department
#-----------------#
$totalusers = 9
$uname = "Eng"
$ou = "Eng"
for ($i=0; $i -lt $totalusers; $i++) {
$userID = "{0:00}" -f ($i + 1)
$userName = "$uname$userID"
Write-Host "Creating AD user" ($i + 1) "of" $totalusers ":" $userName
New-ADUser -Name $userName -DisplayName $userName -Path "OU=$ou,DC=lovely,DC=Local" -SamAccountName $userName -AccountPassword (ConvertTo-SecureString $pass -AsPlainText -Force) -UserPrincipalName ($userName + '@lovely.local') -HomeDrive $drive_letter -HomeDirectory "$dir_path\$userName" -Enable $true
}