Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
VGSOURCES
Get listed

.NETPATCH 2026.10.18

New Features in PowerShell 7.6, 7.5 and 7.4: What Changed and Should You Upgrade?

By VGSources Team 8 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

PowerShell 7 is the cross-platform, .NET-based successor to Windows PowerShell 5.1. The most important recent changes are not new aliases or cosmetic shell tweaks: PowerShell 7.4 made native-command byte streams and Windows argument passing mainstream, 7.5 added explicit CLI-XML conversion commands and broader completion, and the 7.6 LTS line moves to .NET 10 while promoting several experimental features to supported behavior.

Whether you should upgrade depends on your scripts and modules. Check the .NET/runtime line, native-command argument and encoding behavior, module versions, installer behavior, and the documented breaking changes—not just whether a command exists in both shells.

As an Amazon Associate I earn from qualifying purchases.

PowerShell 7 at a glance

PowerShell 7 is a separate product line from Windows PowerShell 5.1. It runs on modern .NET and targets Windows, macOS and Linux, so compatibility is determined by both the operating system and the .NET runtime underneath it. A script that works in Windows PowerShell 5.1 can still need changes when it crosses platforms, invokes a native executable, loads a Windows-only module or relies on older JSON and remoting behavior.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
PowerShell release Runtime line Notable additions Important qualification
7.4 (LTS) .NET 8; current servicing line noted on .NET 8.0.31 Native byte-stream preservation, Windows native-argument passing, ProgressAction, updated JSON-schema engine Some formerly experimental native-command features became mainstream
7.5 .NET 9; PowerShell 7.5.11 is built on .NET 9.0.20 ConvertTo-CliXml, ConvertFrom-CliXml, richer tab completion, web-cmdlet fixes, numeric BigInteger JSON Introduces breaking defaults and restricted-remoting help changes
7.6 (LTS line) .NET 10; PowerShell 7.6.6 is built on .NET 10.0.12 PSResourceGet 1.2.0, PSReadLine 2.4.5, ThreadJob 2.2.0, promoted experimental features Module-qualified ThreadJob calls may need a new module name

The patch numbers above identify the builds documented in Microsoft’s release notes; they are not claims that every operating system receives an identical package on the same day.

#1 Best Overall
Sale
PowerShell for Sysadmins: Workflow Automation Made Easy
  • Book - powershell for sysadmins: workflow automation made easy
  • Language: english
  • Binding: paperback

What is new in PowerShell 7.6

A .NET 10 LTS foundation

Microsoft documents PowerShell 7.6.6 as built on the .NET 10.0.12 runtime. For organizations standardizing on a long-term-support runtime, this is the major architectural change from the 7.5 line. Runtime support matters to compiled modules, cryptography, networking, file-system behavior and platform integration, so test the modules your automation actually loads rather than assuming a version-number change is risk-free.

Updated modules ship with the release

The 7.6 bundle includes Microsoft.PowerShell.PSResourceGet 1.2.0, PSReadLine 2.4.5 and Microsoft.PowerShell.ThreadJob 2.2.0. These versions affect package management, interactive editing and background work even when your own script contains no new 7.6 syntax.

The ThreadJob module rename is the migration detail most likely to break an otherwise working script. The Microsoft.PowerShell.ThreadJob module replaces the older ThreadJob module. If a script uses a module-qualified command, change it to Microsoft.PowerShell.ThreadJobStart-ThreadJob. Review module-qualified imports and command invocations in scheduled tasks, profiles and deployment scripts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Experimental features promoted to mainstream

Four capabilities moved from experimental status into the normal 7.6 experience:

  • PSFeedbackProvider replaces the hard-coded suggestion framework and provides feedback formatting properties through $PSStyle.Formatting.
  • PSNativeWindowsTildeExpansion improves tilde expansion when Windows native commands receive paths.
  • PSRedirectToVariable enables redirection to a variable.
  • PSSubsystemPluginModel becomes part of the supported feature set for subsystem integration.

Promotion means these features no longer require an experimental-feature opt-in in the 7.6 line. If you previously enabled them manually, remove that workaround and retest profile code that changes feedback formatting or native path handling.

New experimental work in 7.6

PowerShell 7.6 also introduces two experimental features: PSSerializeJSONLongEnumAsNumber and PSProfileDSCResource. Experimental features can change before a later release, so avoid making production output formats or deployment contracts depend on them without an explicit compatibility plan.

macOS packaging

