我尝试使用创建用户新 QAD 用户cmdlet。我知道此 cmdlet 有-家庭驾驶开关。但问题是 cmdlet 只是应用路径字符串到用户的帐户,而不是在文件服务器就像使用 ADUC 控制台时发生的情况一样。我该如何正确操作?
答案1
创建用户帐户的脚本是否也具有文件服务器的管理访问权限?
为什么不让脚本创建主驱动器?非常简单的例子:
$user = read-host -prompt "Enter Username"
$server = "HOMEDRIVESERVER"
$share = "usershare$"
New-QADUser -name $user etc..
newitem -path \\$HOMEDRIVERSERVER.domain.com\$share -name $user -itemtype directory
这里唯一的问题就是设置文件夹的 ACL,这可以通过 set-acl 来完成。这里有更多关于 ACLS 的信息。
http://chrisfederico.wordpress.com/2008/02/01/setting-acl-on-a-file-or-directory-in-powershell/
以这种方式编写脚本的好处是能够将其正在执行的操作输出到日志文件以供脚本审计之用。当然,它不一定能为您提供 MMC 控制台提供的一步式精细操作。
答案2
创建主驱动器并将其连接到用户的结果代码山姆sam 帐户名称:
$HomeDir = "<Path>"
$Sam = "<User's Sam Account Name>"
$User = Get-QADUser -SamAccountName "$Sam"
New-Item -Path $HomeDir -Name $Sam -ItemType Directory
$UserDir = "$HomeDir\$Sam"
$Rights = [System.Security.AccessControl.FileSystemRights]::FullControl
$Inherit=[System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$Propogation=[System.Security.AccessControl.PropagationFlags]::None
$Access=[System.Security.AccessControl.AccessControlType]::Allow
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$Sam",$Rights,$Inherit,$Propogation,$Access)
$ACL = Get-Acl $UserDir
$ACL.AddAccessRule($AccessRule)
Set-Acl $UserDir $ACL
Set-QADUser -Identity $User -HomeDirectory "$UserDir" -HomeDrive "Z:"
答案3
powershell setfolderpermission.ps1
从以下位置下载http://www.powershell.nu/wp-content/uploads/2009/02/setfolderpermission.ps1
Function CreateHomeFolder {
Param($userinfo)
$homeserver = '\\homeserver'
$HomeFolderRoot = "\home\'
Mkdir ($homeserver + $HomeFolderRoot + $userinfo['AccountName'])
}
Function UpdateHomeDirRights2 {
Param($userinfo)
$homeserver = '\\taz'
$HomeDrive = "S"
$HomeFolderRoot = "\home\'
$HomeDirectory = $homeserver + $HomeFolderRoot + $userinfo[*'AccountName'*]
./SetFolderPermission.ps1 -path $HomeDirectory -Access $userinfo[*'UserPrincipalName'*] -Permission FullControl
}