PowerShell 4 and 5 specifications RRS feed

  • Question

  • I found the PowerShell 2 and 3 specifications.

    Where can I find the PowerShell 4 and 5 specifications?

    Sunday, August 23, 2015 2:47 PM


All replies

  • Hello Liturgist,

    Thank you for your question. A member of the protocol documentation team will respond to you soon.

    Best regards,
    Matt Weber | Microsoft Open Specifications Team

    Sunday, August 23, 2015 5:11 PM
  • Hi,

    I am reviewing this and will follow-up soon.



    Monday, August 24, 2015 5:13 PM
  • Hi,

    Regarding Windows Server 2016, which is Technical Preview 3 (TP3) at the moment, “[MS-PSRP]: PowerShell Remoting Protocol” was updated on June 30th 2015 covering updates for Windows 10 and Windows Server 2016 Technical Preview.

    Although the PowerShell Language specification itself – outside the Open Specifications umbrella – has not been updated recently, there is recent TechNet content that describes “new features in Windows PowerShell 4.0 and 5.0”.

    What's New in Windows PowerShell

    Windows PowerShell Survival Guide



    Wednesday, August 26, 2015 9:50 PM
  • Has there been any change regarding this?

    On what specifications are the PowerShell Core developers basing their work?

    Tuesday, May 23, 2017 10:40 PM
  • Hi Liturgist.

    Edgar pointed you to the PowerShell Remoting Protocol [MS-PSRP].  There has since been a PowerShell Remote Debugging Protocol [MS-PSRDP].  See and[MS-PSRDP].pdf.

    Your question is somewhat broad and vague.  Can you provide more detail of what you're trying to accomplish and what issues you are having to achieve your goals?  Are you attempting to implement the [MS-PSRP] protocol?

    The purpose of this forum is to assist developers implement Microsoft protocols, of which [MS-PSRP] is among those protocols.  If you are implementing PowerShell remoting and have specific questions we would be happy to help.  Other types of inquiries may need to be redirected elsewhere.

    Bryan S. Burgin Senior Escalation Engineer Microsoft Protocol Open Specifications Team

    Friday, May 26, 2017 6:34 PM
  • Hi,

    I am also interested in the new Powershell Language specification as the version 3 does not include the new class and enum syntax. What is the grammar? How are our custom classes and enums converted to different types (as described in section 6. Conversions), especially Hashtable to class conversion and back? Are there scopes in classes (like Script or Global for variables)?

    It's good to RTFM and this specification ( is a good FM.

    Tuesday, July 3, 2018 10:09 AM
  • Hi Piotr Siodmak,

    As noted previously by Edgar and Bryan the PowerShell Language specification is not part of the Open Specifications Program and so not supported through this forum. 

    A more appropriate forum to raise your request would be the PowerShell TechNet forum:

    Also, if you were not aware PowerShell Core has been released as a cross-platform open source project. The Language Reference is not included in the project but you may get the answer to your questions through the program.

    Will Gregg | open specifications

    Thursday, July 5, 2018 2:55 PM
  • That's a good pointer. Thanks.
    Friday, July 6, 2018 7:54 AM
  • This is all that Microsoft has on powersHELL, which is supposed to replace CMD.EXE as the main scripting language for Windows OSes?  No reference documentation for the basic constructs of the language? 

    So, how did the great MSFT developers implement versions 4, 5, 6, 7, etc?  They just kinda winged it?? That's how truck-sized security holes creep in.  This is shameful for Microsoft.  Without a language spec, defects in the language grammar, logical design, etc can't be identified.   

    powersHELL on the surface already feels like a disaster to any experienced developer who wants to write some basic scripts with it.    I wonder, why did MSFT even bother to attempt to re-invent a language, when either VBS or Javascript, (or any other language for that matter:  Python, Perl, C#, even C++) for the core language features.  There's nothing new in Object-Oriented development that requires coming up with powersHELL.  This scripting language's use of objects such as "cmdlets" can be done by any properly-spec'd language that has object capabilities.   

    As for me, I'm giving up on powersHELL.  If I need better scripting, I'll use msys2 (bash, python, perl, etc)  for the basic language logic, and then use cmd.exe to launch windows commands.  I get fully working scripts, and as an added bonus, I can make all scripts to be platform independent (Linux, *ix, MacOS, Windows  (any variety) etc).  

    Wednesday, June 26, 2019 4:04 PM
  • Algn2,


    The purpose of this forum is to assist third-party implementers of Microsoft’s on-the-wire protocols, of which the [MS-PSRP] “PowerShell Remoting Protocol” ( is among the Open Specifications’ technical documents library, which can be enumerated at  The entire protocol interoperability program can be found via


    This is not the proper forum for the PowerShell language itself.

    Bryan S. Burgin Senior Escalation Engineer Microsoft Protocol Open Specifications Team

    Wednesday, June 26, 2019 11:15 PM