我正在尝试使用powershell为用户创建主目录,并相应地为它们设置权限。
我似乎一直在遇到这个我无法设置权限的问题。我收到了这个错误:
异常调用" AddAccessRule"用" 1"参数:"部分或全部身份参考无法翻译。" 在行:1个字符:1 + $ permissions.AddAccessRule($ userpermissions) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:IdentityNotMappedException
以下是代码部分:
$UserDir = [string]::Format("{0}\{1}", $HomeDirRoot, $user["UserName"])
$Account = [string]::Format("{0}\{1}", "Domain", $user["UserName"])
#Create Directory
New-Item -ItemType directory -Path $UserDir |Out-Null
# assign file permissions
$FileSystemAccessRights=[System.Security.AccessControl.FileSystemRights]"FullControl"
$InheritanceFlags=[System.Security.AccessControl.InheritanceFlags]::"ContainerInherit", "ObjectInherit"
$PropagationFlags=[System.Security.AccessControl.PropagationFlags]::None
$AccessControl=[System.Security.AccessControl.AccessControlType]::Allow
$NewAccessrule = New-Object System.Security.AccessControl.FileSystemAccessRule ` ($Account, $FileSystemAccessRights, $InheritanceFlags, $PropagationFlags, $AccessControl)
$CurrentACL=Get-ACL -path $UserDir
$CurrentACL.SetAccessRule($NewAccessrule)
Set-ACL -path $UserDir -AclObject $CurrentACL
我已尝试过此代码的多种变体,但最终仍会出现相同的错误。我甚至可以简单地获取ACL对象,然后使用它来设置如下所示的权限:
$folder = "\\fs\home\SAMACCOUNTNAMEHERE"
$permissions = Get-Acl $folder
Set-Acl $folder $permissions
我在这里不知所措。因为代码适用于我的计算机上的文件夹,但是当我尝试在上面的文件夹上运行它时会出现与身份引用有关的错误。
任何建议表示赞赏。
答案 0 :(得分:0)
你上面的代码工作正常,你得到的错误是你给的用户名。此错误表示活动目录或本地计算机无法识别用户名。因此,请检查您的$account
变量是否产生您认为的变量以及该帐户是否存在于活动目录或本地计算机中。
$Account | Write-Host