The macOS PKG for 7.6 is notarized and signed by Microsoft. That improves the trust and installation path on macOS, but it does not remove the need to check your operating system version, execution policy and locally installed modules.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What is new in PowerShell 7.5

Explicit CLI-XML conversion cmdlets

PowerShell 7.5 adds ConvertTo-CliXml and ConvertFrom-CliXml. They make the shell’s CLI-XML serialization format available through named commands instead of requiring a less obvious serialization workflow. This is useful when a script must persist PowerShell object data, exchange it with another PowerShell process or make the conversion step visible during code review.

CLI-XML is PowerShell’s object serialization format, not general-purpose JSON or a language-neutral data contract. Treat deserialized values as data snapshots: methods and live provider connections do not survive serialization in the same way as the original object.

Broader and more accurate tab completion

Completion in 7.5 adds more type inference and argument completers. Microsoft specifically calls out completion scenarios for -Verb, -Scope, -Module and -Version. The practical effect is less manual typing when discovering commands, modules and versioned package operations. Completion quality still depends on the command’s metadata and the modules installed on that machine.

Web-cmdlet behavior is more predictable

Web cmdlets improve the combination of -PassThru and -OutFile. Responses expose an OutFile property, verbose output reports filenames more consistently, and fixes address request body/content-type handling and resume-size behavior. If a download script examines the returned object, logs the destination or resumes interrupted transfers, retest it on 7.5 rather than relying on output observed under 7.3 or earlier.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

BigInteger values serialize as JSON numbers

ConvertTo-Json now serializes .NET BigInteger values as JSON numbers. Consumers that previously received a quoted value may need schema or parsing adjustments. Check both sides of an API or file exchange: JSON parsers differ in how safely they represent integers larger than their native numeric range.

7.5 changes that can break automation

  • File catalogs: the default New-FileCatalog -CatalogVersion is now 2. Scripts that compare catalog formats or validate a fixed version should set the parameter explicitly.
  • Restricted remoting: help retrieval from network locations is blocked in restricted remoting sessions. A command that previously fetched remote help may now return no network content; provide local help or change the remoting policy deliberately.
  • Windows installer memory: the installer remembers previous installation options for the next installation. On managed machines, verify the remembered choices before accepting an upgrade.

What changed in PowerShell 7.4 LTS

Native byte streams stay bytes

PowerShell 7.4 makes PSNativeCommandPreserveBytePipe mainstream. Redirecting native-command standard output to a file or piping bytes to a native command can now preserve the byte stream instead of forcing text-oriented PowerShell processing. This matters for compressed data, images, archives, cryptographic material and any protocol where a single byte changed is a corruption.

Audit scripts that combine commands such as a compiler, archiver, media tool or database client with PowerShell redirection. Decide whether the next command expects bytes or text, and test the result on each target platform because native utilities and encodings remain platform-dependent.

Windows native-command argument passing

PSWindowsNativeCommandArgPassing also became mainstream. It changes how PowerShell constructs the argument list sent to Windows native executables. Quoting, embedded spaces, empty strings, wildcard characters and trailing backslashes are the usual risk points. A command that merely prints its arguments is a useful diagnostic: run it with representative paths and values, then compare the received arguments before and after the upgrade.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A common parameter for progress control

PowerShell 7.4 adds ProgressAction to the common parameters. Scripts can now control progress behavior consistently where a command supports common parameters, which is useful for quiet scheduled jobs and for interactive tasks where progress should remain visible. Do not assume it changes a command that does not emit progress records.

Test-Json uses JsonSchema.NET

Test-Json moved to JsonSchema.NET in the 7.4 line. Older Draft 4 schemas are no longer supported by that cmdlet. If validation starts failing after an upgrade, inspect the schema draft and either update the schema or use a validator that supports the required draft.

Feedback and module-loading experiments

7.4 introduced PSFeedbackProvider as an experimental replacement for the hard-coded suggestion framework. It exposes formatting properties through $PSStyle.Formatting. The release also introduced experimental PSModuleAutoLoadSkipOfflineFiles and PSCommandWithArgs. Experimental status means behavior and names can change; pin a tested PowerShell version when a production profile depends on them.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Why PowerShell 7 feels different from Windows PowerShell 5.1

