Acest lucru ar putea fi oarecum generic, deoarece există alte comenzi care pot fi executate. De exemplu, removeLingeringObject este folosit în mod obișnuit.
Sursă: https://github.com/edemilliere/ADSI/blob/master/Invoke-ADSDPropagation.ps1
Funcția Invoke-ADSDPropagation{
<#
.REZUMAT
Invocați o sarcină SDProp pe PDCe.
.DESCRIERE
Efectuați un apel LDAP pentru a declanșa SDProp.
.EXEMPLU
Invocare-ADSDPropagation
În mod implicit, este utilizat RunProtectAdminGroupsTask.
.EXEMPLU
Invoke-ADSDPropagation -TaskName FixUpInheritance
Utilizați vechiul nume de activitate FixUpInheritance pentru Windows Server 2003 și versiuni anterioare.
.PARAMETER TaskName
Numele sarcinii de utilizat.
- FixUpInheritance pentru sistemul de operare vechi
- RunProtectAdminGroupsTask pentru sistemul de operare recent
.INTRARI
.IEȘIRI
.NOTE
Puteți urmări progresul cu:
Get-Counter -Counter „\directoryservices(ntds)\ds security descriptor propagator runtime queue” | Select-Object -ExpandProperty CounterSamples | Select-Object -ExpandProperty CookedValue
.LEGĂTURĂ
http://ItForDummies.net
#>
[CmdletBinding()]
Param(
[Parametru(Obligatoriu=$fals,
HelpMessage='Numele domeniului unde să forțezi rularea SDProp',
Poziție=0)]
[ValidateScript({Test-Conexiune -ComputerName $_ -Count 2 -Quiet})]
[String]$DomainName = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().Name,
[ValidateSet('RunProtectAdminGroupsTask','FixUpInheritance')]
[String]$TaskName = „RunProtectAdminGroupsTask”
)
încerca{
$DomainContext = Obiect nou System.DirectoryServices.ActiveDirectory.DirectoryContext('domeniu',$DomainName)
$DomainObject = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext)
Scriere-verbos -Message „PDCe detectat este $($DomainObject.PdcRoleOwner.Name).”
$RootDSE = Sistem de obiect nou.DirectoryServices.DirectoryEntry("LDAP://$($DomainObject.PdcRoleOwner.Name)/RootDSE")
$RootDSE.UsePropertyCache = $false
$RootDSE.Put($TaskName, "1") # RunProtectAdminGroupsTask & fixupheritance
$RootDSE.SetInfo()
}
captură{
throw „Nu se poate invoca SDProp pe $($DomainObject.PdcRoleOwner.Name) !”
}
}