From aab4919494181b9782e8e240102f76a71b0109eb Mon Sep 17 00:00:00 2001 From: Rephl3x Date: Thu, 29 Jan 2026 12:10:57 +1300 Subject: [PATCH] Prompt for credentials for remote replication --- certy.ps1 | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/certy.ps1 b/certy.ps1 index 5e8d626..f805598 100644 --- a/certy.ps1 +++ b/certy.ps1 @@ -238,6 +238,7 @@ function Invoke-Replication { [string[]]$Servers, [string]$Command, [bool]$UseRemote, + [pscredential]$Credential, [scriptblock]$Log ) @@ -261,7 +262,11 @@ function Invoke-Replication { if ($UseRemote) { if (-not $sessions.ContainsKey($server)) { try { - $sessions[$server] = New-PSSession -ComputerName $server -ErrorAction Stop + if ($Credential) { + $sessions[$server] = New-PSSession -ComputerName $server -Credential $Credential -ErrorAction Stop + } else { + $sessions[$server] = New-PSSession -ComputerName $server -ErrorAction Stop + } & $Log "Replication session opened: $server" } catch { & $Log ("Replication session error on {0}: {1}" -f $server, $_.Exception.Message) @@ -1132,7 +1137,15 @@ $runBtn.Add_Click({ & $logAction "Replication targets empty; using primary DNS server $dnsServer." } } - Invoke-Replication -Servers $replicationTargets -Command $replicationCmdBox.Text -UseRemote $replicationRemoteBox.Checked -Log $logAction + $replicationCredential = $null + if ($replicationRemoteBox.Checked) { + $replicationCredential = Get-Credential -Message "Enter credentials for replication targets." + if (-not $replicationCredential) { + & $logAction "Replication canceled: credentials not provided." + return + } + } + Invoke-Replication -Servers $replicationTargets -Command $replicationCmdBox.Text -UseRemote $replicationRemoteBox.Checked -Credential $replicationCredential -Log $logAction if ($replicationDelaySeconds -gt 0) { & $logAction "Waiting $replicationDelaySeconds seconds for replication." Start-Sleep -Seconds $replicationDelaySeconds