The transition began before 7.4. PowerShell 7.2 added universal installers for most supported Linux distributions, Microsoft Update support on Windows, PSReadLine 2.1 Predictive IntelliSense and experimental native-command argument passing. Those changes explain why installation, update channels, command discovery and interactive completion differ from a 5.1 workstation even when the same script is run.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The largest compatibility boundaries are:

  • Operating system and runtime: .NET APIs and platform providers are not identical across Windows, Linux and macOS.
  • Native processes: argument quoting, standard-error handling, encodings and byte preservation can affect every external executable.
  • Modules: a module may target Windows PowerShell, a particular .NET API or a specific PowerShell edition; bundled module versions also change across releases.
  • Interactive tooling: PSReadLine and completion behavior evolve independently of the core language.
  • Serialization and validation: JSON number handling, CLI-XML commands and JSON-schema support can alter data contracts.

Upgrade decision: stay on 5.1, move to 7.4, or test 7.5/7.6

Your situation Most defensible choice What to verify first
Windows-only scripts depend on legacy snap-ins or modules that have no .NET-compatible build Keep the affected workload on 5.1 while modernizing it Module availability, provider behavior and replacement APIs
You need a supported long-term runtime and stable native byte handling Evaluate the 7.4 LTS line Native redirection, Windows argument passing, schema drafts and module compatibility
You need CLI-XML commands, newer completion or web-cmdlet fixes Evaluate 7.5 File-catalog defaults, restricted-remoting help and JSON consumers
You want the current LTS line and .NET 10 Evaluate 7.6 ThreadJob module qualification, bundled module versions, macOS packaging and experimental-feature assumptions

There is no universal “latest is always safe” answer. Choose the newest line whose runtime, modules and native-command contract you have tested in the environments where the script will run.

A practical upgrade checklist

  1. Record the baseline. Run $PSVersionTable on every execution host and note the PowerShell, OS and .NET values.
  2. Inventory dependencies. Capture modules loaded by profiles, scheduled tasks, CI jobs and deployment scripts. Pay special attention to module-qualified ThreadJob commands.
  3. Exercise native commands. Test paths with spaces, quotes, empty arguments, non-ASCII characters and trailing slashes. Test both text output and binary redirection.
  4. Validate data contracts. Compare JSON containing large integers, run every Test-Json schema, and test any new CLI-XML exchange with the receiving process.
  5. Test web automation. Check -PassThru, -OutFile, verbose logs and resumed downloads against the exact endpoints used in production.
  6. Review policy and remoting. Confirm that restricted sessions have the local help and module content they require, since network help retrieval can be blocked in 7.5.
  7. Reinstall deliberately. On Windows, inspect remembered installer options before accepting a 7.5 or later installation. On macOS, use the signed and notarized 7.6 package when that line is your target.
  8. Roll out in stages. Run a canary host or CI matrix across the operating systems and PowerShell lines you support, then promote only after logs and output comparisons are clean.

Common symptoms after upgrading

Symptom Likely change Response
A binary file is corrupted after a pipeline or redirect Text-oriented processing was used where byte preservation was required Retest with the 7.4 native byte-stream behavior and keep the data path binary end to end
A Windows executable receives different arguments Native argument-passing rules changed Log the executable’s received arguments and revise quoting or argument construction
A ThreadJob command is not found The 7.6 module name changed Use Microsoft.PowerShell.ThreadJobStart-ThreadJob for module-qualified calls
Test-Json rejects a formerly valid schema JsonSchema.NET does not support the older Draft 4 schema used Update the schema draft or select a validator that supports Draft 4
A file-catalog comparison changes unexpectedly 7.5 defaults New-FileCatalog -CatalogVersion to 2 Set the catalog version explicitly when interoperability requires a fixed format
Remote help no longer downloads 7.5 blocks network help in restricted remoting sessions Install or provide local help, or revise the remoting policy intentionally
A JSON consumer sees a number instead of a quoted integer 7.5 serializes BigInteger as a JSON number Update the consumer’s schema and numeric handling before deployment

Bottom line

PowerShell 7’s meaningful progress is in compatibility boundaries: modern .NET runtimes, safer native byte handling, revised Windows argument passing, better completion and web tooling, explicit CLI-XML conversion, and refreshed module packaging. PowerShell 7.4 is the .NET 8 LTS option, 7.5 adds tooling and serialization changes on .NET 9, and the 7.6 LTS line brings .NET 10 plus promoted mainstream features. Upgrade when those capabilities solve a real requirement, but treat native commands, modules, schemas, remoting and serialized data as testable contracts rather than assuming a drop-in replacement for Windows PowerShell 5.1.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

.NETAutomationPowerShellPowerShell 7shell scriptingWindows PowerShell

Leave a reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.