terminal: Windows 10 1809 - breaking change in cmd.exe "start" command behavior.

In 1809, the way the start command (from cmd.exe) behaves has changed. You can work around it by adding /max or /min after start.

Two concrete examples:

  1. Running something off a network share from a command prompt like: start z:\myapp.exe will now throw up a security warning dialog, when it did not in 1803 and earlier.

  2. A powershell script like this: $script={& cmd.exe /c start notepad.exe} $job = start-job -scriptblock $script would give you a job with state Running in 1803, until you closed notepad. In 1809, the job state is Completed before notepad is closed.

Adding /max or /min after start restores old behavior for both of these! That is crazy…

Both of these behavior changes are going to break tools/code that rely on the old behaviors of no security prompt and the powershell job not being Complete until the started program exits.

You can see how dramatically start has changed if you run procmon and filter to only cmd.exe process events. In Win10 1803, open a command prompt and do start notepad.exe It results in <100 events. Run in 1809 and get >1000. Add /max and it drops back to <100.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 15
  • Comments: 15 (10 by maintainers)

Most upvoted comments

Even better news! The fix for this bug was released with cumulative update KB4501371!

Good news! This bug has been selected for servicing. Timeline TBD.