如何使用powershell编辑Active Directory中对象类的默认安全性

ryhaxcpt  于 2022-12-04  发布在  Shell
关注(0)|答案(1)|浏览(111)

Active Directory Cookbook
Active Directory中的每个示例化对象都有一个定义默认安全描述符(defaultSecurityDescriptor属性)的相关结构类。创建对象时,默认安全描述符将应用于该对象。这与从父容器继承的权限沿着决定了对象的安全描述符最初是如何定义的。
可以在Active Directory Schema MMC管理单元中的类属性的Default Security选项卡中编辑此属性。
如何使用powershell编辑此默认ACL?
(我最好使用Get-ACL/Set-ACL,因为我对它比较熟悉。)

m1m5dgzv

m1m5dgzv1#

无法使用Get-ACL/Set-ACL来执行此操作,但是可以编辑defaultSecurityDescriptor属性,如下所示:

$adSchema = (Get-ADRootDSE).schemaNamingContext
$computerObject = Get-ADObject -SearchBase $adSchema -Filter "Name -eq 'Computer'" -Properties defaultSecurityDescriptor
$computerDefaultSecurityDescriptor = New-Object -TypeName System.Security.AccessControl.CommonSecurityDescriptor -ArgumentList @($false, $false, $computerObject.defaultSecurityDescriptor)

# make modifications to $computerDefaultSecurityDescriptor.DiscretionaryACL
# e.g. 
# $computerDefaultSecurityDescriptor.DiscretionaryAcl | where SecurityIdentifier -eq "S-1-3-0" | % $computerDefaultSecurityDescriptor.DiscretionaryAcl.RemoveAce($_)

$newSDDL = $computerDefaultSecurityDescriptor.GetSddlForm([System.Security.AccessControl.AccessControlSections]::All);'
Set-ADObject $ComputerObject -replace @{defaultSecurityDescriptor = $newSDDL}

相关问题