Replacing cmd.exe

  • Comments 8

Scott Fulton has an interesting PowerShell article over at Betanews: Why Can't PowerShell Be the Windows Command Prompt?

He has a number of great quotes from Ian McDonald. Here are a couple of my favorites:

In five years' time, McDonald believes, we'll all be able to look back and identify the "inflection point" where manageability of remote servers took a giant step forward, "managing hundreds of thousands of servers with very low operations," and credit PowerShell for bringing about that change of direction.

"Personally -- this is biased -- if I could set the direction of it, I would like to make PowerShell the default shell for Windows. That's my personal bias." He added he doesn't expect his preference alone to set the direction of the product for the next couple of years, although he would like to see it replace the basic CMD.EXE command shell.

I think he is right on the first one (we'll see) but I must admit that I've never understood the desire to replace CMD.exe. When you bought office, did you think of it as "replacing Wordpad"? Did you freak out when you discovered that we still shipped WordPad?

I totally "get" USING PowerShell instead of CMD.exe (that's just an IQ test J ) but when people want to REPLACE Cmd.exe, it seems more like they want to scrap something off the bottom of their shoe. We are going to have CMD.exe for a long time. While the end of life for VBScript has been announced (don't freak out – it is going to be supported for a long time but the clock has started (it will become an optional component, then a web download, then a memory)), no such announcement has been made for CMD.exe.

I think Ian got it right, he talks about "making PowerShell the default shell for Windows". That is distinctly different than "replace" e.g. no longer ship cmd.exe. Perhaps people are just using the term "replace" as shorthand for "replace for some function".


Jeffrey Snover [MSFT]
Windows Management Partner Architect
Visit the Windows PowerShell Team blog at:
Visit the Windows PowerShell ScriptCenter at:


Leave a Comment
  • Please add 2 and 1 and type the answer here:
  • Post
  • I agree, Powershell as default shell is a good idea, removing cmd.exe is definitely not.

    You mentioned that EOL of VBScript has been announced. Do you have a link to the announcement?

  • I'd like to second that request please: where has Microsoft mentioned that VBScript support will eventually become an optional component?  Is it the WSH as a whole that will become optional, hence, JScript support will be optional too?  This will help to sell my company on transitioning to PowerShell.  Thanks.

  • I don't have a pointer but I belive that it was IT Forum in Nov 2005 that this was announced.

    Jeffrey Snover [MSFT]

    Windows Management Partner Architect

    Visit the Windows PowerShell Team blog at:

    Visit the Windows PowerShell ScriptCenter at:

  • So, if people are using Powershell in place of CMD.exe, what are they doing about BAT or VBS files that are intended to be double-clicked to run?

    Is there any roadmap or tool for this functionality?   I haven't been able to find one.  Or should we be making bat files that run powershell scripts?  That seems ugly. :\

  • My main problem with cmd.exe is that it is the default when loading console applications. Due to its historical origins, it has almost no support for Unicode I/O. Console applications are going to be around for a lot longer, but they will never get full Unicode support like a modern Windows application.

    While I have the option of configuring which application to load for a text document, console applications are executed in cmd.exe by default and I can not change this. This is a serious problem. Perhaps something could be done by replacing (at least allowing a configuration) cmd.exe with PowerShell.

  • @me:  Perhaps I'm misunderstanding what you're trying to say, but console applications do not invoke cmd.exe.  Invoking a BAT or CMD script will load cmd.exe to run in, but EXE files do not.  If you invoke a console app (e.g., netsh.exe) from the Run dialog, it will display in a console window, but that's not cmd.exe.

  • Do have a link to a press release stating that VBScript is heading to the dustbin of history? Just curious. I missed that one.

  • Sorry but i can't agree with you, also because you can run on powershell also the commands you are usual to do with cmd.

    I think powershell is the answer a lot of sysadmins had expected for too much time, because even if a gui program is more friendly to use, nothing can replace the powerfull of a text-based command-line (and cmd.exe is not usefull for this kind of works).

    My compliments for your blog.

Page 1 of 1 (8 items)

Replacing cmd.exe