Skip to content

Process.Start() and PowerShell Start-Process hang on newer mcr.microsoft.com/windows/servercore:ltsc2019 / .NET Framework 4.8 LTSC2019 images #645

Description

Description of the bug

We are seeing a regression in newer Windows Server Core LTSC 2019 container images.

Starting a child process from inside the container hangs indefinitely. This affects both:

  • .NET System.Diagnostics.Process.Start()
  • PowerShell Start-Process

This used to work a few weeks ago and still works on an older pinned .NET Framework SDK image.

Known-good image

The following images still works correctly:

  • mcr.microsoft.com/dotnet/framework/sdk:4.8-20260512-windowsservercore-ltsc2019
  • mcr.microsoft.com/windows/servercore:10.0.17763.8880

On this image, both:

  • .NET Process.Start()
  • PowerShell Start-Process

return normally.

Regressed images

The problem occurs on newer images based on updated LTSC2019 Server Core, including:

  • mcr.microsoft.com/windows/servercore:ltsc2019
  • current floating mcr.microsoft.com/dotnet/framework/sdk:4.8
  • current floating mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019

Expected behavior

Starting cmd.exe /c echo hello should return immediately.

Expected output for the .NET repro:

Before
After

Expected output for the PowerShell repro:

Before
After

Actual behavior

The process-start call hangs indefinitely.

For the .NET repro, output is:

Before

and Process.Start() never returns.

For the PowerShell repro, output is:

Before

and Start-Process never returns.

Container OS versions observed

Known-good older image lineage:

  • 10.0.17763.8880

Failing newer image lineage:

  • 10.0.17763.9020

Minimal PowerShell repro

Run:

docker run -ti --rm mcr.microsoft.com/windows/servercore:ltsc2019 powershell

Inside the container:

Write-Host "Before"
Start-Process cmd.exe -ArgumentList '/c echo hello' -Wait
Write-Host "After"

Actual result on the failing image:

Before

and then it hangs.

Minimal .NET repro

Run:

docker run -ti --rm mcr.microsoft.com/windows/servercore:ltsc2019 powershell

Inside the container:

Add-Type @"
using System;
using System.Diagnostics;

public class Test {
    public static void Run() {
        var p = new Process();
        p.StartInfo.FileName = "cmd.exe";
        p.StartInfo.Arguments = "/c echo hello";
        Console.WriteLine("Before");
        p.Start();
        Console.WriteLine("After");
    }
}
"@

[Test]::Run()

Actual result on the failing image:

Before

and then it hangs.

Notes

  • This does not appear to be specific to .NET Framework, because the same behavior is reproducible on plain mcr.microsoft.com/windows/servercore:ltsc2019.
  • The regression appears to have been introduced after the 2026-05-12 .NET Framework SDK LTSC2019 image.
  • We are currently pinning to mcr.microsoft.com/dotnet/framework/sdk:4.8-20260512-windowsservercore-ltsc2019 as a temporary workaround.

Environment

  • Host OS: Windows Server 2019
  • Container base: mcr.microsoft.com/windows/servercore:ltsc2019
  • Affected higher-level image: mcr.microsoft.com/dotnet/framework/sdk:4.8
  • Working higher-level image: mcr.microsoft.com/windows/servercore:10.0.17763.8880

Question

Is this a known regression in the updated LTSC2019 Server Core image, or an intentional change in process creation behavior inside Windows containers?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageNew and needs attention

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions