Load Active Directory module
Import-Module ActiveDirectory
Define CSV path
$CSVPath = "C:\Scripts\Subnets.csv"
Import CSV
$SubnetData = Import-Csv -Path $CSVPath
Extract site and linked site from first row (assumes consistent site across rows)
$SiteName = $SubnetData[0].SiteName
$Location = $SubnetData[0].Location
$LinkedTo = $SubnetData[0].LinkedTo
$SiteLink = "$SiteName-$LinkedTo-Link"
try {
# Create AD Site if not exists
if (-not (Get-ADReplicationSite -Filter "Name -eq '$SiteName'")) {
New-ADReplicationSite -Name $SiteName
Write-Host "✅ Created Site: $SiteName"
}
# Loop through all subnets and associate with the site
foreach ($row in $SubnetData) {
$Subnet = $row.Subnet
if (-not (Get-ADReplicationSubnet -Filter "Name -eq '$Subnet'")) {
New-ADReplicationSubnet -Name $Subnet -Site $SiteName -Location $Location
Write-Host "✅ Added Subnet $Subnet to Site $SiteName"
} else {
Write-Host "ℹ️ Subnet $Subnet already exists."
}
}
# Create Site Link if not exists
if (-not (Get-ADReplicationSiteLink -Filter "Name -eq '$SiteLink'")) {
New-ADReplicationSiteLink -Name $SiteLink -SitesIncluded $SiteName,$LinkedTo -Cost 100 -ReplicationFrequencyInMinutes 180
Write-Host "✅ Created Site Link: $SiteLink between $SiteName and $LinkedTo"
} else {
Write-Host "ℹ️ Site Link $SiteLink already exists."
}
}
catch {
Write-Host "❌ Error: $($_.Exception.Message)"
}
Top comments (0)