Tag Archives: Powershell

PowerShell 7.5 RC-1 is now available

This post was originally published on this site

We’re proud to announce the availability of PowerShell 7.5.0-rc.1! This is the first release
candidate version of PowerShell 7.5 and is considered a “go-live” release meaning that it’s a
supported release in production. PowerShell 7.5 is built on top of .NET 9 and will be
supported for 18 months as a standard support release.

Please note that support for PowerShell 7.2 is ended November 8, 2024. PowerShell 7.4 is
the current LTS release of PowerShell and is supported until November 2026.

How do I get it?

Since PowerShell 7 is supported on Windows, Linux, and macOS, and there are a
many ways to install it. If you installed the previous PowerShell 7.5 preview release on
Windows and opted into Microsoft Update, you will be automatically updated to 7.5.0-rc.1.

Note

Automatic updates aren’t available immediately after a release. It can take up to 2 weeks to get the
latest versions deployed to all release channels.

What’s new in this release?

The PowerShell 7.5 milestone focused on security, quality and community contributions.
A few highlights include:

  • PSResourceGet now supports ACR as a container gallery, for more information check out the
    documentation
  • PSReadLine has been updated to version 2.3.6
  • New cmdlets ConvertTo-CliXml and ConvertFrom-CliXml(Thanks @ArmaanMcleod!)
  • Web cmdlet improvements as well as improvements to other cmdlets
  • Tab completion improvements
  • This release also contained a number of bug fixes — for the full list of changes please refer to
    the changelog

For more information on what’s changed, see What’s new in PowerShell 7.5.

Experimental Features that were made stable for 7.5

The following experimental features were converted to mainstream features in PowerShell 7.5:

  • PSCommandNotFoundSuggestion
  • PSCommandWithArgs
  • PSModuleAutoLoadSkipOfflineFiles

What’s next?

We expect to release PowerShell 7.5 GA in January 2025. We’ll have a separate blog post when the GA
release is available. We appreciate all the efforts of the community, both individuals and
working group members, and look forward to your continued feedback and contributions!

Sydney

PowerShell Team

The post PowerShell 7.5 RC-1 is now available appeared first on PowerShell Team.

Announcing Microsoft.PowerShell.PlatyPS 1.0.0-Preview1

This post was originally published on this site

PlatyPS is the primary tool for creating the PowerShell help displayed using Get-Help.
PowerShell help files are stored in an XML format known as
Microsoft Assistance Markup Language (MAML). Prior to PlatyPS, the help files were hand
authored using complex tool chains. Markdown is widely used in the open source community,
supported by many editors including Visual Studio Code, and easier to author. PlatyPS
simplifies the process by allowing you to write the help files in Markdown and then converted to
MAML.

Announcing Microsoft.PowerShell.PlatyPS

We’re pleased to announce the release of Microsoft.PowerShell.PlatyPS 1.0.0-Preview1. With
this release, there are two versions of PlatyPS.

  • platyPS v0.14.2 is the current version of PlatyPS that’s used to create PowerShell help files
    in Markdown format.
  • Microsoft.PowerShell.PlatyPS is the new version of PlatyPS that includes several improvements:
    • Provides a more accurate description of a PowerShell cmdlet and its parameters
    • Increased performance – processes 1000s of Markdown files in seconds
    • Creates an object model of the help file that you can manipulate in memory
    • Provides cmdlets that you can chain together to perform complex operations

Our main goal for this release is to address long standing issues, add more schema driven
features, and improve validity checking along with performance. This release is a substantial
rewrite with all new cmdlets. If you have scripts that use the older version of PlatyPS, you must
rewrite them to use the new cmdlets.

In this Preview release, we focused on:

  • Re-write in C# leveraging markdig for parsing Markdown.
  • New Markdown schema that includes all elements needed for Get-Help, plus information that was
    previously unavailable.
  • The new cmdlets produce objects, supporting chaining cmdlets for complex operations.
  • Full serialization to YAML to support our publishing pipeline.
  • Automatic conversion of existing Markdown to the new object model.
  • Export of the object model to Markdown, Yaml, and MAML.
  • The module contains the following cmdlets:
    • Compare-CommandHelp
    • Export-MamlCommandHelp
    • Export-MarkdownCommandHelp
    • Export-MarkdownModuleFile
    • Export-YamlCommandHelp
    • Export-YamlModuleFile
    • Import-MamlHelp
    • Import-MarkdownCommandHelp
    • Import-MarkdownModuleFile
    • Import-YamlCommandHelp
    • Import-YamlModuleFile
    • New-CommandHelp
    • New-MarkdownCommandHelp
    • New-UpdateableHelp
    • Test-MarkdownCommandHelp
    • Update-CommandHelp
    • Update-MarkdownCommandHelp

Microsoft.PowerShell.PlatyPS runs on:

  • Windows PowerShell 5.1+
  • PowerShell 7+ on Windows, Linux, and macOS

Installing Microsoft.PowerShell.PlatyPS

To begin working with Microsoft.PowerShell.PlatyPS 1.0.0 Preview1, download and install the
module from PSGallery.

Install-PSResource -Name Microsoft.PowerShell.PlatyPS -Prerelease

Documentation to get started

For the preview1 release, the cmdlet reference is available in the GitHub repository at
Microsoft.PowerShell.PlatyPS. We’re working on publishing the documentation to the Learn
platform before the next release.

For an example of how to use the new cmdlets, see Example #1 in New-MarkdownCommandHelp.

Call to action

Our goal is to make it easier for you to update and maintain PowerShell help files. We value your
feedback. Stop by our GitHub repository and let us know of any issues you find.

Jason Helmick

Sr. Product Manager, PowerShell

The post Announcing Microsoft.PowerShell.PlatyPS 1.0.0-Preview1 appeared first on PowerShell Team.

Announcing Microsoft.PowerShell.PlatyPS 1.0.0-Preview1

This post was originally published on this site

PlatyPS is the primary tool for creating the PowerShell help displayed using Get-Help.
PowerShell help files are stored in an XML format known as
Microsoft Assistance Markup Language (MAML). Prior to PlatyPS, the help files were hand
authored using complex tool chains. Markdown is widely used in the open source community,
supported by many editors including Visual Studio Code, and easier to author. PlatyPS
simplifies the process by allowing you to write the help files in Markdown and then converted to
MAML.

Announcing Microsoft.PowerShell.PlatyPS

We’re pleased to announce the release of Microsoft.PowerShell.PlatyPS 1.0.0-Preview1. With
this release, there are two versions of PlatyPS.

  • platyPS v0.14.2 is the current version of PlatyPS that’s used to create PowerShell help files
    in Markdown format.
  • Microsoft.PowerShell.PlatyPS is the new version of PlatyPS that includes several improvements:
    • Provides a more accurate description of a PowerShell cmdlet and its parameters
    • Increased performance – processes 1000s of Markdown files in seconds
    • Creates an object model of the help file that you can manipulate in memory
    • Provides cmdlets that you can chain together to perform complex operations

Our main goal for this release is to address long standing issues, add more schema driven
features, and improve validity checking along with performance. This release is a substantial
rewrite with all new cmdlets. If you have scripts that use the older version of PlatyPS, you must
rewrite them to use the new cmdlets.

In this Preview release, we focused on:

  • Re-write in C# leveraging markdig for parsing Markdown.
  • New Markdown schema that includes all elements needed for Get-Help, plus information that was
    previously unavailable.
  • The new cmdlets produce objects, supporting chaining cmdlets for complex operations.
  • Full serialization to YAML to support our publishing pipeline.
  • Automatic conversion of existing Markdown to the new object model.
  • Export of the object model to Markdown, Yaml, and MAML.
  • The module contains the following cmdlets:
    • Compare-CommandHelp
    • Export-MamlCommandHelp
    • Export-MarkdownCommandHelp
    • Export-MarkdownModuleFile
    • Export-YamlCommandHelp
    • Export-YamlModuleFile
    • Import-MamlHelp
    • Import-MarkdownCommandHelp
    • Import-MarkdownModuleFile
    • Import-YamlCommandHelp
    • Import-YamlModuleFile
    • New-CommandHelp
    • New-MarkdownCommandHelp
    • New-UpdateableHelp
    • Test-MarkdownCommandHelp
    • Update-CommandHelp
    • Update-MarkdownCommandHelp

