# What Happened in PowerShell This Summer


Third roundup of the year, covering August and September, plus what October brought so far: three patch waves and the first 7.7 release candidate. The [previous one](/2026-08-04-powershell-roundup-july/) ran up to the end of July. Pester had a busy summer too, with two feature releases in five weeks — more on that below.

<!--more-->

## First: 7.4 and 7.5 retire on November 10

If you only read one section, make it this one. **PowerShell 7.4 LTS and 7.5 both reach end of support on November 10, 2026**, together with .NET 8 and .NET 9. I wrote a [separate short post](/2026-10-30-powershell-7-4-7-5-end-of-support/) on what that means and where 7.4 tends to hide (Azure Functions, Automation runbooks, build agents). Short version: get onto 7.6 LTS.

## 7.7 previews 4 and 5, and the first release candidate

Two more previews of 7.7, which is built on .NET 11 and will be a non-LTS release — and this week, the first release candidate.

**[7.7.0-preview.4](https://github.com/PowerShell/PowerShell/releases/tag/v7.7.0-preview.4)** (September 1):

- A new **`New-TemporaryDirectory`** cmdlet, the folder counterpart to `New-TemporaryFile`. A community contribution, and one of those "how was this not there already" additions
- `Invoke-WebRequest` got better output file path detection and changed how the `Authorization` header is handled on redirects — worth testing if you call APIs that redirect
- Security hardening in remoting: tighter argument validation and validation of PSRP (PowerShell Remoting Protocol) message fragments
- Ubuntu 26.04 packages

**[7.7.0-preview.5](https://github.com/PowerShell/PowerShell/releases/tag/v7.7.0-preview.5)** (September 23) moved to .NET 11 RC1 and has two changes I'd call out.

**Compact output, aimed at AI agents.** A new opt-in setting makes the implicit table and wide views autosize their columns:

```powershell
$PSStyle.AutoSizeDefaultFormatting = $true
```

The motivation in the [pull request](https://github.com/PowerShell/PowerShell/pull/28018) is explicit: *"This allows PowerShell to generate less verbose output when used by an agent."* When an AI coding assistant runs `Get-Process` for you, every padded space in that table costs tokens and context. It also helps in a narrow terminal. List views and complex objects still stream as before. It was backported to 7.6.7, so you can try it on the LTS today.

```powershell
Get-Process -Name pwsh | Out-Host
$PSStyle.AutoSizeDefaultFormatting = $true
Get-Process -Name pwsh | Out-Host
```

```text
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     60    39,96      97,50       1,03    8384   1 pwsh
    105    53,55     188,41       9,34   16852   1 pwsh
    153    98,34     286,98     100,36   21868   1 pwsh


NPM(K) PM(M)  WS(M) CPU(s)    Id SI ProcessName
------ -----  ----- ------    -- -- -----------
    60 39,59  98,19   1,08  8384  1 pwsh
   105 53,55 188,41   9,34 16852  1 pwsh
   153 98,34 286,98 100,36 21868  1 pwsh
```

Same processes, same data, but every column is only as wide as it needs to be. The `| Out-Host` matters in this demo: without it, both commands write into one and the same table, which keeps the first command's layout, so you'd see no difference at all.

**A broken user config file no longer stops PowerShell from starting.** If your per-user `powershell.config.json` can't be read — bad JSON, wrong permissions, or OneDrive's file provider not running yet when you open a terminal — PowerShell now falls back to the defaults and writes a warning, instead of failing. The system-wide config still fails hard, which makes sense: it's admin-owned, and on Linux and macOS it's where some security policies live. Also backported to 7.6.7.

Preview 5 bundles PSResourceGet 1.3.0-preview2 and PSReadLine 2.4.5.

**[7.7.0-rc.1](https://github.com/PowerShell/PowerShell/releases/tag/v7.7.0-rc.1)** (October 29) is mostly hardening and fixes, which is what you'd expect from a release candidate:

- **The update notification is gone.** PowerShell no longer tells you at startup that a new version is available. The same change shipped in 7.6.8 (see the servicing waves below), so update your machines through your package manager or whatever you deploy with
- Several Constrained Language Mode protections around property assignment, and implicit-remoting protections that now also apply to aliases
- **`Test-Json` no longer follows external schema references by default** — you now need `-FetchExternalReference` for that. Worth testing if your schemas `$ref` other files or URLs
- Fixes for `Get-ChildItem -Recurse -Name`, `Resolve-Path -Relative` with dot-prefixed names, and duplicate results from `Get-Command`'s fuzzy matching
- It bundles PSResourceGet 1.3.0-rc1

## DSC v3.3 is GA

[DSC v3.3.0](https://devblogs.microsoft.com/powershell/announcing-dsc-v3-3-0/) was released on September 17 — the only post on the PowerShell team blog in this window. If you followed my [DSC v3 primer](/2026-05-16-dsc-v3-primer/) and the [v3.2 post](/2026-05-19-dsc-v3-2-bicep-and-windows-resources/), the highlights:

- New Windows resources: `Microsoft.Windows/RegistryList`, `WindowsFeatureList` and `Personalization`, plus a registry adapter
- `--what-if` now works for services, firewall rules and the SSH server config resources
- New `stateChanged()` and `restartRequired()` expression functions, and `format()` is now stable
- DSC is now published as RPM and DEB packages on packages.microsoft.com

Two renames, both keeping the old name as a backward-compatible alias:

- `dsc mcp` is now `dsc server`
- On `dsc resource` commands, `--version` is now `--required-version`

[v3.4.0-preview.1](https://github.com/PowerShell/DSC/releases) was published on September 10, a week *before* 3.3 GA, with JSON schema caching, a Group Policy template adapter, and resources for Windows environment variables and file content. [v3.4.0-preview.2](https://github.com/PowerShell/DSC/releases/tag/v3.4.0-preview.2) followed on October 28 with ACL support: a new `Microsoft.Filesystem/ACL` resource and ACLs on the registry resources, plus an environment path variable resource and a Windows Configuration Service Provider (CSP) adapter.


## Pester 6.1 and 6.2

Two feature releases followed [Pester 6.0](/2026-07-14-pester-v6-released/) from July, each with its own post:

- **[Pester 6.1](/2026-08-16-pester-v6-1/)** (August 11) — `New-ShouldAssertion` for writing your own `Should-*` assertions, `-NormalizeLineEnding` and `-IgnoreOrder` options, and experimental global mocks (`Mock.Global`, which the maintainers want as the default in Pester 7) and shuffled test order. The `Run.BeforeContainer` option was quietly removed
- **[Pester 6.2](/2026-09-14-pester-v6-2/)** (September 9) — `Pester.BeforeContainer.ps1` setup files now cascade down your test folders, multiple `BeforeAll` blocks are allowed again (reversing a 6.0 breaking change), configuration typos and wrong types are caught, and parallel runs work on Windows PowerShell 5.1

6.2 is the one I'd single out. The setup-file cascade removes a lot of copy-pasted `BeforeAll` boilerplate from bigger test suites, and the configuration validation finally tells you when a typo like `Run.Paralel` means an option silently does nothing.

If you're moving from v5 now, start with 6.2 — going for the latest is the right call unless it's broken. The move from 4.x to 5.x was the big syntax change; from 5.x to 6.x is a lot easier.

A few issues were reported after 6.2 that are worth knowing about, mostly if you use the still-experimental parallel runs:

- [#3047](https://github.com/pester/Pester/issues/3047) — parallel runs can fail with "Collection was modified" while importing modules
- [#3044](https://github.com/pester/Pester/issues/3044) — warning output now shows up in parallel runs
- [#3059](https://github.com/pester/Pester/issues/3059) — `Should-BeCollection` doesn't check item order, while v5's `Should -Be @(1, 2, 3)` did. Worth knowing when you convert assertions

## PSResourceGet 1.3 previews and release candidates

[PSResourceGet 1.3.0-preview2](https://www.powershellgallery.com/packages/Microsoft.PowerShell.PSResourceGet) (September 18) continues the [roadmap from May](https://devblogs.microsoft.com/powershell/powershell-psresource-roadmap-and-best-practices/):

- **Platform-aware installs** — packages with native components can be filtered by `-RuntimeIdentifier` and `-TargetFramework`, so you don't download every platform's binaries
- **`PSContentPath`** — standard platform paths for where modules and scripts are installed
- More parallelism during installs
- `-WhatIf` support for the DSC resource's list operations — one of several DSC resource contributions by Gijs Reijn ([@Gijsreyn](https://github.com/Gijsreyn))

In October it moved to release candidates: [1.3.0-rc1](https://github.com/PowerShell/PSResourceGet/releases/tag/v1.3.0-rc1) (October 20) adds custom error messages for the PowerShell Gallery and more install concurrency, and [rc2](https://github.com/PowerShell/PSResourceGet/releases/tag/v1.3.0-rc2) (October 29) only updates dependencies — so GA looks close. Stable is still 1.2.0, and remember that 1.3 drops Windows PowerShell 5.1 support.

## The servicing waves

Five rounds in this window, most of them covering 7.6, 7.5 and 7.4:

| Date | 7.6 (LTS) | 7.5 | 7.4 (LTS) | Notable |
|---|---|---|---|---|
| August 14 | [7.6.5](https://github.com/PowerShell/PowerShell/releases/tag/v7.6.5) | 7.5.10 | 7.4.19 | Fixes dot-sourcing of advanced-function scripts run with `pwsh -File` |
| September 8 | [7.6.6](https://github.com/PowerShell/PowerShell/releases/tag/v7.6.6) | 7.5.11 | 7.4.20 | Fixes a crash on older Windows versions related to WLDP (Windows Lockdown Policy) |
| October 13 | [7.6.7](https://github.com/PowerShell/PowerShell/releases/tag/v7.6.7) | 7.5.12 | 7.4.21 | Tolerant user config, `AutoSizeDefaultFormatting` backport; same day as the October .NET security updates |
| October 22 | [7.6.8](https://github.com/PowerShell/PowerShell/releases/tag/v7.6.8) | — | — | Removes the update notification at startup |
| October 25 | [7.6.9](https://github.com/PowerShell/PowerShell/releases/tag/v7.6.9) | 7.5.13 | 7.4.22 | .NET SDK update only |

7.4.22 and 7.5.13 are likely the last or second-to-last patches those lines will get: end of support, November 10, is also November's Patch Tuesday.

## Az and Microsoft Graph

- **[Az 16.2.0](https://learn.microsoft.com/en-us/powershell/azure/release-notes-azureps)** (August 4) — Az.Storage 9.7.2 fixes a **path traversal issue** in `Get-AzStorageBlobContent` and `Get-AzDataLakeGen2ItemContent`. If you download blobs with names you don't control, update
- **Az 16.3.0** (August 31) — Az.KeyVault moves to a newer API version; older Key Vault API versions retire on February 27, 2027
- **Az 16.4.0** (October 6) — two new GA modules (Az.Discovery and Az.Mission) and `SpotPlus` priority for `New-AzVM`
- **[Microsoft Graph PowerShell SDK](https://www.powershellgallery.com/packages/Microsoft.Graph/)** — 2.39 added `-LoginHint` to `Connect-MgGraph`, and 2.41.x isolates the authentication module's dependencies to fix assembly conflicts. 2.41.2 is current

## Community

- **PSConfEU 2026 recordings** — the sessions from June are [on YouTube](https://psconf.eu/recordings/videos-2026/), including my [Pester workshop with Jakub Jareš and a Spec Kit session](/2026-08-20-psconfeu-2026-videos-online/)
- **[PSConfEU MiniCon 2026](/2026-10-06-psconfeu-minicon-2026/)** took place online on October 13 — free, in Gather Town, with sessions spread over the day for every time zone
- **[PSConfEU 2027](https://sessionize.com/powershell-conference-europe-2027)** goes to Kraków, Poland: June 21–24, 2027. The [call for speakers](https://psconf.eu/psconfeu-2026-call-for-speakers-is-now-open/) opened on October 13 and runs until December 13. Earlier, on September 1, the organizers published a candid post on [pricing PSConfEU for a sustainable future](https://psconf.eu/pricing-psconfeu-for-a-sustainable-future/): the base ticket stayed at €1,499 from 2016 to 2023 and has been around €1,750 since 2024, while venue, audiovisual and staffing costs rose faster than inflation
- **[PowerShell + DevOps Global Summit 2027](https://powershellsummit.org/)** moves to Orlando: April 5–8, 2027. The call for speakers has closed, and the schedule is expected on November 1

## A quiet editor season

No new releases of PSScriptAnalyzer, PSReadLine, or the VS Code extension in this window. The extension's newest build is still the [2026.1.2-preview](https://github.com/PowerShell/vscode-powershell/releases) from June, and the latest stable is from October 2025 — a long gap for the extension most of us write PowerShell in.

## Wrap

For Pester, this was the stretch where version 6 settled in: 6.1 made the new assertions extensible, and 6.2 took away a lot of setup boilerplate and one of the more annoying 6.0 breaking changes. If you've been waiting to move from v5, [6.2](/2026-09-14-pester-v6-2/) is a good moment.

For PowerShell itself, the theme, if there is one: adjusting to being driven by AI agents as much as by people — compact output for agents in 7.7, and DSC's MCP mode now being a general server mode. And underneath it, the usual servicing work. Most important action item: November 10.

Happy scripting 😊

