diff --git a/certy.ps1 b/certy.ps1 index c488db1..e8354e9 100644 --- a/certy.ps1 +++ b/certy.ps1 @@ -129,6 +129,17 @@ function Save-Defaults { Set-Content -Path $path -Value $json -Encoding ascii } +function Get-DefaultValue { + param( + [object]$Defaults, + [string]$Name + ) + if ($null -eq $Defaults) { return $null } + $prop = $Defaults.PSObject.Properties[$Name] + if ($null -eq $prop) { return $null } + return $prop.Value +} + function Resolve-HostEntry { param( [string]$Name, @@ -715,27 +726,61 @@ function Update-CertGenerationUI { $loadedDefaults = Load-Defaults if ($loadedDefaults) { - if ($loadedDefaults.DefaultZone) { $zoneBox.Text = $loadedDefaults.DefaultZone } - if ($loadedDefaults.TargetIp) { $ipBox.Text = $loadedDefaults.TargetIp } - if ($loadedDefaults.DnsServer) { $dnsServerBox.Text = $loadedDefaults.DnsServer } - if ($loadedDefaults.ReplicationTargets) { $replicationTargetsBox.Text = $loadedDefaults.ReplicationTargets } - if ($loadedDefaults.ReplicationCommand) { $replicationCmdBox.Text = $loadedDefaults.ReplicationCommand } - if ($loadedDefaults.PSObject.Properties["ReplicationEnabled"]) { - $replicationEnabledBox.Checked = [bool]$loadedDefaults.ReplicationEnabled - } - if ($loadedDefaults.WacsPath) { $wacsPathBox.Text = $loadedDefaults.WacsPath } - if ($loadedDefaults.OutputPath) { $outputPathBox.Text = $loadedDefaults.OutputPath } - if ($loadedDefaults.PfxPassword) { $pfxPasswordBox.Text = $loadedDefaults.PfxPassword } - if ($loadedDefaults.BaseUri) { $baseUriBox.Text = $loadedDefaults.BaseUri } - if ($loadedDefaults.Validation) { $validationBox.Text = $loadedDefaults.Validation } - if ($loadedDefaults.ValidationPort) { $validationPortBox.Text = $loadedDefaults.ValidationPort } - if ($null -ne $loadedDefaults.UseProvidedFqdn) { $useFqdnBox.Checked = [bool]$loadedDefaults.UseProvidedFqdn } - if ($null -ne $loadedDefaults.RunWacs) { $runWacsBox.Checked = [bool]$loadedDefaults.RunWacs } - if ($null -ne $loadedDefaults.Verbose) { $verboseBox.Checked = [bool]$loadedDefaults.Verbose } - if ($null -ne $loadedDefaults.PerHostCerts) { $perHostBox.Checked = [bool]$loadedDefaults.PerHostCerts } - if ($null -ne $loadedDefaults.DisableCertGeneration) { $disableCertsBox.Checked = [bool]$loadedDefaults.DisableCertGeneration } - if ($loadedDefaults.OutputType) { $outputTypeBox.SelectedItem = $loadedDefaults.OutputType } + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "DefaultZone" + if (-not [string]::IsNullOrWhiteSpace($value)) { $zoneBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "TargetIp" + if (-not [string]::IsNullOrWhiteSpace($value)) { $ipBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "DnsServer" + if (-not [string]::IsNullOrWhiteSpace($value)) { $dnsServerBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "ReplicationTargets" + if (-not [string]::IsNullOrWhiteSpace($value)) { $replicationTargetsBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "ReplicationCommand" + if (-not [string]::IsNullOrWhiteSpace($value)) { $replicationCmdBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "ReplicationEnabled" + if ($null -ne $value) { $replicationEnabledBox.Checked = [bool]$value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "WacsPath" + if (-not [string]::IsNullOrWhiteSpace($value)) { $wacsPathBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "OutputPath" + if (-not [string]::IsNullOrWhiteSpace($value)) { $outputPathBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "PfxPassword" + if (-not [string]::IsNullOrWhiteSpace($value)) { $pfxPasswordBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "BaseUri" + if (-not [string]::IsNullOrWhiteSpace($value)) { $baseUriBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "Validation" + if (-not [string]::IsNullOrWhiteSpace($value)) { $validationBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "ValidationPort" + if (-not [string]::IsNullOrWhiteSpace($value)) { $validationPortBox.Text = $value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "UseProvidedFqdn" + if ($null -ne $value) { $useFqdnBox.Checked = [bool]$value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "RunWacs" + if ($null -ne $value) { $runWacsBox.Checked = [bool]$value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "Verbose" + if ($null -ne $value) { $verboseBox.Checked = [bool]$value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "PerHostCerts" + if ($null -ne $value) { $perHostBox.Checked = [bool]$value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "DisableCertGeneration" + if ($null -ne $value) { $disableCertsBox.Checked = [bool]$value } + + $value = Get-DefaultValue -Defaults $loadedDefaults -Name "OutputType" + if (-not [string]::IsNullOrWhiteSpace($value)) { $outputTypeBox.SelectedItem = $value } if (-not $outputTypeBox.SelectedItem) { $outputTypeBox.SelectedIndex = 0 } + Update-OutputTypeUI if (Test-Path function:Update-ReplicationUI) { Update-ReplicationUI } Update-CertGenerationUI @@ -1037,9 +1082,17 @@ $runBtn.Add_Click({ } }) -[void]$form.Add_Load({ Apply-Layout }) -[void]$form.Add_Shown({ $form.BeginInvoke([Action]{ Apply-Layout }) }) -[void]$panel.Add_SizeChanged({ Apply-Layout }) -[void]$form.Add_Resize({ Apply-Layout }) +[void]$form.Add_Load({ + try { Apply-Layout } catch {} +}) +[void]$form.Add_Shown({ + try { $form.BeginInvoke([Action]{ try { Apply-Layout } catch {} }) } catch {} +}) +[void]$panel.Add_SizeChanged({ + try { Apply-Layout } catch {} +}) +[void]$form.Add_Resize({ + try { Apply-Layout } catch {} +}) [void]$form.ShowDialog()