Microsoft.PowerShell.PlatyPS runs on:

  • Windows PowerShell 5.1+
  • PowerShell 7+ on Windows, Linux, and macOS

Installing Microsoft.PowerShell.PlatyPS

To begin working with Microsoft.PowerShell.PlatyPS 1.0.0 Preview1, download and install the
module from PSGallery.

Install-PSResource -Name Microsoft.PowerShell.PlatyPS -Prerelease

Documentation to get started

For the preview1 release, the cmdlet reference is available in the GitHub repository at
Microsoft.PowerShell.PlatyPS. We’re working on publishing the documentation to the Learn
platform before the next release.

For an example of how to use the new cmdlets, see Example #1 in New-MarkdownCommandHelp.

Call to action

Our goal is to make it easier for you to update and maintain PowerShell help files. We value your
feedback. Stop by our GitHub repository and let us know of any issues you find.

Jason Helmick

Sr. Product Manager, PowerShell

The post Announcing Microsoft.PowerShell.PlatyPS 1.0.0-Preview1 appeared first on PowerShell Team.

PowerShell and OpenSSH team investments for 2024

This post was originally published on this site

PowerShell 7.5

We continue to follow our yearly release schedule for PowerShell 7 and the next version will align with .NET 9.

Pseudo-terminal support

PowerShell currently has a design limitation that prevents full capture of output from native commands by PowerShell itself.
Native commands (meaning executables you run directly) will write output to STDERR or STDOUT pipes.
However, if the output is not redirected, PowerShell will simply have the native command write directly to the console.
PowerShell can’t just always redirect the output to capture it because:

  • The order of output from STDERR and STDOUT can be non-deterministic because they are on different pipes,
    but the order written to the console has meaning to the user.
  • Native commands can use detection of redirection to determine if the command is being run interactive or non-interactively
    and behave differently such as prompting for input or defaulting to adding text decoration to the output.

To address this, we are working on an experimental feature to leverage pseudoterminals
to enable PowerShell to capture the output of native commands while still allowing the native command to seemingly write directly to the console.

This feature can then further be leveraged to:

  • Ensure complete transcription of native commands
  • Proper rendering of PowerShell progress bars in scripts that call native commands
  • Enable feedback providers to act upon native command output
    • For example, it would be possible to write a feedback provider that looked at the output of git commands
      and provided suggestions for what to do next based on the output.

Once this feature is part of PowerShell 7, there are other interesting scenarios that can be enabled in the future.

Platform support

Operating system versions and distributions are constantly evolving.
We want to ensure that a supported platform is a platform that is tested and validated by the team.

During 2024, the engineering team will focus on:

  • Making our tests reliable so we are only spending manual effort investigating real issues when test fails
  • Simplify how we add new platforms to our test matrix so new distro requests can be fulfilled more quickly
  • More actively track the lifecycle of platforms we support
  • Automate publishing the supported platforms list so that our docs are always up to date

Bug fixes and community PRs

The community has been great at opening issues and pull requests to help improve PowerShell.
For this release, we will focus on addressing issues and PRs that have been opened by the community.
This means less new features from the team, but we hope to make up for that with the community contributions
getting merged into the product. We will also be investing in the Working Group application process to expand the reach of those groups.

Please use reactions in GitHub issues and PRs to help us prioritize what to focus our limited time on.

Artifact management

Fundamentals work

Ensure PowerShell Gallery addresses the latest compliance requirements for security, accessibility, and reliability.

Include new types of repositories for PSResourceGet

We plan to introduce integration with container registries, both public and private, which will
help enterprise customers create a differentiation between trusted and untrusted content.
This change will allow for a Microsoft trusted repository while the PowerShellGallery continues as untrusted by default.
By having more options for private galleries, in addition to a Mirosoft trusted repository and the PowerShell Gallery,
this enables customers to have control over package availability suitable for their environments.

