update
This commit is contained in:
parent
92d8156af0
commit
ad43503820
@ -1,40 +0,0 @@
|
|||||||
<#
|
|
||||||
.Example
|
|
||||||
$csv = Read-Host -Prompt "Please provide full path to Groups csv file"
|
|
||||||
.\Creation-Groupe.ps1 -CSVfile $csv -Verbose
|
|
||||||
PS C:\Tools> $csv = Read-Host -Prompt "Please provide full path to Groups csv file"
|
|
||||||
Please provide full path to Groups csv file: c:\tools\groups.csv
|
|
||||||
PS C:\Tools> .\Creation-Groupe.ps1 -CSVfile $csv -Verbose
|
|
||||||
VERBOSE: Creating new Group 'Tier0ReplicationMaintenance' under 'OU=Groups,OU=Tier0,OU=Admin,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: Creating new Group 'Tier1ServerMaintenance' under 'OU=Groups,OU=Tier1,OU=Admin,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: Creating new Group 'ServiceDeskOperators' under 'OU=Groups,OU=Tier2,OU=Admin,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: Creating new Group 'WorkstationMaintenance' under 'OU=Groups,OU=Tier2,OU=Admin,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: Group 'tier1admins'already exists.
|
|
||||||
VERBOSE: Group 'tier2admins'already exists.
|
|
||||||
#>
|
|
||||||
|
|
||||||
[CmdletBinding()]
|
|
||||||
param(
|
|
||||||
[string] $CSVfile
|
|
||||||
)
|
|
||||||
$dNC = (Get-ADRootDSE).defaultNamingContext
|
|
||||||
$groups = Import-Csv $CSVfile
|
|
||||||
foreach ($group in $groups) {
|
|
||||||
$groupName = $group.Name
|
|
||||||
$groupOUPrefix = $group.OU
|
|
||||||
$destOU = $group.OU + "," + $dNC
|
|
||||||
$groupDN = "CN=" + $groupName + "," + $destOU
|
|
||||||
$checkForGroup = Get-ADGroup -filter 'Name -eq $groupName' -ErrorAction SilentlyContinue
|
|
||||||
If ($checkForGroup.count -eq 0 ) {
|
|
||||||
Write-Verbose "Creating new Group '$($Group.samAccountName)' under '$destOU'"
|
|
||||||
New-ADGroup -Name $Group.Name -SamAccountName $Group.samAccountName -GroupCategory $Group.GroupCategory -GroupScope $Group.GroupScope -DisplayName $Group.DisplayName -Path $destOU -Description $Group.Description
|
|
||||||
If ($Group.Membership -ne "") {
|
|
||||||
Write-Verbose "Adding Group Membership '$($Group.Membership)' for group '$($Group.samAccountName)'"
|
|
||||||
Add-ADPrincipalGroupMembership -Identity $Group.samAccountName -MemberOf $Group.Membership
|
|
||||||
}
|
|
||||||
$error.Clear()
|
|
||||||
}
|
|
||||||
Else {
|
|
||||||
Write-Verbose "Group '$($Group.samAccountName)'already exists."
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
<#
|
|
||||||
.Example
|
|
||||||
Atempt to create OU that not exists in the desired path
|
|
||||||
$OUs = @(
|
|
||||||
$(New-Object PSObject -Property @{Name = "Desktops"; ParentOU = "ou=Workstations" }),
|
|
||||||
$(New-Object PSObject -Property @{Name = "Kiosks"; ParentOU = "ou=Workstations" }),
|
|
||||||
$(New-Object PSObject -Property @{Name = "Laptops"; ParentOU = "ou=Workstations" }),
|
|
||||||
$(New-Object PSObject -Property @{Name = "Staging"; ParentOU = "ou=Workstations" })
|
|
||||||
)
|
|
||||||
.\Create-OU.ps1 -OUs $OUs -Verbose
|
|
||||||
PS C:\Tools> .\Create-OU.ps1 -OUs $OUs -Verbose
|
|
||||||
VERBOSE: Creating new OU 'OU=Desktops,ou=Workstations,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: Creating new OU 'OU=Kiosks,ou=Workstations,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: Creating new OU 'OU=Laptops,ou=Workstations,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: Creating new OU 'OU=Staging,ou=Workstations,DC=azureblog,DC=pl'
|
|
||||||
.Example
|
|
||||||
Atempt to create OU that already exists in the desired path
|
|
||||||
$OUs = @(
|
|
||||||
$(New-Object PSObject -Property @{Name = "Desktops"; ParentOU = "ou=Workstations" }),
|
|
||||||
$(New-Object PSObject -Property @{Name = "Kiosks"; ParentOU = "ou=Workstations" }),
|
|
||||||
$(New-Object PSObject -Property @{Name = "Laptops"; ParentOU = "ou=Workstations" }),
|
|
||||||
$(New-Object PSObject -Property @{Name = "Staging"; ParentOU = "ou=Workstations" })
|
|
||||||
)
|
|
||||||
.\Create-OU.ps1 -OUs $OUs -Verbose
|
|
||||||
PS C:\Tools> .\Create-OU.ps1 -OUs $OUs -Verbose
|
|
||||||
VERBOSE: OU 'Desktops' already exists under 'ou=Workstations,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: OU 'Kiosks' already exists under 'ou=Workstations,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: OU 'Laptops' already exists under 'ou=Workstations,DC=azureblog,DC=pl'
|
|
||||||
VERBOSE: OU 'Staging' already exists under 'ou=Workstations,DC=azureblog,DC=pl
|
|
||||||
#>
|
|
||||||
|
|
||||||
[CmdletBinding()]
|
|
||||||
param(
|
|
||||||
[PSObject] $OUs
|
|
||||||
)
|
|
||||||
$dNC = (Get-ADRootDSE).defaultNamingContext
|
|
||||||
$OUs | ForEach-Object {
|
|
||||||
$name = $_.Name
|
|
||||||
$parentOU = $_.ParentOU
|
|
||||||
|
|
||||||
if ($ParentOU -eq '') {
|
|
||||||
$ouPath = "$dNC"
|
|
||||||
$testOUpath = "OU=$name,$dNC"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$ouPath = "$parentOU,$dNC"
|
|
||||||
$testOUPath = "OU=$name,$parentOU,$dNC"
|
|
||||||
}
|
|
||||||
|
|
||||||
$OUTest = (Get-ADOrganizationalUnit -Filter 'DistinguishedName -like $testOUpath' | Measure-Object).Count
|
|
||||||
if ($OUtest -eq 0) {
|
|
||||||
Write-Verbose "Creating new OU '$testOUPath'"
|
|
||||||
New-ADOrganizationalUnit -Name $name -Path $OUPath -ProtectedFromAccidentalDeletion:$true
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Verbose "OU '$name' already exists under '$ouPath'"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +1,21 @@
|
|||||||
Name,samAccountName,GroupCategory,GroupScope,DisplayName,OU,Description,Membership
|
Name;samAccountName;GroupCategory;GroupScope;DisplayName;OU;Description;Membership
|
||||||
Tier 0 PAW Users,Tier0PAWUsers,Security,Global,Tier 0 PAW Users,"OU=Groups,OU=Tier0,OU=Admin",Members of this group are permitted to log onto Tier0 Privileged Access Workstations using normal accounts,
|
Tier 0 PAW Users;Tier0PAWUsers;Security;Global;Tier 0 PAW Users;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Members OU=Groupes,OU=of this group are permitted to log onto Tier0 Privileged Access Workstations using normal accounts;
|
||||||
Tier 0 PAW Maintenance,Tier0PAWMaint,Security,Global,Tier 0 PAW Maintenance,"OU=Groups,OU=Tier0,OU=Admin",Members of this group maintain and support Tier0 Privileged Access Workstations,
|
Tier 0 PAW Maintenance;Tier0PAWMaint;Security;Global;Tier 0 PAW Maintenance;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Members of this group maintain and support Tier0 Privileged Access Workstations;
|
||||||
Tier 0 Replication Maintenance,Tier0ReplicationMaintenance,Security,Global,Tier 0 Replication Maintenance,"OU=Groups,OU=Tier0,OU=Admin",Members of this group are Tier 0 Replication Maintenance,
|
Tier 0 Replication Maintenance;Tier0ReplicationMaintenance;Security;Global;Tier 0 Replication Maintenance;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Members of this group are Tier 0 Replication Maintenance;
|
||||||
Tier 0 Servers,Tier0Servers,Security,Global,Tier 0 Servers,"OU=Groups,OU=Tier0,OU=Admin",Group that contain all Tier 0 servers,
|
Tier 0 Servers;Tier0Servers;Security;Global;Tier 0 Servers;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Group that contain all Tier 0 servers;
|
||||||
Tier 0 Sync Servers,Tier0SyncServers,Security,Global,Tier 0 Sync Servers,"OU=Groups,OU=Tier0,OU=Admin",Group that contain all Tier 0 synchronisation servers,
|
Tier 0 Sync Servers;Tier0SyncServers;Security;Global;Tier 0 Sync Servers;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Group that contain all Tier 0 synchronisation servers;
|
||||||
Tier 0 Physical Access,Tier0PhysicalAccess,Security,Global,Tier 0 PhysicalAccess,"OU=Groups,OU=Tier0,OU=Admin",Group that contain users allowed to access physical domain controller,
|
Tier 0 Physical Access;Tier0PhysicalAccess;Security;Global;Tier 0 PhysicalAccess;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Group that contain users allowed to access physical domain controller;
|
||||||
Tier 0 Physical DC,Tier0PhysicalDC,Security,Global,Tier 0 PhysicalDC,"OU=Groups,OU=Tier0,OU=Admin",Group that contain physical domain controller computer object,
|
Tier 0 Physical DC;Tier0PhysicalDC;Security;Global;Tier 0 PhysicalDC;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Group that contain physical domain controller computer object;
|
||||||
Tier 0 Service Accounts,Tier0serviceaccounts,Security,Global,Tier 0 Service Accounts,"OU=Groups,OU=Tier0,OU=Admin",Group that contain all Tier 0 svc accouts,
|
Tier 0 Service Accounts;Tier0serviceaccounts;Security;Global;Tier 0 Service Accounts;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Group that contain all Tier 0 svc accouts;
|
||||||
Tier 0 PAW Computers,Tier0PAWComputers,Security,Global,Tier 0 PAW Computers,"OU=Groups,OU=Tier0,OU=Admin",Group with members of the tier 0 devices servers and domaincontrollers,
|
Tier 0 PAW Computers;Tier0PAWComputers;Security;Global;Tier 0 PAW Computers;"OU=Groupes,OU=Tier0,OU=Admins,OU=SocieteA";Group with members of the tier 0 devices servers and domaincontrollers;
|
||||||
Tier 1 Admins,tier1admins,Security,Global,Tier 1 Admins,"OU=Groups,OU=Tier1,OU=Admin",Members of this group are Tier 1 Administrators,
|
Tier 1 Admins;tier1admins;Security;Global;Tier 1 Admins;"OU=Groupes,OU=Tier1,OU=Admins,OU=SocieteA";Members of this group are Tier 1 Administrators;
|
||||||
Tier 1 Server Maintenance,Tier1ServerMaintenance,Security,Global,Tier 1 Server Maintenance,"OU=Groups,OU=Tier1,OU=Admin",Members of this group perform Tier 1 Server Maintenance,
|
Tier 1 Server Maintenance;Tier1ServerMaintenance;Security;Global;Tier 1 Server Maintenance;"OU=Groupes,OU=Tier1,OU=Admins,OU=SocieteA";Members of this group perform Tier 1 Server Maintenance;
|
||||||
Tier 1 PAW Users,Tier1PAWUsers,Security,Global,Tier 1 PAW Users,"OU=Groups,OU=Tier1,OU=Admin",Members of this group are permitted to log onto Tier1 Privileged Access Workstations using normal accounts,
|
Tier 1 PAW Users;Tier1PAWUsers;Security;Global;Tier 1 PAW Users;"OU=Groupes,OU=Tier1,OU=Admins,OU=SocieteA";Members of this group are permitted to log onto Tier1 Privileged Access Workstations using normal accounts;
|
||||||
Tier 1 PAW Computers,Tier1PAWComputers,Security,Global,Tier 1 PAW Computers,"OU=Groups,OU=Tier1,OU=Admin",Group with members of the Tier 1 devices and servers,
|
Tier 1 PAW Computers;Tier1PAWComputers;Security;Global;Tier 1 PAW Computers;"OU=Groupes,OU=Tier1,OU=Admins,OU=SocieteA";Group with members of the Tier 1 devices and servers;
|
||||||
Tier 1 PAW Maintenance,Tier1PAWMaint,Security,Global,Tier1 PAW Maintenance,"OU=Groups,OU=Tier1,OU=Admin",Members of this group maintain and support Tier0 Privileged Access Workstations,
|
Tier 1 PAW Maintenance;Tier1PAWMaint;Security;Global;Tier1 PAW Maintenance;"OU=Groupes,OU=Tier1,OU=Admins,OU=SocieteA";Members of this group maintain and support Tier0 Privileged Access Workstations;
|
||||||
Tier 1 Servers,Tier1Servers,Security,Global,Tier 1 Servers,"OU=Groups,OU=Tier1,OU=Admin",Group that contain all Tier 1 servers,
|
Tier 1 Servers;Tier1Servers;Security;Global;Tier 1 Servers;"OU=Groupes,OU=Tier1,OU=Admins,OU=SocieteA";Group that contain all Tier 1 servers;
|
||||||
Tier 1 Service Accounts,Tier1serviceaccounts,Security,Global,Tier 1serviceaccounts,"OU=Groups,OU=Tier1,OU=Admin",Group that contain all Tier 1 svc accouts,
|
Tier 1 Service Accounts;Tier1serviceaccounts;Security;Global;Tier 1serviceaccounts;"OU=Groupes,OU=Tier1,OU=Admins,OU=SocieteA";Group that contain all Tier 1 svc accouts;
|
||||||
Tier 2 Admins,tier2admins,Security,Global,Tier 2 Admins,"OU=Groups,OU=Tier2,OU=Admin",Members of this group are Tier 2 Administrators,
|
Tier 2 Admins;tier2admins;Security;Global;Tier 2 Admins;"OU=Groupes,OU=Tier2,OU=Admins,OU=SocieteA";Members of this group are Tier 2 Administrators;
|
||||||
Tier 2 Service Desk Operators,Tier2ServiceDeskOperators,Security,Global,Tier 2 Service Desk Operators,"OU=Groups,OU=Tier2,OU=Admin",Members of this group are Service Desk Operators,
|
Tier 2 Service Desk Operators;Tier2ServiceDeskOperators;Security;Global;Tier 2 Service Desk Operators;"OU=Groupes,OU=Tier2,OU=Admins,OU=SocieteA";Members of this group are Service Desk Operators;
|
||||||
Tier 2 Workstation Maintenance,Tier2WorkstationMaintenance,Security,Global,Tier 2 Workstation Maintenance,"OU=Groups,OU=Tier2,OU=Admin",Members of this group perform Workstation Maintenance,
|
Tier 2 Workstation Maintenance;Tier2WorkstationMaintenance;Security;Global;Tier 2 Workstation Maintenance;"OU=Groupes,OU=Tier2,OU=Admins,OU=SocieteA";Members of this group perform Workstation Maintenance;
|
||||||
Tier 2 Service Accounts,Tier2serviceaccounts,Security,Global,Tier 2 Service Accounts,"OU=Groups,OU=Tier2,OU=Admin",Group that contain all Tier 2 svc accouts,
|
Tier 2 Service Accounts;Tier2serviceaccounts;Security;Global;Tier 2 Service Accounts;"OU=Groupes,OU=Tier2;OU=Admins,OU=SocieteA";Group that contain all Tier 2 svc accouts;
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
Name,samAccountName,GroupCategory,GroupScope,DisplayName,OU,Description,Membership
|
Name;samAccountName;GroupCategory;GroupScope;DisplayName;OU;Description;Membership
|
||||||
Test Group 1,testgroup1,Security,Global,Test Group 1,"ou=Security Groups,OU=Groups",Group with random members,
|
Test Group 1;testgroup1;Security;Global;Test Group 1;"ou=Groupes Security,OU=Ressources,OU=Groupes,OU=SocieteA";Group with random members;
|
||||||
Test Group 2,testgroup2,Security,Global,Test Group 2,"ou=Security Groups,OU=Groups",Group with random members,
|
Test Group 2;testgroup2;Security;Global;Test Group 2;"ou=Groupes Security,OU=Ressources,OU=Groupes,OU=SocieteA";Group with random members;
|
||||||
Test Group 3,testgroup3,Security,Global,Test Group 3,"ou=Security Groups,OU=Groups",Group with random members,
|
Test Group 3;testgroup3;Security;Global;Test Group 3;"ou=Groupes Security,OU=Ressources,OU=Groupes,OU=SocieteA";Group with random members;
|
||||||
Test Group 4,testgroup4,Security,Global,Test Group 4,"ou=Security Groups,OU=Groups",Group with random members,
|
Test Group 4;testgroup4;Security;Global;Test Group 4;"ou=Groupes Security,OU=Ressources,OU=Groupes,OU=SocieteA";Group with random members;
|
||||||
|
|
4
OU-Computer-Permissions.csv
Normal file
4
OU-Computer-Permissions.csv
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Group;OuPrefix
|
||||||
|
Tier2WorkstationMaintenance;OU=Quarantine,ou=SocieteA
|
||||||
|
Tier2WorkstationMaintenance;OU=Workstations,ou=SocieteA
|
||||||
|
Tier1ServerMaintenance;OU=Tier 1 Servers,ou=SocieteA
|
|
2
OU-GPO-Permissions.csv
Normal file
2
OU-GPO-Permissions.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Group;OuPrefix
|
||||||
|
Tier1ServerMaintenance;OU=Tier 1 Servers,ou=SocieteA
|
|
3
OU-Group-Permissions.csv
Normal file
3
OU-Group-Permissions.csv
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Group;OuPrefix
|
||||||
|
Tier1Admins;OU=Groupes,ou=Tier1,ou=Admins,ou=SocieteA
|
||||||
|
Tier2Admins;OU=Groupes,ou=Tier2,ou=Admins,ou=SocieteA
|
|
2
OU-Replication-Permissions.csv
Normal file
2
OU-Replication-Permissions.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Group
|
||||||
|
Tier0ReplicationMaintenance
|
|
59
OU-Standard.csv
Normal file
59
OU-Standard.csv
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
Name;ParentOU;Description;IsBlocked
|
||||||
|
SocieteA;;Base de la sociéte,No
|
||||||
|
Admins;SocieteA;;No
|
||||||
|
Tier 1 Servers;SocieteA;;No
|
||||||
|
Groupes;SocieteA;;No
|
||||||
|
WorkStations;SocieteA;;No
|
||||||
|
Serveurs;SocieteA;;No
|
||||||
|
Users;SocieteA;;No
|
||||||
|
Quarantine;SocieteA;;No
|
||||||
|
Tier0;Admins,ou=SocieteA;;No
|
||||||
|
Tier1;Admins,ou=SocieteA;;No
|
||||||
|
Tier2;Admins,ou=SocieteA;;No
|
||||||
|
Accounts;Tier0,ou=Admins,ou=SocieteA;;No
|
||||||
|
Groupes;Tier0,ou=Admins,ou=SocieteA;;No
|
||||||
|
Service Accounts;Tier0,ou=Admins,ou=SocieteA;;No
|
||||||
|
Devices;Tier0,ou=Admins,ou=SocieteA;;Yes
|
||||||
|
Tier0 Serveurs;Tier0,ou=Admins,ou=SocieteA;;No
|
||||||
|
Accounts;Tier1,ou=Admins,ou=SocieteA;;No
|
||||||
|
Groupes;Tier1,ou=Admins,ou=SocieteA;;No
|
||||||
|
Service Accounts;Tier1,ou=Admins,ou=SocieteA;;No
|
||||||
|
Devices;Tier1,ou=Admins,ou=SocieteA;;Yes
|
||||||
|
Tier1 Serveurs;Tier1,ou=Admins,ou=SocieteA;;No
|
||||||
|
Accounts;Tier2,ou=Admins,ou=SocieteA;;No
|
||||||
|
Groupes;Tier2,ou=Admins,ou=SocieteA;;No
|
||||||
|
Service Accounts;Tier2,ou=Admins,ou=SocieteA;;No
|
||||||
|
Devices;Tier2,ou=Admins,ou=SocieteA;;Yes
|
||||||
|
Application;Tier 1 Servers,ou=SocieteA;;No
|
||||||
|
Collaboration;Tier 1 Servers,ou=SocieteA;;No
|
||||||
|
Database;Tier 1 Servers,ou=SocieteA;;No
|
||||||
|
Messaging;Tier 1 Servers,ou=SocieteA;;No
|
||||||
|
Staging;Tier 1 Servers,ou=SocieteA;;No
|
||||||
|
Contacts;Groupes,ou=SocieteA;;No
|
||||||
|
Softwares;Groupes,ou=SocieteA;;No
|
||||||
|
Partages;Groupes,ou=SocieteA;;No
|
||||||
|
Providers;Groupes,ou=SocieteA;;No
|
||||||
|
Ressources;Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Distribution;Contacts,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Security;Contacts,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Distribution;Softwares,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Security;Softwares,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Distribution;Partages,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Security;Partages,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Distribution;Ressources,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Groupes Security;Ressources,ou=Groupes,ou=SocieteA;;No
|
||||||
|
Desktops;WorkStations,ou=SocieteA;;No
|
||||||
|
Kiosks;WorkStations,ou=SocieteA;;No
|
||||||
|
Laptops;WorkStations,ou=SocieteA;;No
|
||||||
|
Staging;WorkStations,ou=SocieteA;;No
|
||||||
|
Dev;Serveurs,ou=SocieteA;;No
|
||||||
|
Rec;Serveurs,ou=SocieteA;;No
|
||||||
|
Staging;Serveurs,ou=SocieteA;;No
|
||||||
|
Production;Serveurs,ou=SocieteA;;No
|
||||||
|
_Disabled Users;Users,ou=SocieteA;;No
|
||||||
|
_To Deleted;Users,ou=SocieteA;;No
|
||||||
|
_In Arrived;Users,ou=SocieteA;;No
|
||||||
|
Providers;Users,ou=SocieteA;;No
|
||||||
|
Service_A;Users,ou=SocieteA;;No
|
||||||
|
Service_B;Users,ou=SocieteA;;No
|
||||||
|
Service_C;Users,ou=SocieteA;;No
|
|
6
OU-User-Permissions.csv
Normal file
6
OU-User-Permissions.csv
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Group;OuPrefix
|
||||||
|
Tier2ServiceDeskOperators;OU=Users,OU=SocieteA
|
||||||
|
Tier1Admins;OU=Accounts,ou=Tier1,ou=Admins,ou=SocieteA
|
||||||
|
Tier1Admins;OU=Service Accounts,ou=Tier1,ou=Admins,ou=SocieteA
|
||||||
|
Tier2Admins;OU=Accounts,ou=Tier2,ou=Admins,ou=SocieteA
|
||||||
|
Tier2Admins;OU=Service Accounts,ou=Tier2,ou=Admins,ou=SocieteA
|
|
4
OU-Workstation-Permissions.csv
Normal file
4
OU-Workstation-Permissions.csv
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Group;OuPrefix
|
||||||
|
Tier2ServiceDeskOperators;OU=Workstations,OU=SocieteA
|
||||||
|
Tier1Admins;OU=Devices,ou=Tier1,ou=Admins,ou=SocieteA
|
||||||
|
Tier2Admins;OU=Devices,ou=Tier2,ou=Admins,ou=SocieteA
|
|
42
Step-01-Creation-OU.ps1
Normal file
42
Step-01-Creation-OU.ps1
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<#
|
||||||
|
|
||||||
|
#>
|
||||||
|
|
||||||
|
cls
|
||||||
|
|
||||||
|
#throw "This is not a robus script"
|
||||||
|
$location = Get-Location
|
||||||
|
Set-Location C:\Tools
|
||||||
|
|
||||||
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$Fichier = "OU-Standard.csv"
|
||||||
|
|
||||||
|
$OUs = Import-Csv -Path $Fichier -Delimiter ";"
|
||||||
|
|
||||||
|
$dNC = (Get-ADRootDSE).defaultNamingContext
|
||||||
|
|
||||||
|
$OUs | ForEach-Object {
|
||||||
|
$name = $_.Name
|
||||||
|
$parentOU = $_.ParentOU
|
||||||
|
$Description = $_.Description
|
||||||
|
|
||||||
|
If ($ParentOU -eq '') {
|
||||||
|
$ouPath = "$dNC"
|
||||||
|
$testOUpath = "OU=$name,$dNC"
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
$ouPath = "OU=$parentOU,$dNC"
|
||||||
|
$testOUPath = "OU=$name,OU=$parentOU,$dNC"
|
||||||
|
}
|
||||||
|
|
||||||
|
$OUTest = (Get-ADOrganizationalUnit -Filter 'DistinguishedName -like $testOUpath' | Measure-Object).Count
|
||||||
|
|
||||||
|
If ($OUtest -eq 0) {
|
||||||
|
Write-host "Creation nouvelle OU '$testOUPath'"
|
||||||
|
New-ADOrganizationalUnit $name -Path $OUPath -ProtectedFromAccidentalDeletion:$false -Description $Description
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-host "OU '$name' existe deja '$ouPath'"
|
||||||
|
}
|
||||||
|
}
|
68
Step-02-Creation-Groupe.ps1
Normal file
68
Step-02-Creation-Groupe.ps1
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<#
|
||||||
|
.Exemple
|
||||||
|
|
||||||
|
#>
|
||||||
|
|
||||||
|
cls
|
||||||
|
|
||||||
|
#throw "This is not a robus script"
|
||||||
|
$location = Get-Location
|
||||||
|
Set-Location C:\Tools
|
||||||
|
|
||||||
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$FichierAdmin = "Groupes-Administrateur.csv"
|
||||||
|
$FichierStandard = "Groupes-Standard.csv"
|
||||||
|
|
||||||
|
$GroupAdmins = Import-Csv -Path $FichierAdmin -Delimiter ";"
|
||||||
|
$GroupStandards = Import-Csv -Path $FichierStandard -Delimiter ";"
|
||||||
|
|
||||||
|
$dNC = (Get-ADRootDSE).defaultNamingContext
|
||||||
|
|
||||||
|
Foreach ($group in $GroupAdmins) {
|
||||||
|
$groupName = $group.Name
|
||||||
|
$groupOUPrefix = $group.OU
|
||||||
|
$destOU = $group.OU + "," + $dNC
|
||||||
|
$groupDN = "CN=" + $groupName + "," + $destOU
|
||||||
|
|
||||||
|
$checkForGroup = Get-ADGroup -filter 'Name -eq $groupName' -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
If ($checkForGroup.count -eq 0 ) {
|
||||||
|
Write-Verbose "Creating new Group '$($Group.samAccountName)' under '$destOU'"
|
||||||
|
|
||||||
|
New-ADGroup -Name $Group.Name -SamAccountName $Group.samAccountName -GroupCategory $Group.GroupCategory -GroupScope $Group.GroupScope -DisplayName $Group.DisplayName -Path $destOU -Description $Group.Description
|
||||||
|
|
||||||
|
If ($Group.Membership -ne "") {
|
||||||
|
Write-Verbose "Adding Group Membership '$($Group.Membership)' for group '$($Group.samAccountName)'"
|
||||||
|
Add-ADPrincipalGroupMembership -Identity $Group.samAccountName -MemberOf $Group.Membership
|
||||||
|
}
|
||||||
|
$error.Clear()
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-Verbose "Group '$($Group.samAccountName)'already exists."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Foreach ($group in $GroupStandards) {
|
||||||
|
$groupName = $group.Name
|
||||||
|
$groupOUPrefix = $group.OU
|
||||||
|
$destOU = $group.OU + "," + $dNC
|
||||||
|
$groupDN = "CN=" + $groupName + "," + $destOU
|
||||||
|
|
||||||
|
$checkForGroup = Get-ADGroup -filter 'Name -eq $groupName' -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
If ($checkForGroup.count -eq 0 ) {
|
||||||
|
Write-host "Creating new Group '$($Group.samAccountName)' under '$destOU'"
|
||||||
|
|
||||||
|
New-ADGroup -Name $Group.Name -SamAccountName $Group.samAccountName -GroupCategory $Group.GroupCategory -GroupScope $Group.GroupScope -DisplayName $Group.DisplayName -Path $destOU -Description $Group.Description
|
||||||
|
|
||||||
|
If ($Group.Membership -ne "") {
|
||||||
|
Write-host "Adding Group Membership '$($Group.Membership)' for group '$($Group.samAccountName)'"
|
||||||
|
Add-ADPrincipalGroupMembership -Identity $Group.samAccountName -MemberOf $Group.Membership
|
||||||
|
}
|
||||||
|
$error.Clear()
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-host "Group '$($Group.samAccountName)'already exists."
|
||||||
|
}
|
||||||
|
}
|
@ -1,23 +1,27 @@
|
|||||||
<#
|
<#
|
||||||
.Example
|
|
||||||
$List = @(
|
|
||||||
$(New-Object PSObject -Property @{Group = "ServiceDeskOperators"; OUPrefix = "OU=User Accounts"})
|
|
||||||
)
|
|
||||||
.\Set-OUUserPermissions.ps1 -list $list -Verbose
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
[CmdletBinding()]
|
cls
|
||||||
param(
|
|
||||||
[Parameter(Mandatory = $True)][PSOBject] $List
|
#throw "This is not a robus script"
|
||||||
|
$location = Get-Location
|
||||||
)
|
Set-Location C:\Tools
|
||||||
|
|
||||||
Import-Module ActiveDirectory
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$Fichier = "OU-User-Permissions.csv"
|
||||||
|
|
||||||
|
$List = Import-Csv -Path $Fichier -Delimiter ";"
|
||||||
|
|
||||||
$rootdse = Get-ADRootDSE
|
$rootdse = Get-ADRootDSE
|
||||||
$domain = Get-ADDomain
|
$domain = Get-ADDomain
|
||||||
$guidmap = @{ }
|
$guidmap = @{ }
|
||||||
|
|
||||||
Get-ADObject -SearchBase ($rootdse.SchemaNamingContext) -LDAPFilter "(schemaidguid=*)" -Properties lDAPDisplayName, schemaIDGUID | ForEach-Object { $guidmap[$_.lDAPDisplayName] = [System.GUID]$_.schemaIDGUID }
|
Get-ADObject -SearchBase ($rootdse.SchemaNamingContext) -LDAPFilter "(schemaidguid=*)" -Properties lDAPDisplayName, schemaIDGUID | ForEach-Object { $guidmap[$_.lDAPDisplayName] = [System.GUID]$_.schemaIDGUID }
|
||||||
|
|
||||||
$extendedrightsmap = @{ }
|
$extendedrightsmap = @{ }
|
||||||
|
|
||||||
Get-ADObject -SearchBase ($rootdse.ConfigurationNamingContext) -LDAPFilter "(&(objectclass=controlAccessRight)(rightsguid=*))" -Properties displayName, rightsGuid | ForEach-Object { $extendedrightsmap[$_.displayName] = [System.GUID]$_.rightsGuid }
|
Get-ADObject -SearchBase ($rootdse.ConfigurationNamingContext) -LDAPFilter "(&(objectclass=controlAccessRight)(rightsguid=*))" -Properties displayName, rightsGuid | ForEach-Object { $extendedrightsmap[$_.displayName] = [System.GUID]$_.rightsGuid }
|
||||||
|
|
||||||
$List | ForEach-Object {
|
$List | ForEach-Object {
|
||||||
@ -25,7 +29,9 @@ $List | ForEach-Object {
|
|||||||
$Group = $_.Group
|
$Group = $_.Group
|
||||||
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
||||||
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
||||||
|
|
||||||
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
||||||
|
|
||||||
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild", "Allow", $guidmap["user"], "ALL"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild", "Allow", $guidmap["user"], "ALL"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["user"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["user"]))
|
||||||
@ -35,6 +41,7 @@ $List | ForEach-Object {
|
|||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", $guidmap["lockoutTime"], "Descendents", $guidmap["user"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", $guidmap["lockoutTime"], "Descendents", $guidmap["user"]))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["pwdLastSet"], "Descendents", $guidmap["user"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["pwdLastSet"], "Descendents", $guidmap["user"]))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", $guidmap["pwdLastSet"], "Descendents", $guidmap["user"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", $guidmap["pwdLastSet"], "Descendents", $guidmap["user"]))
|
||||||
Write-Verbose "Configuring User Permissions on '$ouPath' for group '$Group'"
|
|
||||||
|
Write-host "Configuring User Permissions on '$ouPath' for group '$Group'"
|
||||||
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
||||||
}
|
}
|
@ -1,26 +1,32 @@
|
|||||||
<#
|
<#
|
||||||
.Example
|
|
||||||
$List = @(
|
|
||||||
$(New-Object PSObject -Property @{Group = "ServiceDeskOperators"; OUPrefix = "OU=Workstations"})
|
|
||||||
.\Set-OUWorkstationPermissions.ps1 -list $list -Verbose
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
[CmdletBinding()]
|
cls
|
||||||
param(
|
|
||||||
[Parameter(Mandatory = $True)][PSOBject] $List
|
#throw "This is not a robus script"
|
||||||
)
|
$location = Get-Location
|
||||||
|
Set-Location C:\Tools
|
||||||
|
|
||||||
Import-Module ActiveDirectory
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$Fichier = "OU-Workstation-Permissions.csv"
|
||||||
|
|
||||||
|
$List = Import-Csv -Path $Fichier -Delimiter ";"
|
||||||
|
|
||||||
$rootdse = Get-ADRootDSE
|
$rootdse = Get-ADRootDSE
|
||||||
$domain = Get-ADDomain
|
$domain = Get-ADDomain
|
||||||
$guidmap = @{ }
|
$guidmap = @{ }
|
||||||
Get-ADObject -SearchBase ($rootdse.SchemaNamingContext) -LDAPFilter "(schemaidguid=*)" -Properties lDAPDisplayName, schemaIDGUID | ForEach-Object { $guidmap[$_.lDAPDisplayName] = [System.GUID]$_.schemaIDGUID }
|
Get-ADObject -SearchBase ($rootdse.SchemaNamingContext) -LDAPFilter "(schemaidguid=*)" -Properties lDAPDisplayName, schemaIDGUID | ForEach-Object { $guidmap[$_.lDAPDisplayName] = [System.GUID]$_.schemaIDGUID }
|
||||||
|
|
||||||
$List | ForEach-Object {
|
$List | ForEach-Object {
|
||||||
$ouPrefix = $_.OUPrefix
|
$ouPrefix = $_.OUPrefix
|
||||||
$Group = $_.Group
|
$Group = $_.Group
|
||||||
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
||||||
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
||||||
|
|
||||||
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
||||||
|
|
||||||
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild", "Allow", $guidmap["Computer"], "All"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild", "Allow", $guidmap["Computer"], "All"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["Computer"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["Computer"]))
|
||||||
@ -29,6 +35,7 @@ $List | ForEach-Object {
|
|||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["msFVE-KeyPackage"], "Descendents", $guidmap["msFVE-RecoveryInformation"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["msFVE-KeyPackage"], "Descendents", $guidmap["msFVE-RecoveryInformation"]))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["msFVE-RecoveryPassword"], "Descendents", $guidmap["msFVE-RecoveryInformation"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["msFVE-RecoveryPassword"], "Descendents", $guidmap["msFVE-RecoveryInformation"]))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["msFVE-VolumeGuid"], "Descendents", $guidmap["msFVE-RecoveryInformation"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["msFVE-VolumeGuid"], "Descendents", $guidmap["msFVE-RecoveryInformation"]))
|
||||||
Write-Verbose "Configuring Workstation Permissions on '$ouPath' for group '$Group'"
|
|
||||||
|
Write-host "Configuring Workstation Permissions on '$ouPath' for group '$Group'"
|
||||||
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
||||||
}
|
}
|
@ -1,18 +1,19 @@
|
|||||||
<#
|
<#
|
||||||
.Example
|
|
||||||
$List = @(
|
|
||||||
$(New-Object PSObject -Property @{Group = "Tier1Admins"; OUPrefix = "OU=Groups,ou=Tier1,ou=Admin"})
|
|
||||||
)
|
|
||||||
.\Set-OUGroupPermissions.ps1 -list $list -Verbose
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
[CmdletBinding()]
|
cls
|
||||||
param(
|
|
||||||
[Parameter(Mandatory = $True)][PSOBject] $List
|
#throw "This is not a robus script"
|
||||||
|
$location = Get-Location
|
||||||
)
|
Set-Location C:\Tools
|
||||||
|
|
||||||
Import-Module ActiveDirectory
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$Fichier = "OU-Group-Permissions.csv"
|
||||||
|
|
||||||
|
$List = Import-Csv -Path $Fichier -Delimiter ";"
|
||||||
|
|
||||||
$rootdse = Get-ADRootDSE
|
$rootdse = Get-ADRootDSE
|
||||||
$domain = Get-ADDomain
|
$domain = Get-ADDomain
|
||||||
$guidmap = @{ }
|
$guidmap = @{ }
|
||||||
@ -25,11 +26,14 @@ $List | ForEach-Object {
|
|||||||
$Group = $_.Group
|
$Group = $_.Group
|
||||||
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
||||||
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
||||||
|
|
||||||
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
||||||
|
|
||||||
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild", "Allow", $guidmap["group"], "ALL"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild", "Allow", $guidmap["group"], "ALL"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["group"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["group"]))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", "Descendents", $guidmap["group"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", "Descendents", $guidmap["group"]))
|
||||||
Write-Verbose "Configuring Group Permissions on '$ouPath' for group '$Group'"
|
|
||||||
|
Write-Host "Configuring Group Permissions on '$ouPath' for group '$Group'"
|
||||||
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
||||||
}
|
}
|
@ -1,21 +1,19 @@
|
|||||||
<#
|
<#
|
||||||
.Example
|
|
||||||
$List = @(
|
|
||||||
$(New-Object PSObject -Property @{Group = "WorkstationMaintenance"; OUPrefix = "OU=Computer Quarantine"}),
|
|
||||||
$(New-Object PSObject -Property @{Group = "WorkstationMaintenance"; OUPrefix = "OU=Workstations"}),
|
|
||||||
$(New-Object PSObject -Property @{Group = "PAWMaint"; OUPrefix = "OU=Devices,OU=Tier 0,OU=Admin"}),
|
|
||||||
$(New-Object PSObject -Property @{Group = "Tier1ServerMaintenance"; OUPrefix = "OU=Tier 1 Servers"})
|
|
||||||
)
|
|
||||||
.\Set-OUComputerPermissions.ps1 -list $list -Verbose
|
|
||||||
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
[CmdletBinding()]
|
cls
|
||||||
param(
|
|
||||||
[Parameter(Mandatory = $True)][PSOBject] $List
|
#throw "This is not a robus script"
|
||||||
)
|
$location = Get-Location
|
||||||
|
Set-Location C:\Tools
|
||||||
|
|
||||||
Import-Module ActiveDirectory
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$Fichier = "OU-Computer-Permissions.csv"
|
||||||
|
|
||||||
|
$List = Import-Csv -Path $Fichier -Delimiter ";"
|
||||||
|
|
||||||
$rootdse = Get-ADRootDSE
|
$rootdse = Get-ADRootDSE
|
||||||
$domain = Get-ADDomain
|
$domain = Get-ADDomain
|
||||||
$guidmap = @{ }
|
$guidmap = @{ }
|
||||||
@ -26,11 +24,14 @@ $List | ForEach-Object {
|
|||||||
$Group = $_.Group
|
$Group = $_.Group
|
||||||
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
||||||
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
||||||
|
|
||||||
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
||||||
|
|
||||||
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild,DeleteChild", "Allow", $guidmap["Computer"], "All"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "CreateChild,DeleteChild", "Allow", $guidmap["Computer"], "All"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["Computer"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", "Descendents", $guidmap["Computer"]))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", "Descendents", $guidmap["Computer"]))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "WriteProperty", "Allow", "Descendents", $guidmap["Computer"]))
|
||||||
Write-Verbose "Configuring Computer Permissions on '$ouPath' for group '$Group'"
|
|
||||||
|
Write-Host "Configuring Computer Permissions on '$ouPath' for group '$Group'"
|
||||||
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
||||||
}
|
}
|
@ -1,18 +1,19 @@
|
|||||||
<#
|
<#
|
||||||
.Example
|
|
||||||
$List = @(
|
|
||||||
$(New-Object PSObject -Property @{Group = "Tier0ReplicationMaintenance"; OUPrefix = "" })
|
|
||||||
)
|
|
||||||
.\Set-OUReplicationPermissions.ps1 -list $list -Verbose
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
[CmdletBinding()]
|
cls
|
||||||
param(
|
|
||||||
[Parameter(Mandatory = $True)][PSOBject] $List
|
#throw "This is not a robus script"
|
||||||
|
$location = Get-Location
|
||||||
)
|
Set-Location C:\Tools
|
||||||
|
|
||||||
Import-Module ActiveDirectory
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$Fichier = "OU-Replication-Permissions.csv"
|
||||||
|
|
||||||
|
$List = Import-Csv -Path $Fichier -Delimiter ";"
|
||||||
|
|
||||||
$rootdse = Get-ADRootDSE
|
$rootdse = Get-ADRootDSE
|
||||||
$domain = Get-ADDomain
|
$domain = Get-ADDomain
|
||||||
$guidmap = @{ }
|
$guidmap = @{ }
|
||||||
@ -27,25 +28,31 @@ $schemaNC = $rootdse.SchemaNamingContext
|
|||||||
$forestDnsZonesDN = "DC=ForestDnsZones," + $rootdse.RootDomainNamingContext
|
$forestDnsZonesDN = "DC=ForestDnsZones," + $rootdse.RootDomainNamingContext
|
||||||
$sitesDN = "CN=Sites," + $configCN
|
$sitesDN = "CN=Sites," + $configCN
|
||||||
$config = @($configCN, $schemaNC, $forestDnsZonesDN, $sitesDN)
|
$config = @($configCN, $schemaNC, $forestDnsZonesDN, $sitesDN)
|
||||||
|
|
||||||
$List | ForEach-Object {
|
$List | ForEach-Object {
|
||||||
$group = $_.Group
|
$group = $_.Group
|
||||||
if ($_.OUPrefix -eq ""){
|
|
||||||
|
If ($_.OUPrefix -eq "") {
|
||||||
$aclPath = $domain.DistinguishedName
|
$aclPath = $domain.DistinguishedName
|
||||||
}
|
}
|
||||||
else {
|
Else {
|
||||||
$aclPath = $_.OUPrefix + "," + $domain.DistinguishedName
|
$aclPath = $_.OUPrefix + "," + $domain.DistinguishedName
|
||||||
}
|
}
|
||||||
|
|
||||||
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $group).SID
|
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $group).SID
|
||||||
foreach ($configEntry in $config) {
|
|
||||||
|
Foreach ($configEntry in $config) {
|
||||||
$acl = Get-ACL -Path($configEntry)
|
$acl = Get-ACL -Path($configEntry)
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Manage Replication Topology"], "Descendents"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Manage Replication Topology"], "Descendents"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Replicating Directory Changes"], "Descendents"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Replicating Directory Changes"], "Descendents"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Replicating Directory Changes All"], "Descendents"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Replicating Directory Changes All"], "Descendents"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Replication Synchronization"], "Descendents"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Replication Synchronization"], "Descendents"))
|
||||||
if ($configEntry -like "CN=Configuration*" -or $configEntry -like "CN=Schema*") {
|
|
||||||
|
If ($configEntry -like "CN=Configuration*" -or $configEntry -like "CN=Schema*") {
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Monitor active directory Replication"], "Descendents"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ExtendedRight", "Allow", $extendedrightsmap["Monitor active directory Replication"], "Descendents"))
|
||||||
}
|
}
|
||||||
Write-Verbose "Configuring Replication Maintenance Role Delegation on '$configEntry' for group '$group'"
|
|
||||||
|
Write-Host "Configuring Replication Maintenance Role Delegation on '$configEntry' for group '$group'"
|
||||||
Set-ACL -ACLObject $acl -Path ("AD:\" + $aclPath)
|
Set-ACL -ACLObject $acl -Path ("AD:\" + $aclPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,19 +1,19 @@
|
|||||||
<#
|
<#
|
||||||
|
|
||||||
.Example
|
|
||||||
$List = @(
|
|
||||||
$(New-Object PSObject -Property @{Group = "Tier1ServerMaintenance"; OUPrefix = "OU=Tier 1 Servers"})
|
|
||||||
)
|
|
||||||
.\Set-OUGPOPermissions.ps1 -list $list -Verbose
|
|
||||||
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
[CmdletBinding()]
|
cls
|
||||||
param(
|
|
||||||
[Parameter(Mandatory = $True)][PSOBject] $List
|
#throw "This is not a robus script"
|
||||||
)
|
$location = Get-Location
|
||||||
|
Set-Location C:\Tools
|
||||||
|
|
||||||
Import-Module ActiveDirectory
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
$Fichier = "OU-GPO-Permissions.csv"
|
||||||
|
|
||||||
|
$List = Import-Csv -Path $Fichier -Delimiter ";"
|
||||||
|
|
||||||
$rootdse = Get-ADRootDSE
|
$rootdse = Get-ADRootDSE
|
||||||
$domain = Get-ADDomain
|
$domain = Get-ADDomain
|
||||||
$guidmap = @{ }
|
$guidmap = @{ }
|
||||||
@ -26,10 +26,13 @@ $List | ForEach-Object {
|
|||||||
$Group = $_.Group
|
$Group = $_.Group
|
||||||
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
$ouPath = "$OUPrefix,$($domain.DistinguishedName)"
|
||||||
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
$ou = Get-ADOrganizationalUnit -Identity $OUPAth
|
||||||
|
|
||||||
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
$adGroup = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup -Identity $Group).SID
|
||||||
|
|
||||||
$acl = Get-ACL -Path "AD:$($ou.DistinguishedName)"
|
$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,WriteProperty", "Allow", $guidmap["gplink"], "All"))
|
||||||
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["gpoptions"], "All"))
|
$acl.AddAccessRule((New-Object System.DirectoryServices.ActiveDirectoryAccessRule $adGroup, "ReadProperty", "Allow", $guidmap["gpoptions"], "All"))
|
||||||
Write-Verbose "Configuring GPO Permissions on '$ouPath' for group '$Group'"
|
|
||||||
|
Write-Host "Configuring GPO Permissions on '$ouPath' for group '$Group'"
|
||||||
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
Set-ACL -ACLObject $acl -Path ("AD:\" + ($ou.DistinguishedName))
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user