AD_Tiering_mode/Step-08-Set-OUGPOPermissions.ps1
2023-11-28 17:36:11 +01:00

39 lines
1.5 KiB
PowerShell

<#
#>
cls
#throw "This is not a robus script"
$location = Get-Location
Set-Location C:\Tools
Import-Module ActiveDirectory
$Fichier = "OU-GPO-Permissions.csv"
$List = Import-Csv -Path $Fichier -Delimiter ";"
$rootdse = Get-ADRootDSE
$domain = Get-ADDomain
$guidmap = @{ }
Get-ADObject -SearchBase ($rootdse.SchemaNamingContext) -LDAPFilter "(schemaidguid=*)" -Properties lDAPDisplayName, schemaIDGUID | ForEach-Object { $guidmap[$_.lDAPDisplayName] = [System.GUID]$_.schemaIDGUID }
$extendedrightsmap = @{ }
Get-ADObject -SearchBase ($rootdse.ConfigurationNamingContext) -LDAPFilter "(&(objectclass=controlAccessRight)(rightsguid=*))" -Properties displayName, rightsGuid | ForEach-Object { $extendedrightsmap[$_.displayName] = [System.GUID]$_.rightsGuid }
$List | ForEach-Object {
$ouPrefix = $_.OUPrefix
$Group = $_.Group
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty,WriteProperty", "Allow", $guidmap["gplink"], "All"))
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["gpoptions"], "All"))
Write-Host "Configuring GPO Permissions on '$ouPath' for group '$Group'"
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
}