Concurrent installs

To improve performance during long-running installations, we plan to enable parallel operations
so multiple module installations can happen at the same time.
This change will be particularly impactful in modules with many dependencies, such as the Az module,
which currently can take significant time to install.

Local caching of artifact details

Currently the find-psresource cmdlet pulls information about available artifacts from service endpoints
and outputs the list locally. We believe there is opportunity to locally cache the metadata about available
artifacts to reduce network dependency and improve performance when resolving dependency relationships.
This would also help enable implementing a feedback provider to suggest how to install module that is not currently installed.
So if a user tries to run a cmdlet that is not installed, the feedback provider will suggest what module to install to get the cmdlet to work.

Intelligence in the shell

We are obvserving and being thoughtful about what it will mean to integrate the experiences
provided by large language models into shell experience.
Our current outlook is to think beyond natural language chat to deep integration of learning opportunities.

We also believe there are lots of improvements to the interactivity of PowerShell that does not require a large language model.
This includes some more subtle improvements to the interactive experience of PowerShell that would help increase productivity
and efficiency at the command line.

Configuration

Desired State Configuration (DSC) helped to enable configuration as code for Windows.
With v3, we are focusing on enabling cross-platform use, simplifying resource development, improving experience
to integrate with higher level configuration management tools, and improving the experience for end users.
Our goal is to be code complete by end of March and work towards a release candidate by middle of the year.
This is a complete rewrite of DSC and we welcome feedback during the design and development process.

Remoting

Win32_OpenSSH

We hope to continue bringing new versions of OpenSSH to the Windows Server platform. Another goal
is to reduce the complex steps required to install and manage SSH at scale, to enable
partners that create automation tools to use the same mechanism when connecting to Windows servers
as they use for Linux.

SSHDConfig

Monitoring and management of the sshd_config file at scale across platforms can be challenging.
We are working on a DSC v3 resource to enable management of sshd_config using a syntax that is
closer aligned to the command line tools used by modern cloud platforms.
Initially, we’ll be targeting auditing scenarios but we hope to enable full management of the file in the future.

Help system

platyPS is a module that enables you to write PowerShell help
documentation in Markdown and convert it to PowerShell help format.
This tool is used by Microsoft teams and the community of module authors to more easily write and maintain help documentation.
We hope to continue work in this area to address partner feedback.

Other projects

The projects above will already keep the team very busy, but we will continue to maintain other existing projects.
We appreciate the community contributions to these projects and will continue to review issues and PRs:

  • VSCode extension
  • PSScriptAnalyzer module
  • ConsoleGuiTools module
  • TextUtility module
  • PSReadLine module
  • SecretManagement module

Our other projects will continue to be serviced on an as needed basis.

Thanks to the community from Steve Lee and Michael Greene on behalf of our team!

The post PowerShell and OpenSSH team investments for 2024 appeared first on PowerShell Team.

PowerShell 7.4 General Availability

This post was originally published on this site

As we come to towards the end of 2023, we are excited to announce the general availability of PowerShell 7.4!
This release is built on .NET 8 and similarly,
is our latest Long Term Support (LTS) release supported for 3 years.

We want to thank our community and many contributors for their invaluable help identifying issues,
engaging in discussions in our repository, providing fixes and new features,
and helping us ship a high quality release!

How do I get it?

Since PowerShell 7 is supported on Windows, Linux, and macOS, there are a
variety of ways to get it.
If you installed the previous PowerShell 7 stable release (7.3) via the Windows Store or MSI (and opted into
Microsoft Update),
you will be automatically updated to 7.4 GA.

What’s new?

This release continues to focus on enhancing the shell experience and addressing
commonly reported customer and partner issues.

A detailed report of What’s New
is available in our documentation or via the WhatsNew
module.

Here are a few highlights:

PSResourceGet 1.0

This release includes PSResourceGet, which itself
was made generally available earlier this year.
PSResourceGet replaces PowerShellGet (although the two work side-by-side for legacy scripts) and where we will invest future
enhancements to the PowerShell module ecosystem.
This release focuses on a new codebase that is more maintainable and also provides better performance.
In addition, this module uses a different set of cmdlets to allow for breaking changes that provide a more intuitive user experience.

