Built on the .NET Framework, Windows PowerShell allows IT professionals to manage computers via commands or scripts, improving productivity through system automation.

Installation Process

Download the PKG package powershell-7.2.2-osx-x64.pkg from the Download Now button onto your macOS machine.

You can double-click the file and follow the prompts, or install it from the terminal:

  • sudo installer -pkg powershell-7.1.2-osx-x64.pkg -target /

Install OpenSSL. OpenSSL is needed for PowerShell remoting and CIM operations.

What's New

General Cmdlet Updates and Fixes

  • Revert "Adjust PUT method behavior to POST one for default content type in WebCmdlets" (#21049)
  • Fix regression with Get-Content when -Tail 0 and -Wait are both used (#20734) (Thanks @CarloToso!)
  • Fix Get-Error serialization of array values (#21085) (Thanks @jborean93!)
  • Fix a regression in Format-Table when header label is empty (#21156)

Engine Updates and Fixes

  • Revert the PR #17856 (Do not preserve temporary results when no need to do so) (#21368)
  • Make sure the assembly/library resolvers are registered at early stage (#21361)
  • Handle the case that Runspace.DefaultRunspace is null when logging for WDAC Audit (#21344)
  • Fix PowerShell class to support deriving from an abstract class with abstract properties (#21331)
  • Fix the regression when doing type inference for $_ (#21223) (Thanks @MartinGC94!)

Previous Release Notes:

Security Fixes

  • Block getting help from network locations in restricted remoting sessions (Internal 27698)

Build and Packaging Improvements

  • Bump .NET SDK version to 7.0.401
  • Update man page to match current help for pwsh (#20249)

Previous Release Notes:

PowerShell 7.3 is the next stable release, built on .NET 7.0.

PowerShell 7.3 includes the following features, updates, and breaking changes.

Breaking Changes and Improvements

  • In this release, Windows APIs were updated or removed for compliance, which means that PowerShell 7.3 doesn't run on Windows 7. While Windows 7 is no longer supported, previous builds could run on Windows 7.
  • PowerShell Direct for Hyper-V is only supported on Windows 10, version 1809 and higher.
  • Test-Connection is broken due to an intentional breaking change in .NET 7. It's tracked by #17018
  • Add clean block to script block as a peer to begin, process, and end to allow easy resource cleanup (#15177)
  • Change default for $PSStyle.OutputRendering to Host
  • Make Out-String and Out-File keep string input unchanged (#17455)
  • Move the type data definition of System.Security.AccessControl.ObjectSecurity to the Microsoft.PowerShell.Security module (#16355) (Thanks @iSazonov!)
  • Before this change, a user doesn't need to explicitly import the Microsoft.PowerShell.Security module to use the code properties defined for an instance of System.Security.AccessControl.ObjectSecurity.
  • After this change, a user needs to explicitly import Microsoft.PowerShell.Security module in order to use those code properties and code methods.

Tab completion improvements

  • PowerShell 7.3 includes PSReadline 2.2.6, which enables Predictive IntelliSense by default. For more information, see about_PSReadLine.
  • Fix tab completion within the script block specified for the ValidateScriptAttribute. (#14550) (Thanks @MartinGC94!)
  • Added tab completion for loop labels after break/continue (#16438) (Thanks @MartinGC94!)
  • Improve Hashtable completion in multiple scenarios (#16498) (Thanks @MartinGC94!)
  • Parameter splatting
  • Arguments parameter for Invoke-CimMethod
  • FilterHashtable parameter for Get-WinEvent
  • Property parameter for the CIM cmdlets
  • Removes duplicates from member completion scenarios
  • Support forward slashes in network share (UNC path) completion (#17111) (Thanks @sba923!)
  • Improve member autocompletion (#16504) (Thanks @MartinGC94!)
  • Prioritize ValidateSet completions over Enums for parameters (#15257) (Thanks @MartinGC94!)
  • Add type inference support for generic methods with type parameters (#16951) (Thanks @MartinGC94!)
  • Improve type inference and completions (#16963) (Thanks @MartinGC94!)
  • Allows methods to be shown in completion results for ForEach-Object -MemberName
  • Prevents completion on expressions that return void like ([void](""))
  • Allows non-default Class constructors to show up when class completion is based on the AST
  • Improve type inference for $_ (#17716) (Thanks @MartinGC94!)
  • Fix type inference for ICollection (#17752) (Thanks @MartinGC94!)
  • Prevent braces from being removed when completing variables (#17751) (Thanks @MartinGC94!)
  • Add completion for index expressions for dictionaries (#17619) (Thanks @MartinGC94!)
  • Fix type completion for attribute tokens (#17484) (Thanks @MartinGC94!)
  • Improve dynamic parameter tab completion (#17661) (Thanks @MartinGC94!)
  • Avoid binding positional parameters when completing parameter in front of value (#17693) (Thanks @MartinGC94!)

Engine Updates and Fixes

  • Add instrumentation to AmsiUtil and make the init variable readonly (#18727)
  • Fix support for NanoServer due to the lack of AMSI (#18882)
  • Adding missing guard for telemetry optout to avoid NullReferenceException when importing modules (#18949) (Thanks @powercode!)
  • Fix VtSubstring helper method to correctly check chars copied (#19240)
  • Fix ConciseView to handle custom ParserError error records (#19239)

Tests

  • Backport CI fixed from #18508 (#18626)
  • Mark charset test as pending (#18609)

Build and Packaging Improvements

Update package versions.

  • SHA256 Hashes of the release artifacts
    • hashes.sha256
  • D8CD0FE9D8462435D875B034D1DD3E0A1223CD6A62F867F4CE2FF4BE7D899491
    • powershell_7.3.1-1.deb_amd64.deb
  • C23B461A443AB87F9C11CE69FB625A01D7FD141F30CA42BEC7A86CEFED79EBAC
    • powershell-7.3.1-1.cm.x86_64.rpm
  • 9DC84952CEE2C3A8D644265A8E02EDE779DF986D222786182BDFE199CBD93149
    • powershell-7.3.1-1.rh.x86_64.rpm
  • BC5695F06121DBF8EBF56A842B8723E241FD5299BB34DB42B367A4157B9A9DA8
    • powershell-7.3.1-linux-alpine-x64.tar.gz
  • 043CBA55FC9208FCC51074D7174E295D4B46D2EDCABD03E107736BD6731DDF66
    • powershell-7.3.1-linux-arm32.tar.gz
  • 3AF65D5DB14D3B8D2C7F1E756821B036ED8629CC4BC59F7F6B260F6AF4DA72CA
    • powershell-7.3.1-linux-arm64.tar.gz
  • F0E03A128171E596A2387D86EF659F3A09D3700BE900D62BDEA3156D005EDA68
    • powershell-7.3.1-linux-x64.tar.gz
  • 68C2C0531A6796871DD7341B66C7085DDCC70570EB619DA3DBED769BCE4EE371
    • powershell-7.3.1-linux-x64-fxdependent.tar.gz
  • D6032C02D57DCBC3FAE5C0D2572DEA5682504811061BD1635A07B70B137E21FA
    • powershell-7.3.1-osx-arm64.pkg
  • ADB1E56FFF1E3B4BD1403E75089B92EF8B7432DCA6FE48CF94ED84A16936CD7E
    • powershell-7.3.1-osx-arm64.tar.gz
  • 66AE3E155043011A0CB7025E748C385C101C464FC105F39818DA678B702154BD
    • powershell-7.3.1-osx-x64.pkg
  • B6C8D4F8ED0CD1854CD00FE8A7816428093E71FDDC30546A3406C07F409C02AE
    • powershell-7.3.1-osx-x64.tar.gz
  • 18529E2EF589DACFA62B3ADAA0640EDABF5F31FE4CC3D484D5060F93166E6156
    • PowerShell-7.3.1-win.msixbundle
  • F2C9247D6108B42EBCD489FC2EF52078EB450CF7282E4B91B9525A334F38B233
    • PowerShell-7.3.1-win-arm32.zip
  • D808FBBB91E73F39BA1629D4339F2CC6E73D0C1A51EA5FF91BA8F68861B11A5E
    • PowerShell-7.3.1-win-arm64.zip
  • F86C1DA8896144A0D913B85B58157B419D3A89FF357EA191081D58DE944DE354
    • PowerShell-7.3.1-win-fxdependent.zip
  • 12A4E9100CF6448583D205714B262A0C3EA0CA4F2056ABEFD6831A6AFB923160
    • PowerShell-7.3.1-win-fxdependentWinDesktop.zip
  • 9938F6F95BBD0341B1279BA859B4BF643924759534DC6B527E15528E736E3149
    • PowerShell-7.3.1-win-x64.msi
  • CAD0026DF877F1B195B87AAE1858E8BC8BA759C19B7440CD62E1F5432665519F
    • PowerShell-7.3.1-win-x64.zip
  • 997EDF93ED570C0E6559588F2E3F52CB2B043535D7022128F2A734A2D904E3F5
    • PowerShell-7.3.1-win-x86.msi
  • 0266C3BCF23A35E5400C8DA28BE951986454D33973E56274D0E6217B0C56829A
    • PowerShell-7.3.1-win-x86.zip
  • 9FA3E39DC072093F0AB86EC75C91199D91B526BEFCE80722D6FB5F6614C21547