2016-08-23 5 views
0

나는 사용자를위한 홈 디렉토리를 생성하고 이에 따라 권한을 설정하기 위해 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 

나는 여기를 잃어 버렸다. 코드가 내 컴퓨터의 폴더에서 작동하기 때문에 위의 폴더에서 코드를 실행하려고하면 ID 참조와 관련된 오류가 발생합니다.

의견을 보내 주시면 감사하겠습니다.

답변

0

위의 코드가 정상적으로 작동하면 오류 메시지가 사용자 이름으로 전송됩니다. 이 오류는 사용자 이름이 활성 디렉토리 나 로컬 시스템에서 인식되지 않는다는 것을 의미합니다. 따라서 $account 변수가 자신이 생각하는 변수를 생성하고 계정이 활성 디렉토리 또는 로컬 시스템에 있는지 확인하십시오.

$Account | Write-Host  
+0

나는 이것을 시도했다. 계정 변수를 하드 코딩했습니다. 어떤 아이디어로 인해 사용자가 인식되지 않을 수 있습니까? 폴더가있는 다른 컴퓨터에서이 코드를 실행하면 차이가 있습니까? – MogulBomb

+0

@NLarkin 계정이 로컬 계정이나 AD에 연결되어 있습니까? 그리고 컴퓨터가 도메인에 가입되어 있습니까? 또한'Invoke-Command'를 사용하여 컴퓨터에서 원격으로 명령을 실행 해 보았습니까? – Richard

관련 문제