PSReadLine 2.3

This release includes the latest PSReadLine release
that contains a number of enhancements and bug fixes.

New stable features

The PowerShell Committee reviewed the experimental features we’ve had in the preview releases along with
community feedback (issues) and telemetry indicating the feature was used and not disabled and decided that
the following features were ready to be deemed stable for this release:

  • PSConstrainedAuditLogging
    This feature enables PowerShell 7 to adhere to WDAC Audit mode and log events into the Windows Event Log.
    In this mode, PowerShell runs scripts in Full Language Mode, but logs events if there would be
    a difference in behavior in System Lockdown mode.
    This makes it easier for administrators to deploy PowerShell 7 in environments that have System Lockdown mode enabled
    by understanding what scripts would need to be modified to run in that mode.
  • PSCustomTableHeaderLabelDecoration
    A common feedback from users is that with objects rendered as tables, it was not clear when a header
    label was not a property of the object.
    For example, when using Get-Process, you’ll see a column with the header CPU(s) to indicate the
    amount of cpu seconds used by that process.
    However, if you tried to access that property, you would find it’s actually called just CPU and the (s)
    was added to the header to indicate that it was in seconds.
    This new feature allows you to decorate the header label to make it clear that it is not a property of the object.
    The default decoration simply renders the header label in italics.image
  • PSWindowsNativeCommandArgPassing
    This is continuation of a feature we first added in 7.3.
    A major difference between Windows and non-Windows is how arguments are parsed particularly when quotes are involved.
    As more Open Source command-line tools are being used on Windows, we want to make sure that PowerShell
    can pass arguments to those tools in a way that works as expected.
    However, many legacy command-line tools on Windows do not handle arguments in the industry standard way.
    As such, a Windows mode for $PSNativeCommandArgumentPassing special cases some known tools to fallback to how
    it worked with Windows PowerShell while modern tools the new Standard mode.
    A Legacy mode is available for those that need to support legacy tools that do not work with the Windows mode.
  • PSNativeCommandErrorActionPreference
    This is another continuation of a feature we first added in 7.3.
    This feature allows you to treat a non-zero exit code from a native command as an ErrorRecord that would come from a cmdlet.
    This allows you to set $ErrorActionPreference to Stop and have PowerShell stop execution whether a cmdlet had an error
    or a native command had a non-zero exit code.
    This simplifies scripts that previously would have to check $LASTEXITCODE after execution of a native command or wrap it in a helper function.
  • PSNativeCommandPreserveBytePipe
    This feature allows you to preserve the byte stream when piping to or from a native command.
    Previously, all streams were converted to strings when piping to or from a native command and thus lost the original byte stream.
    This is useful for tools that expect binary input such as tar or zip.

There are still a number of experimental featues in this release pending additional user feedback before we can promote them to stable.
For example, we continue to iterate on the Feedback Provider
model as we get more feedback from users and partners who implement it.

Breaking changes

There are a few Breaking Changes
in this release that you should be aware of although we expect them to be rare.

One that could affect some users is the new -ProgressAction common parameter.
Similar to other common parameters, the new -ProgressAction parameter is automatically available to cmdlets and advanced functions.
This parameter allows you to control how progress is reported for a cmdlet or advanced function call.
Previously, you would have to set $ProgressPreference to SilentlyContinue to suppress progress and then restore it to its previous value.

What’s Next?

We will continue to focus on making PowerShell a great shell environment next year with PowerShell 7.5.
As usual, we’ll continue to address issues and bugs reported by our community and partners as well as adopt the latest .NET 9 preview releases.
Specific team investments will be discussed in a separate blog post early next year.

Thanks again to our community and partners for their continued support and feedback!

The post PowerShell 7.4 General Availability appeared first on PowerShell Team.

PowerShell 7.4 Release Candidate 1

This post was originally published on this site

PowerShell 7.4 RC-1 is now available

