DEV Community

Thiyagarajan Thangavel
Thiyagarajan Thangavel

Posted on

Script for site & subnet creation in bulk

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."
}
Enter fullscreen mode Exit fullscreen mode

}
catch {
Write-Host "❌ Error: $($_.Exception.Message)"
}

Top comments (0)