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:
-
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. -
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)
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.