We’re proud to announce the availability of PowerShell 7.4.0-rc.1!
This is the first release candidate version of PowerShell 7.4 and is considered a “go-live” release
meaning that it is a supported release in production.
Now is the time to test out PowerShell 7.4 in your environment.
PowerShell 7.4 is built on top of .NET 8 and as a LTS (Long Term Support) release will be supported for 3 years.

How do I get it?

Since PowerShell 7 is supported on Windows, Linux, and macOS, there are a variety of ways to get it.
If you had installed the previous PowerShell 7.4 preview release (7.4.0-preview.6) via the Windows Store or MSI (and opted into Microsoft Update),
you will be automatically updated to 7.4.0-rc.1.

Note that after releases there are some delays in all release channels getting the latest bits.
If this version is not available on your release channel of choice expect it to be available
within 2 weeks.

What’s new in this release?

  • PSResourceGet is now GA and has reached a 1.0.0 version in this release– for more info on this module release check out this blog post
  • PSReadLine has been incremented to a new feature version 2.3.4– for more info on this module release check out this blog post
  • This release also contained a number of bug fixes– for the full list of changes please refer to the changelog

For more info on what’s changed in PowerShell 7.4, check out this page of the documentation.

Experimental Features which were made stable for 7.4

The following features were developed and released as experimental during the PowerShell 7.4
previews. Through telemetry and user feedback we determined that they should
be available as non-experimental features in the 7.4 release.

What’s next?

PowerShell 7.4 will be our next LTS release and expected to ship once an RC is determined to be ready.
We’ll have a separate blog post when the GA release of 7.4 becomes available.
We appreciate all the efforts of the community, both individuals and working group members,
and look forward to your continued feedback and contributions!

Sydney
PowerShell Team

The post PowerShell 7.4 Release Candidate 1 appeared first on PowerShell Team.

PowerShell Extension for Visual Studio Code Fall 2023 Update

This post was originally published on this site

PowerShell Extension for Visual Studio Code Fall 2023 Update

We are excited to announce that the fall update to the PowerShell Extension for Visual Studio Code
is now available on the extension marketplace.

In this update, thanks to efforts across the team, we are shipping the extension with the latest and greatest PSReadLine, v2.3.4! In addition this release contains a number of bug fixes and community contributions.

Thanks to all the many community contributors whose efforts make releases such as these possible!

Updates in the Fall Release

Note that these updates all shipped in our preview channel
for VS Code before shipping in our stable channel.

Some highlights of the fall release:

  • Stop hiding Activity Bar in ISE Mode.
  • Fix race condition with displaying PowerShell name on icon.
  • Support ~, ./ and named workspace folders in cwd.
  • Enhance additionalPowerShellExes setting.
  • Add startLocation setting for Extension Terminal. (Thanks @krishankanumuri!)
  • Upgrade bundled PSReadLine module to v2.3.4.
  • Add None to PsesLogLevel enum.
  • Fix debugging script blocks that aren’t in files.
  • Fix shell integration for PowerShell 5.1 with strict mode.

For the full list of changes please refer to our changelog.

In this release we also updated our versioning schema. The middle version number no longer corresponds to the month, but is simply incremented. Even versions are stable, and odd versions are pre-release, with the latter purposefully being versioned higher than the former in order to keep both channels (pre-release and stable) available in the Visual Studio Code marketplace.

Getting Support and Giving Feedback

While we hope the new release provides a better user experience, there are bound to be issues.
Please let us know if you run into anything.

If you encounter any issues with the PowerShell Extension in Visual Studio Code or have feature requests, the best place to get support is through our GitHub repository.

Sydney Smith
PowerShell Team

The post PowerShell Extension for Visual Studio Code Fall 2023 Update appeared first on PowerShell Team.

PSReadLine 2.3.4 GA Release

This post was originally published on this site

We are excited to announce the general availability of PSReadLine 2.3.4! After three preview
releases we are ready to release the GA version of PSReadLine 2.3.4. There are no new features in
this release from the previous preview but wanted to highlight some of the key changes since the
previous stable version, 2.2.6.

Installing PSReadLine 2.3.4

