Handle existing WinRM HTTPS listeners in bootstrap

This commit is contained in:
Fabio Scotto di Santolo
2026-04-02 11:58:32 +02:00
parent 792f30b747
commit 5bd8a2fe1a

View File

@@ -36,15 +36,30 @@ function Ensure-WinRMHttpsListener {
$listener = Get-ChildItem -Path WSMan:\localhost\Listener |
Where-Object {
$_.Keys -match 'Transport=HTTPS' -and $_.Keys -match "Hostname=$($env:COMPUTERNAME)"
$_.Keys -match 'Transport=HTTPS'
} |
Select-Object -First 1
if ($null -eq $listener) {
New-WSManInstance -ResourceURI winrm/config/Listener `
-SelectorSet @{ Transport = 'HTTPS'; Address = '*' } `
-ValueSet @{ Hostname = $env:COMPUTERNAME; CertificateThumbprint = $CertificateThumbprint } | Out-Null
return $true
try {
New-WSManInstance -ResourceURI winrm/config/Listener `
-SelectorSet @{ Transport = 'HTTPS'; Address = '*' } `
-ValueSet @{ Hostname = $env:COMPUTERNAME; CertificateThumbprint = $CertificateThumbprint } | Out-Null
return $true
}
catch {
$existingHttpsListener = Get-ChildItem -Path WSMan:\localhost\Listener |
Where-Object {
$_.Keys -match 'Transport=HTTPS'
} |
Select-Object -First 1
if ($null -ne $existingHttpsListener) {
return $false
}
throw
}
}
return $false