【问题标题】:Folder permissions through powershell通过PowerShell的文件夹权限
【发布时间】:2013-02-07 20:17:49
【问题描述】:

我试图在 AD 中为新创建的用户设置一些权限。 创建文件夹后,我尝试像这样设置各种权限:

$Rights = [System.Security.AccessControl.FileSystemRights]::FullControl
$Inherit = @([System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit)
$Propagation = [System.Security.AccessControl.PropagationFlags]::None
$Access =[System.Security.AccessControl.AccessControlType]::Allow
$ACL = New-Object System.Security.Principal.NTAccount "localdomain\$userprincipalname"
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule($ACL, $Rights, $Inherit, $Propagation, $Access)                     
$ACL = Get-Acl -Path $userDir
$ACL.AddAccessRule($objACE) 
Set-ACL -Path $userDir -AclObject $ACL 

我得到的错误与我传递给 AddAccessRule 的参数有关

Exception calling "AddAccessRule" with "1" argument(s): "Some or all identity references could not be translated."
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

但我在这里看不到任何错误,所以我真的很感激另一双眼睛。

【问题讨论】:

  • 你检查过$userprincipalname的值吗?也许不正确?
  • 是的,$userprincipalname$userDir 都是正确的,正如前面在脚本中指定的那样。
  • 我可以说您在我的域中的代码可以在 $userprincipalname 处提供现有的 samUserName 和到 $userDir 的现有路径。
  • 我想我只是在某个地方搞砸了一些参数,我让它工作了。因为这不是一个真正的问题/答案线程 - 我应该删除它吗?
  • @Alexander 不,只需自己发布答案并接受即可。该问题有一个有用的代码示例,应该保留。

标签: active-directory powershell-2.0 file-permissions user-permissions


【解决方案1】:

好的,所以我的解决方案有效,据我所知,是设置文件夹权限的方法。

$Rights = [System.Security.AccessControl.FileSystemRights]::FullControl
$Inherit = @([System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit)
$Propagation = [System.Security.AccessControl.PropagationFlags]::None
$Access =[System.Security.AccessControl.AccessControlType]::Allow
$ACL = New-Object System.Security.Principal.NTAccount "localdomain\$userprincipalname"
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule($ACL, $Rights,$Inherit, $Propagation, $Access)                     
$ACL = Get-Acl -Path $userDir
$ACL.AddAccessRule($objACE) 
Set-ACL -Path $userDir -AclObject $ACL 

【讨论】:

    猜你喜欢
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多