Vincent Damewood 04a1fc3b74 Allow Web Cmdlets to Ignore HTTP Error Statuses (#10466)
* Add -SkipHttpErrorCheck to web request cmdlets

The -SkipHttpErrorCheck flag causes web request cmdlets
(Invoke-WebRequest and Invoke-RestMethod) to ignore HTTP statuses that
are error statuses and treat them as successful requests. This allows
users to handle the responses using their own error handler and gives
them access to the full, unmodified response body and headers.

* Add -ResponseStatusVariable to Invoke-RestMethod

This allows the user to specify a variable to set to the integer value
of the respons's status code, Analogous to using
-ResponseHeadersVariable to retrieve the headers of the response. This
can be used to distinguish error messages from success messages when
used with -SkipHttpErrorCheck.

* Fix coding-style error

The summary for the SkipHttpErrorCheck property didn't conform
to style guidelines. This changes the summary to start with
"Gets or sets".

* Add tests for -SkipHttpErrorCheck

This flag supresses terminating errors on web cmdlets.
The tests are written to check that it properly
supressed the errors.

* Add test for -StatusCodeVariable

Th -StatusCodeVariable parameter specifies an output
variable for the status code with Invoke-RestMethod.
This test makes sure it functions properly.

* Fix typos and style for -SkipHttpErrorCheck tests

Variables had different cases from each other and some parameter
names were lower case.

* Fix typos and style for -StatusCodeVariable test

Variables had different cases from each other and some parameter
names were lower case.

* Add failure tests when missing -SkipHttpErrorCheck

These tests ensure that Web Cmdlets fail when -SkipHttpErrorCheck
is missing.

* Clean up tests for -SkipHttpErrorCheck

Per discussion on the pull requests. This commit fixes up
style problems with the tests for -SkipHttpErrorCheck.

* Add more status tests for -StatusCodeVariable

Previously, the -StatusCodeVariable flag in Invoke-RestMethod
only had tests for 200 status. This commit adds tests for 404
and 500 statuses and removes -SkipHttpErrorCheck from the 200
check.

* Fix response body in -StatusCodeVariable test

The test was copy/pastes from the 200 status test. The body
indicated success. This commit fixes that so it is also an
error indicator.
2019-11-07 12:38:24 -08:00
2018-08-17 22:06:51 -07:00
2018-11-01 11:55:53 +05:00
2019-01-10 15:34:26 -08:00

logo PowerShell

Welcome to the PowerShell GitHub Community! PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets.

Windows PowerShell vs. PowerShell Core

Although this repository started as a fork of the Windows PowerShell code base, changes made in this repository do not make their way back to Windows PowerShell 5.1 automatically. This also means that issues tracked here are only for PowerShell Core 6. Windows PowerShell specific issues should be opened on UserVoice.

New to PowerShell?

If you are new to PowerShell and would like to learn more, we recommend reviewing the getting started documentation.

Get PowerShell

You can download and install a PowerShell package for any of the following platforms.

Supported Platform Downloads (stable) Downloads (preview) How to Install
Windows (x64) .msi .msi Instructions
Windows (x86) .msi .msi Instructions
Ubuntu 18.04 .deb .deb Instructions
Ubuntu 16.04 .deb .deb Instructions
Debian 9 .deb .deb Instructions
CentOS 7 .rpm .rpm Instructions
Red Hat Enterprise Linux 7 .rpm .rpm Instructions
openSUSE 42.3 .rpm .rpm Instructions
Fedora 28 .rpm .rpm Instructions
macOS 10.12+ .pkg .pkg Instructions
Docker Instructions

You can download and install a PowerShell package for any of the following platforms, which are supported by the community.

Platform Downloads (stable) Downloads (preview) How to Install
Arch Linux Instructions
Kali Linux .deb .deb Instructions
Many Linux distributions Snapcraft Snapcraft

You can also download the PowerShell binary archives for Windows, macOS and Linux.

Platform Downloads (stable) Downloads (preview) How to Install
Windows 32-bit/64-bit 32-bit/64-bit Instructions
macOS 64-bit 64-bit Instructions
Linux 64-bit 64-bit Instructions
Windows (arm) Experimental 32-bit/64-bit 32-bit/64-bit Instructions
Raspbian (Stretch) Experimental 32-bit/64-bit 32-bit/64-bit Instructions

To install a specific version, visit releases.

Community Dashboard

Dashboard with visualizations for community contributions and project status using PowerShell, Azure, and PowerBI.

For more information on how and why we built this dashboard, check out this blog post.

Chat Room

Want to chat with other members of the PowerShell community?

We have a Gitter Room which you can join below.

Join the chat

There is also the community driven PowerShell Slack Team which you can sign up for at Slack.

Add-ons and libraries

Awesome PowerShell has a great curated list of add-ons and resources.

Building the Repository

Linux Windows macOS
Instructions Instructions Instructions

If you have any problems building, please consult the developer FAQ.

Build status of nightly builds

Azure CI (Windows) Azure CI (Linux) Azure CI (macOS) Code Coverage Status CodeFactor Grade
windows-nightly-image linux-nightly-image macOS-nightly-image cc-image cf-image

Downloading the Source Code

You can just clone the repository:

git clone https://github.com/PowerShell/PowerShell.git

See working with the PowerShell repository for more information.

Developing and Contributing

Please see the Contribution Guide for how to develop and contribute. If you are developing .NET Core C# applications targeting PowerShell Core, please check out our FAQ to learn more about the PowerShell SDK NuGet package.

Also, make sure to check out our PowerShell-RFC repository for request-for-comments (RFC) documents to submit and give comments on proposed and future designs.

Support

For support, please see the Support Section.

PowerShell is licensed under the MIT license.

Windows Docker Files and Images

License: By requesting and using the Container OS Image for Windows containers, you acknowledge, understand, and consent to the Supplemental License Terms available on Docker Hub:

Telemetry

By default, PowerShell collects the OS description and the version of PowerShell (equivalent to $PSVersionTable.OS and $PSVersionTable.GitCommitId) using Application Insights. To opt-out of sending telemetry, create an environment variable called POWERSHELL_TELEMETRY_OPTOUT set to a value of 1 before starting PowerShell from the installed location. The telemetry we collect falls under the Microsoft Privacy Statement.

Governance

Governance policy for PowerShell project is described here.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

S
Description
Automated archival mirror of github.com/PowerShell/PowerShell
Readme
221 MiB
Languages
C# 83%
PowerShell 16.1%
Roff 0.6%
Shell 0.2%