Fix TimeSpan error and firewall profile enumeration

- Added ExecutionTimeout and ExecutionTimeoutInterval to ssh-keygen calls (2 min timeout)
- Added ExecutionTimeout and ExecutionTimeoutInterval to sshd -t validation (30 sec timeout)
- Fixed firewall profile enumeration: use string array instead of unavailable type
- Profiles now use simple array: @('Domain', 'Private', 'Public')
This commit is contained in:
GraceSolutions
2026-05-04 09:39:39 -04:00
parent e566ab15f1
commit 03a3912a29
2 changed files with 62 additions and 47 deletions
+5 -1
View File
@@ -383,6 +383,8 @@ Switch (Test-ProcessElevationStatus)
$StartProcessWithOutputParameters.AcceptableExitCodeList = New-Object -TypeName 'System.Collections.Generic.List[System.String]'
$StartProcessWithOutputParameters.AcceptableExitCodeList.Add('0')
$StartProcessWithOutputParameters.CreateNoWindow = $True
$StartProcessWithOutputParameters.ExecutionTimeout = [System.Timespan]::FromMinutes(2)
$StartProcessWithOutputParameters.ExecutionTimeoutInterval = [System.Timespan]::FromSeconds(5)
$StartProcessWithOutputParameters.LogOutput = $True
$StartProcessWithOutputParameters.ContinueOnError = $False
$StartProcessWithOutputParameters.Verbose = $True
@@ -714,6 +716,8 @@ Switch (Test-ProcessElevationStatus)
$ValidateConfigParameters.AcceptableExitCodeList = New-Object -TypeName 'System.Collections.Generic.List[System.String]'
$ValidateConfigParameters.AcceptableExitCodeList.Add('0')
$ValidateConfigParameters.CreateNoWindow = $True
$ValidateConfigParameters.ExecutionTimeout = [System.Timespan]::FromSeconds(30)
$ValidateConfigParameters.ExecutionTimeoutInterval = [System.Timespan]::FromSeconds(5)
$ValidateConfigParameters.LogOutput = $True
$ValidateConfigParameters.ContinueOnError = $True
$ValidateConfigParameters.Verbose = $True
@@ -798,7 +802,7 @@ Switch (Test-ProcessElevationStatus)
#region Windows Firewall Configuration (Automatic)
$FirewallRuleName = 'OpenSSH-Server-In-TCP'
$FirewallProfiles = [System.Enum]::GetValues([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile])
$FirewallProfiles = @('Domain', 'Private', 'Public')
ForEach ($FirewallProfile In $FirewallProfiles)
{
@@ -241,6 +241,10 @@ Function Start-ProcessWithOutput
[System.TimeSpan]$InputObject
)
Switch ($Null -ine $InputObject)
{
{($_ -eq $True)}
{
$InputObjectMessageBuilder = New-Object -TypeName 'System.Text.StringBuilder'
$InputObjectProperties = $InputObject | Select-Object -Property @('Days', 'Hours', 'Minutes', 'Seconds', 'Milliseconds')
@@ -295,6 +299,13 @@ Function Start-ProcessWithOutput
$OutputObject = 'N/A'
}
}
}
Default
{
$OutputObject = 'N/A'
}
}
Write-Output -InputObject ($OutputObject)
}