我想使用powershell爲用戶創建主目錄以及相應地爲其設置權限。Powershell在主目錄中設置權限
我似乎仍然遇到這個問題,我無法設置權限。我收到此錯誤:
Exception calling "AddAccessRule" with "1" argument(s): "Some or all identity references could not be translated." At line:1 char: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
我很茫然這裏。因爲代碼在我的機器上的文件夾上工作,但是當我嘗試在上面的文件夾上運行它時,它會炸燬與身份引用有關的錯誤。
任何建議表示讚賞。
我試過了。我甚至硬編碼賬戶變量。任何可能導致用戶無法識別的想法?在不同的機器上(從文件夾存在的位置)運行此代碼會有所作爲嗎? – MogulBomb
@NLarkin您的帳戶是連接到本地帳戶還是AD?機器是否加入了域名?你有沒有試過用'Invoke-Command'在機器上遠程運行命令? – Richard