As usual, here are the instructions for installing the latest PSReadLine module. PSReadLine is
available from the PowerShell Gallery.

Use the following command to install PSReadLine using PowerShellGet v2.x:

Install-Module -Name PSReadLine -Force

If you are using the new PSResourceGet, you can use the following command:

Install-PSResource -Name PSReadLine

You may you need ot use the Force parameter to install this version side by side with any
previous preview releases installed.

Note


You must restart your PowerShell session to use the new version of
PSReadLine.

Highlights

Improvements to Predictors

Some of the biggest changes We have improved the user experience for ListView for PowerShell
Predictive IntelliSense. This includes allowing more than 10 responses, and adding a scrollable list
view. To help with navigation, we have also included a metadata line that informs users of their
position in the scroll.

Another addition are tooltips for plugin predictors. Tooltips are descriptions of prediction
results to help provide more details about what is being predicted. For example, the
Az.Tools.Predictor module provides details about what the suggested cmdlet does.

 

Image psrlga resized1

Additional Changes and fixes

Here are a few other changes and fixes that were made since the previous stable release:

  • Fix the menu completion to better handle the backspace key
  • Fix some typos in this repository (Thanks @spaette!)
  • Change default color for inline prediction to dim
  • Make tab completion show results whose ListItemText are different by case only (Thanks @dkaszews!)
  • Fix to use the default member color for members
  • Add support for upcasing, downcasing, and capitalizing word (Thanks @3N4N!)
  • Fix wrong cursor position in menu completion
  • Fix parameter dynamic help when the help content is specified in ParameterAttribute
  • Append reset VT sequence before rendering the inline prediction
  • Fix the broken doc link about PowerShellGet (Thanks @vimode!)
  • Add a sample for transforming Unicode code point to Unicode char by Alt+x
  • Improve the sensitive history scrubbing to allow retrieving token from az, gcloud, and kubectl
  • Improve the default sensitive history scrubbing to allow safe property access
  • Work around InvalidOperationException from Console API (Thanks @jazzdelightsme!)
  • Add the TerminateOrphanedConsoleApps option on Windows to kill orphaned console-attached process
    that may mess up reading from Console input (Thanks @jazzdelightsme)
  • Supports the text-object command diw in the VI edit mode (Thanks @springcomp!)

You can find the full list of changes on our PSReadLine release page, Big thank you to the
community members who have helped contributed to this release! Thank you @spaette,
@dkaszews, @vimode, @springcomp, @jazzdelightsme and @3N4N for your
contributions!

Previous Blogs

Here are links to all the previous blogs for the PSReadLine releases that highlight the feature
changes more closely.

Feedback

As per usual we love getting your feedback! Please submit bugs, feature requests, or questions to
the repository. Your feedback is always welcomed and appreciated!

Thanks! Give the new version a try and let us know what you think!

Steven Bucher and Dongbo Wang

PSReadLine Maintainers

The post PSReadLine 2.3.4 GA Release appeared first on PowerShell Team.

PowerShellGet 3.0.22-beta22 is now available

This post was originally published on this site

The latest preview of PowerShellGet is now available on the PowerShell Gallery. In this new preview version of PowerShellGet, PowerShellGet is a compatibility module that allows use of PowerShellGet 2.x (and below) cmdlet syntax with PSResourceGet functionality by making a best effort mapping between the cmdlet interfaces of both versions of the module. This module is a continuation of the CompatPowerShellGet project, but will now be shipping under the PowerShellGet module name.

How to install the module

To install from PSResourceGet (which is included in PowerShell 7.4 Preview 5)

Install-PSResource PowerShellGet -Prerelease

To install from PowerShellGet 2.2.5

Install-Module -Name PowerShellGet -AllowPrerelease -Force -AllowClobber

Note that Microsoft.PowerShell.PSResourceGet is also required to use this module,but it is not listed as a dependency as it is still in prerelease.

Expectations for the module

