Improve repadmin syncall targeting
This commit is contained in:
12
certy.ps1
12
certy.ps1
@@ -238,6 +238,12 @@ function Invoke-Replication {
|
|||||||
foreach ($server in $targets) {
|
foreach ($server in $targets) {
|
||||||
$cmd = if ($Command -match "\{server\}") { $Command.Replace("{server}", $server) } else { $Command }
|
$cmd = if ($Command -match "\{server\}") { $Command.Replace("{server}", $server) } else { $Command }
|
||||||
$cmd = $cmd.Trim()
|
$cmd = $cmd.Trim()
|
||||||
|
if ($cmd -match "^(?i)\s*/repadmin\b") {
|
||||||
|
$cmd = $cmd -replace "^(?i)\s*/repadmin\b", "repadmin"
|
||||||
|
}
|
||||||
|
if ($server -and $cmd -match "(?i)\brepadmin\b" -and $cmd -match "(?i)\bsyncall\b" -and $cmd -notmatch "\{server\}") {
|
||||||
|
$cmd = $cmd -replace "(?i)\bsyncall\b", "syncall $server"
|
||||||
|
}
|
||||||
if ([string]::IsNullOrWhiteSpace($cmd)) { continue }
|
if ([string]::IsNullOrWhiteSpace($cmd)) { continue }
|
||||||
& $Log "Replication: $cmd"
|
& $Log "Replication: $cmd"
|
||||||
& $env:ComSpec /c $cmd | ForEach-Object { & $Log $_ }
|
& $env:ComSpec /c $cmd | ForEach-Object { & $Log $_ }
|
||||||
@@ -578,7 +584,7 @@ $y += 70 + $gap
|
|||||||
|
|
||||||
Add-Label "Replication command ({server} optional)" $xLabel $y $labelWidth $rowHeight
|
Add-Label "Replication command ({server} optional)" $xLabel $y $labelWidth $rowHeight
|
||||||
$replicationCmdBox = Add-TextBox $xInput $y $inputWidth $rowHeight $false
|
$replicationCmdBox = Add-TextBox $xInput $y $inputWidth $rowHeight $false
|
||||||
$replicationCmdBox.Text = "repadmin /syncall {server} /A /e /P /d"
|
$replicationCmdBox.Text = "repadmin /syncall {server} /AdeP"
|
||||||
$y += $rowHeight + ($gap * 2)
|
$y += $rowHeight + ($gap * 2)
|
||||||
|
|
||||||
Add-SectionHeader "ACME / Output"
|
Add-SectionHeader "ACME / Output"
|
||||||
@@ -948,6 +954,10 @@ $runBtn.Add_Click({
|
|||||||
$replicationTargets = $selectedReplicationTargets
|
$replicationTargets = $selectedReplicationTargets
|
||||||
} else {
|
} else {
|
||||||
$replicationTargets = Split-List $replicationTargetsBox.Text
|
$replicationTargets = Split-List $replicationTargetsBox.Text
|
||||||
|
if ($replicationTargets.Count -eq 0 -and $dnsServer) {
|
||||||
|
$replicationTargets = @($dnsServer)
|
||||||
|
& $logAction "Replication targets empty; using primary DNS server $dnsServer."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Invoke-Replication -Servers $replicationTargets -Command $replicationCmdBox.Text -Log $logAction
|
Invoke-Replication -Servers $replicationTargets -Command $replicationCmdBox.Text -Log $logAction
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user