* added checks to see if pwsh will install
* Upload download folder to artifacts
* Build.ArtifactStagingDirectory
* added verbose
* download folder copy-item -recurse
* Filter copy-item to exclude msix and nupkg
* fixed error with piping objects along
* adding pwsh to path, added checks to see if it was installed
* removed error with write Verbose
* Write-Host ##vstsCommandString
* vsts command string
* trying again
* added path in a new way
* checking if the folder contain pwsh.exe
* added \
* checking the next step with out pwsh
* checking the next step with out pwsh
* trying ##
* ##vso[task.prependpath]$env:PATH
* fixed variable $
* fixed path
* fixed string path issue, and env:Path
* trying pwsh: true
* added pwsh true, refactored publish release draft step to original
* fixed CL file location
* refactoring to original format
* made approval jobs a separate stage and template
* copilot auto fixed wrong approvalJob
* removed job dependency because stage dependency exists
* copying packages in separate folders
* changed package path, turned on DBP on nuget
* removed nugetcommand
* Production, turn on dependencies
* Added Deploy Box Product Pathway to Github Release
and Nuget Release Pipelines
* Templatized pwsh install and repo checkout, clean ups
* Fix seed max value for Container Linux CI (#24510)
* Bump .NET to 9.0.100-rc.2.24474.11 (#24509)
* Update PSResourceGet to v1.1.0-RC2 (#24512)
* Update PSResourceGet to v1.1.0-RC2
* Fix windows packaging
* Update windows bom
* Update version string to be lowercase
---------
Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
* Update changelog for v7.4.6 release (#24496)
* Add a way to use only NuGet feed sources (#24528)
* Update build.psm1
* update default feeds
* fix issue with cgmanifest having duplicate existing entries
* update pattern
* Revert "Update package references (#24414)" (#24532)
This reverts commit 01ae632636.
* [master] Update branch for release (#24534)
* Update package references
* Update cgmanifest
* Update IsolatedModule.Tests.ps1
---------
Co-authored-by: Travis Plunk <travis.plunk@microsoft.com>
* Bump github/codeql-action from 3.26.10 to 3.27.0 (#24483)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.10 to 3.27.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e2b3eafc8d227b0241d48be5f425d47c2d750a13...662472033e021d55d94146f66f6058822b0b39fd)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump actions/upload-artifact from 4.4.0 to 4.4.3 (#24410)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/50769540e7f4bd5e21e526ee35c689e35e0d6874...b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump agrc/reminder-action from 1.0.14 to 1.0.15 (#24384)
Bumps [agrc/reminder-action](https://github.com/agrc/reminder-action) from 1.0.14 to 1.0.15.
- [Release notes](https://github.com/agrc/reminder-action/releases)
- [Changelog](https://github.com/agrc/reminder-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/agrc/reminder-action/compare/b5cc06580b6a711baddf6a947131f85a422fa263...45201302ec0071cce809a483111bda4cdc7d10f2)
---
updated-dependencies:
- dependency-name: agrc/reminder-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump actions/checkout from 4.2.1 to 4.2.2 (#24488)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871...11bd71901bbe5b1630ceea73d27597364c9af683)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump actions/dependency-review-action from 4.3.4 to 4.4.0 (#24503)
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.3.4 to 4.4.0.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/5a2ce3f5b92ee19cbb1541a4984c76d921601d7c...4081bf99e2866ebe428fc0477b69eb4fcda7220a)
---
updated-dependencies:
- dependency-name: actions/dependency-review-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Support PSObject wrapped values in ArgumentToEncodingTransformationAttribute (#24555)
* Bump .NET 9 and dependencies (#24573)
* added stage uploading cl and tool to artifacts, removed ob_release_env variable on first stage
* removed publish artifact
* removed variables like tsa config template
* updated image windows container image
* using REPOROOT, removed pwsh checkout, -recurse tools
* added turning off tsa config, credscan, and codesignValidation
* removed cl and tool stage
* combined approval stages
* removed unnecessary variable srcPath
* commented out package pipeline changes
* added package gathering in the release template
* added variable template
* fixed dependsonjob
* added depnedency, added filtering file by ext
* removed dependency
* .gz
* added depends on
* added verbose, fixed checkout
* fixed dependencies
* fixed dependencies 2
* fixed dependcies 3
* enabled sbom
* disabled signing setup
* fixed checkout
* single qute problem
* checking env build source
* testing checkout
* using old pipeline
* checkout
* branch name
* refs/heads
* fixed back to original intention
* separating out ev2
* added ob_release to test
* removed release and ob for first stage
* correct and to And
* removed ob_outputdirectory
* removed ob_outputdirectory
* adding ob_outputDirectory
* added Test_
* added ev2 folders
* approval service env to Test
* removed approval service
* changed inputs
* removed invalid inputs
* modified inputs
* moved jsons to correct location
* copied verbatim from eng hub
* removed dependency to blob public
* added copy
* added docker deployment test service connection
* added mscodehubPAT variable group
* signing profile to internal azure service
* capture workspace
* comment out internal tools signing for now
* move EV2Specs folder and fix path reference to it
* test path of Run.ps1 and change files to sign pattern
* refer to PowerShell files with project name in path as multiple repo's were checked out
* comment out signing for now
* enable TiP signing
* comment out unused tasks for now
* add in prep steps
* use higher python version available
* use repoRoot in path
* add verbose and error logging to pip3 download command
* fix typo in pip3 command
* add other pip3 command
* use full path of pip3 executable
* check exe path
* fix pip3 command syntax and dir location
* try bash step
* Remove bash step
* change artifactFeed name
* set artifactFeedName to project/feed per docs
* Remove the service connection
* add pip verbose command
* use correct feed name
* remove the service connection and add verbose logging
* get version info only
* fix typo in Push-Location
* use pip instead of pip3
* upgrade pip
* add pip download command
* add code to download needed artifacts and create .tar.gz uploaded to ob_outputdirectory
* add verbose logging
* add one more folder
* add -ItemType Directory
* add variable group reference
* remove var group and var for now
* fix path to mapping.json
* add credscan suppression file var
* copy over EV2Specs folder with fixed path
* specify SourceFolder for CopyFiles task
* put packages.tar.gz under ServiceGroupRoot/Parameters
* create Parameters folder once and refer to pmc MI var
* refer to variable group
* update EV2 json files and test pmc tool in run script
* add tsaconfig file var and fix typo
* add buildVer.txt file
* populate version
* have EV2 task be seperated out into its own stage
* update service connection name in EV2 test task
* see which versions are available
* add -Recurse parameter
* specify version as 3
* test expected path
* comment out python package related code for now
* try recommended version
* try checking onebranch container image path for python
* fix logging statement
* add back rest of python related tasks to see if OB installed python will work
* get repolist.json
* debug why file doesn't exist
* fix path
* fix path in Run.ps1
* update container version
* invoke crane tool which should come installed like python
* refer to python exe
* just use pip
* upgrade pip
* use linux pool image when installing pip package
* use python3 on linux
* revert use of python 3
* comment out python code for now
* mitigate file watcher issue
* set linuxEsrpSigning: true
* try moving set up signing task to right before signing
* remove other ob_restore_phase
* keep using windows image, but specify platform for pip download
* add binaries only flag needed by pip
* try latest manylinux platform
* use linux pool image for job
* use manylinux platform from run that only failed at signing
* use linux pool image for job again with ob_restore_phase
* use python3 on linux
* add ob_restore_phase: true to more tasks
* move the file tasks up
* move the file tasks up again
* add ob_restore_phase: true to all tasks
* move template call before checkout step
* add ob_restore_phase based parameter to template that sets tag and container name
* remove ob_restore_phase from initial checkout
* check pipeline workspace
* more verbose statements for debugging
* more verbose statements for debugging
* move Ev2Specs folder out of .pipelines as ob_restore_phase doesn't copy folders beggining with period
* change casing
* move EV2 files back to .pipelines folder
* update location of rg
* remove which command
* see accessible pmc repos
* fix var names
* limit pmc repo list and add Get-PackageInfo() implementation
* remove repo list command that was writing and fix typo
* add New-RepoPackageObject() implementation
* fix verbose statement and add commented out implementation of Publish-PackageFromBlob()
* add extraction of packages from packages.tar.gz
* change release tag version
* add Skip publish CI param
* add Skip publish as template param as well
* fix boolean written to pmcMetadata.json
* correctly convert boolean written to pmcMetadata.json
* test the function
* add final publishing code in
* fix typo
* trim 'v' off release version
* fix the testing version
* clean up code into methods
* remove call to dead method
* add final publishing code in
* add return
* add missing param
* combine code that creates package objects into one method
* remove unused param
* clean up unused vars
* clean up unused code
* use actual tag
* update conflicting files
* remove code changes to uploadToAzure.yml
* use official template
* use correct official template
* remove generic guardian suppression and tip signing enabling
* temporarily use non official template and fix how pipeline env var is called
* fix indentation
* skip calling pmc code for now
* log version
* log version again
* refer to releaseTag output var correctly
* clean up
* use official template
* fix signing errors- set linuxEsrpSigning: true
* linuxEsrpSigning is a featureFlag
* remove reference to repoList.json which is no longer used and use created vars
* clean up code
* clean up code
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Justin Chung <chungjustin@microsoft.com>
Co-authored-by: Justin Chung <t-juchung@microsoft.com>
Co-authored-by: Justin Chung <124807742+jshigetomi@users.noreply.github.com>
Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
Co-authored-by: alerickson <25858831+alerickson@users.noreply.github.com>
Co-authored-by: Patrick Meinecke <SeeminglyScience@users.noreply.github.com>
Co-authored-by: Travis Plunk <travis.plunk@microsoft.com>
Co-authored-by: PowerShell Team Bot <69177312+pwshBot@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jordan Borean <jborean93@gmail.com>
PowerShell
Welcome to the PowerShell GitHub Community! PowerShell 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 7+
Although this repository started as a fork of the Windows PowerShell codebase, changes made in this repository are not ported back to Windows PowerShell 5.1. This also means that issues tracked here are only for PowerShell 7.x and higher. Windows PowerShell specific issues should be reported with the Feedback Hub app, by choosing "Apps > PowerShell" in the category.
New to PowerShell?
If you are new to PowerShell and want to learn more, we recommend reviewing the getting started documentation.
Get PowerShell
PowerShell is supported on Windows, macOS, and a variety of Linux platforms. For more information, see Installing PowerShell.
Upgrading PowerShell
For best results when upgrading, you should use the same install method you used when you first installed PowerShell. The update method is different for each platform and install method.
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.
Discussions
GitHub Discussions is a feature to enable free and open discussions within the community for topics that are not related to code, unlike issues.
This is an experiment we are trying in our repositories, to see if it helps move discussions out of issues so that issues remain actionable by the team or members of the community. There should be no expectation that PowerShell team members are regular participants in these discussions. Individual PowerShell team members may choose to participate in discussions, but the expectation is that community members help drive discussions so that team members can focus on issues.
Create or join a discussion.
Chat
Want to chat with other members of the PowerShell community?
There are dozens of topic-specific channels on our community-driven PowerShell Virtual User Group, which you can join on:
Building the Repository
| Linux | Windows | macOS |
|---|---|---|
| Instructions | Instructions | Instructions |
If you have any problems building, consult the developer FAQ.
Build status of nightly builds
| Azure CI (Windows) | Azure CI (Linux) | Azure CI (macOS) | CodeFactor Grade |
|---|---|---|---|
Downloading the Source Code
You can clone the repository:
git clone https://github.com/PowerShell/PowerShell.git
For more information, see working with the PowerShell repository.
Developing and Contributing
Please look into the Contribution Guide to know how to develop and contribute. If you are developing .NET Core C# applications targeting PowerShell Core, 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, see the Support Section.
Legal and Licensing
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 Microsoft Artifact Registry.
Telemetry
Please visit our about_Telemetry topic to read details about telemetry gathered by PowerShell.
Governance
The governance policy for the PowerShell project is described the PowerShell Governance document.
Code of Conduct
Please see our Code of Conduct before participating in this project.
Security Policy
For any security issues, please see our Security Policy.