PowerShellGet is a compatibility module that allows use of PowerShellGet 2.x (and below) cmdlet syntax with PowerShellGet 3.0 (and newer) functionality by making a best effort mapping between the cmdlet interfaces of both versions of the module. For example, if a user has the PowerShellGet module installed and runs the command Install-Module PowerShellGet -AllowPrerelease PowerShellGet module will get auto loaded into the PowerShell Session and will map the command to PSResourceGet syntax Install-PSResource PowerShellGet -Prerelease The command will then be executed by the PowerShellGet 3.0 implementation.

This module is designed so that users will not need to immediately update their scripts in order to update to the latest version of PowerShellGet or to begin taking advantage of the performance improvements already available in PSResourceGet. We still do recommend that authors begin making the changes required to update their scripts to the new cmdlet interface if they would like to take advantage of the new features available in PSResourceGet (described in other blogs).

This compatibility module is designed so that it takes precedence over legacy versions of PowerShellGet. If you have this compatibility module installed and would not like it to be used, you can remove it from the PowerShell session using the Remove-Module command.

Please note that this flow is only possible if the user has both the PowerShellGet module installed and the Microsoft.PowerShell.PSResourceGet module installed. Once PSResourceGet is generally available it will be a dependency of future versions of PowerShellGet.

Timeline

This module is expected to ship in PowerShell 7.5. We expect this module to reach GA in the early PowerShell 7.5 timeframe to maximize opportunity for quality feedback. We do not expect to introduce new features to this module, all new features will be designed in Microsoft.PowerShell.PSResourceGet. Some new features may work in this module as a side effect.

Going forward we do not plan to do any future releases of the CompatPowerShellGet module, all releases will be under the PowerShellGet name.

How to give feedback or get support

This version of the module is still in preview, meaning that bugs are expected. We really appreciate any feedback on the module. If you have any bug reports, questions, or suggestions for features please open up a bug report in the PowerShellGet repository.

Sydney

PowerShell team

The post PowerShellGet 3.0.22-beta22 is now available appeared first on PowerShell Team.

Announcing PowerShell Crescendo 1.1.0 General Availability (GA)

This post was originally published on this site

We’re pleased to announce the availability of PowerShell Crescendo 1.1.0. Crescendo is a
framework to rapidly develop PowerShell cmdlets for common command line tools, regardless of
platform.

The release is now available for download on the
PowerShell Gallery.

Making Cmdlets with PowerShell Crescendo

Crescendo is a development accelerator enabling you to rapidly build PowerShell cmdlets that
leverage existing command-line tools. Crescendo amplifies the command-line experience of the
original tool to include object output for the PowerShell pipeline, privilege elevation, and
integrated help information. A Crescendo module replaces cumbersome command-line tools with
PowerShell cmdlets that are easier to use in automation and packaged to share with team members.

The 1.1 GA release includes the following features and benefits:

  • Updated schema to support additional features for this release.
  • Prevent overwrite of the module manifest and allow for module manifest adaptations.
  • Ability to bypass the output handler when the output of the native command doesn’t need to be
    transformed.
  • Improved error stream and error handling with Pop-CrescendoNativeError.
  • Added ability for parameter values to be translated via key/value pair with ArgumentTransform
    and ArgumentTransformType.
  • Improved code generation to reduce PSScriptAnalyzer output.
  • Improved error handling by setting $PSNativeCommandUseErrorActionPreference = $false.
  • Improved module metadata and added current Crescendo version to the module.

For more information about these changes, see What’s new in Crescendo 1.1.

Installing Crescendo

Requirements:

  • Microsoft.PowerShell.Crescendo requires PowerShell 7.2 or higher
  • Crescendo generated cmdlets require PowerShell 5.1 or higher

To install Microsoft.PowerShell.Crescendo:

Install-Module -Name Microsoft.PowerShell.Crescendo

To install Microsoft.PowerShell.Crescendo using the new PSResourceGet:

Install-PSResource -Name Microsoft.PowerShell.Crescendo

More information

To get started using Crescendo, check out the documentation.

Future plans

We value your ideas and feedback and hope you give Crescendo a try. Stop by our
GitHub repository and let us know of any issues you find or features you would like added.

The post Announcing PowerShell Crescendo 1.1.0 General Availability (GA) appeared first on PowerShell Team.