From caaf59c85c85fc2b266688445793cbc4c5924f08 Mon Sep 17 00:00:00 2001 From: jdhitsolutions Date: Wed, 13 Jan 2021 12:12:35 -0500 Subject: [PATCH] v1.9.0 --- Changelog.md | 8 + Docs/Get-PSReleaseCurrent.md | 15 +- Docs/Get-PSReleaseSummary.md | 149 +++--------- Docs/Install-PSCore.md | 166 ------------- Docs/Install-PSPreview.md | 22 +- Docs/Install-PowerShell.md | 26 ++- LICENSE.txt | 2 +- PSReleaseTools.psd1 | Bin 7936 -> 7766 bytes README.md | 91 ++++---- en-US/PSReleaseTools-help.xml | 423 ++++++---------------------------- functions/private.ps1 | 21 +- functions/public.ps1 | 16 +- images/PowerShell_avatar.bmp | Bin 0 -> 90054 bytes images/PowerShell_avatar.png | Bin 0 -> 15462 bytes images/Powershell_avatar.ico | Bin 125384 -> 0 bytes 15 files changed, 236 insertions(+), 703 deletions(-) delete mode 100644 Docs/Install-PSCore.md create mode 100644 images/PowerShell_avatar.bmp create mode 100644 images/PowerShell_avatar.png delete mode 100644 images/Powershell_avatar.ico diff --git a/Changelog.md b/Changelog.md index 2f0e68d..78e5839 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,13 @@ # Change Log for PSReleaseTools +## V1.9.0 + ++ Added `-EnableRunContext` parameter to `Install-PowerShell`, `Install-PSPreview`, and the internal `installMSI` functions to reflect a new MSI installation option. ++ Modified `installMSI` to create a log file at `$env:temp\PS7Install.log`. ++ Help updates. ++ Updated `README.md`. ++ Updated license year. + ## v1.8.0 + Added commands (`Get-PSIssue`, `Get-PSIssueLabel`,`Open-PSIssue`) to view and search issues from the PowerShell GitHub repository. diff --git a/Docs/Get-PSReleaseCurrent.md b/Docs/Get-PSReleaseCurrent.md index f00b9ed..200aeba 100644 --- a/Docs/Get-PSReleaseCurrent.md +++ b/Docs/Get-PSReleaseCurrent.md @@ -26,12 +26,11 @@ This command will query the GitHub repository for the latest stable PowerShell r ### Example 1 ```powershell -PS C:\> Get-PSReleaseCurrent +PS C:\> PS C:\> Get-PSReleaseCurrent - -Name Version Released LocalVersion ----- ------- -------- ------------ -v7.0.0 Release of PowerShell v7.0.0 3/4/2020 5:00:08 PM 7.0.0 +Name Version Released LocalVersion +---- ------- -------- ------------ +v7.1.0 Release of PowerShell v7.1.0 11/11/2020 11:23:08 AM 5.1.19041.610 ``` This gets the current release from a Windows platform. @@ -41,9 +40,9 @@ This gets the current release from a Windows platform. ```powershell PS /home/me> Get-PSReleaseCurrent -preview -Name Version Released LocalVersion ----- ------- -------- ------------ -v7.0.0-rc.2 Release of PowerShell v7.0.0-rc.2 1/16/20 11:35:38 PM 6.2.4 +Name Version Released LocalVersion +---- ------- -------- ------------ +v7.2.0-preview.2 Release of PowerShell v7.2.0-preview.2 12/15/2020 21:31:39 7.1.0 ``` This gets the current preview release from an Ubuntu platform. diff --git a/Docs/Get-PSReleaseSummary.md b/Docs/Get-PSReleaseSummary.md index 30acbe4..7f38927 100644 --- a/Docs/Get-PSReleaseSummary.md +++ b/Docs/Get-PSReleaseSummary.md @@ -35,7 +35,7 @@ Get-PSReleaseSummary [-Preview] [-Online] [] This command will query the PowerShell GitHub repository for the latest stable release information using the GitHub APIs. Use -Preview to get information about the latest preview build. You do not need to have a GitHub account in order to use this command, although you may still reach an API limit if you run this command repeatedly in a short time frame. -The default output is a text report but you have the the option to create a markdown version. +The default output is a text report but you have the option to create a markdown version. Use the -Online parameter to open the GitHub release page in your browser. This parameter only works in Windows. @@ -44,142 +44,47 @@ Use the -Online parameter to open the GitHub release page in your browser. This ### EXAMPLE 1 ```powershell -PS C:\> Get-PSReleaseSummary - +PS C:\> PS C:\> Get-PSReleaseSummary ----------------------------------------------------------- -v7.0.0 Release of PowerShell -Published: 03/04/2020 17:00:08 +v7.1.0 Release of PowerShell +Published: 11/11/2020 11:23:08 ----------------------------------------------------------- -## 7.0.0 - 2020-03-04 +## [7.1.0] - 2020-11-11 + +- [Diff from 7.1.0-rc.2][7.1.0] +- [Diff from 7.0.0][7.1.0-full] -- [Diff from 7.0.0-rc.3][7.0.0] -- [Diff from 6.2.0][7.0.0-full] +### Engine Updates and Fixes -**Note:** The snap package is segfault after launching on Ubuntu 16.04. We are investigating with the .NET team. The workaround for not is to use the `DEB` or `tar.gz` package. +- Fix a logic bug in `MapSecurityZone` (#13921) (Thanks @iSazonov!) ### General Cmdlet Updates and Fixes -- Enable `Ctrl+C` to work for global tool (#11959) -- Fix `ConciseView` to not show the line information within the error messages (#11952) +- Update `pwsh -?` output to match docs (#13748) + +### Tests + +- `markdownlint` security updates (#13730) ### Build and Packaging Improvements -- Publish PowerShell into the Windows engineering system package format (#11960) -- Bump .NET core framework to `3.1.2` (#11963) -- Ensure the man page `gzip` has the correct name for LTS release (#11956) -- Bump `Microsoft.ApplicationInsights` from `2.13.0` to `2.13.1` (#11925) - -### SHA256 Hashes of the release artifacts - -- powershell_7.0.0-1.debian.10_amd64.deb - - 58B2F022B909C8BC96B288384024B58EF6CF8D2724F1C7425C7745E0AC84A8C5 -- powershell_7.0.0-1.debian.11_amd64.deb - - 3ED567A3107DC8319E8BAB9C9A01A00B3344BD2DB6F92BF0ECE4E49FA77BD87D -- powershell_7.0.0-1.debian.9_amd64.deb - - 53D3B358A0B98B674E329C7D43860F747AAF77747AEAD8F667B8594D21C8CE53 -- powershell_7.0.0-1.ubuntu.16.04_amd64.deb - - 245A55BBFF2BEA43F501EEB511C317DB62774298F5310EF3357307899FF3B091 -- powershell_7.0.0-1.ubuntu.18.04_amd64.deb - - A28C95B376E6DD7EF0BF523B6BD329485948A53E27FD2E8B3DDED6981471214C -- powershell-7.0.0-1.centos.8.x86_64.rpm - - 3F5EEEF95F24B1804034B29036F6C3D7951F7B995E637713DEFF3088EED7BF65 -- powershell-7.0.0-1.rhel.7.x86_64.rpm - - 09EB0F49F91FC5DA569DE9F8FCADA36CDF79846A1AEA0679D357D316453B2838 -- powershell-7.0.0-linux-alpine-x64.tar.gz - - 5D04337A8B18494DF242F68DD4C960EFBE491AE127901CA15007993F1983CCDF -- powershell-7.0.0-linux-arm32.tar.gz - - CBB6ACBB40F73CCF83920F4729DC86EBF3566BB9A01CA68E0698D33FDBE6D7B0 -- powershell-7.0.0-linux-arm64.tar.gz - - C361C1440012A59DAC02B3B36744B728AE2409356876C0845C5CA2DAFA8E6153 -- powershell-7.0.0-linux-x64.tar.gz - - 3E80A662A5DEFB283185961330C4A44D5D5179F9EB2A2EE74AC7E1D3CAF16B2C -- powershell-7.0.0-linux-x64-fxdependent.tar.gz - - 1B232E7704BB128534FED670D17617E1E34558398B4E6227A5E5F28FDA003E95 -- powershell-7.0.0-osx-x64.tar.gz - - 7EA2A539CB33F3C1C62280EEA1D3B55CBD84C86676437A390E81C0AE374483E6 -- PowerShell-7.0.0-win-arm32.zip - - BA260EBA7AC2FFBD7E63570738AAC92440D434DD84ACAA1E70C58649461718D4 -- PowerShell-7.0.0-win-arm64.zip - - 2FD04091F7AACF2BBBA470EDC92A28034CD6F54999F7A880404AD17954476ABF -- PowerShell-7.0.0-win-fxdependent.zip - - 8A96806066C0BC2AFED53C1A5B5167BCC6D75E9600EC1D69CDEF242B3920F5E3 -- PowerShell-7.0.0-win-fxdependentWinDesktop.zip - - 3BF3898D97610F1ACDFBA819399A876DCE2B5788184C7FF3BE017522E71B47EF -- PowerShell-7.0.0-win-x64.msi - - 876F4A64012A1FB024DCCEA696DB00C5CD1A37C8DC9DFA2431C58CDF9F82950B -- PowerShell-7.0.0-win-x64.zip - - CDA2CA2227FBEC2C753AA760859667B02007D14646A831BD908B8F749CBCC687 -- PowerShell-7.0.0-win-x86.msi - - C0E8CBE16EDA134385D499881E6E0F2784BCB4D26CBE42ED5B81E29EEC37B3DA -- PowerShell-7.0.0-win-x86.zip - - F33E852F7721E61FF3BAE9FC04F1DFA48CE7B10CD59D649126D5BA9BFAD9AECD -- powershell-lts_7.0.0-1.debian.10_amd64.deb - - 54CBB3915CC01B215AAB0E260C73131DDDE410CFC50440BC8C4D2E336992882A -- powershell-lts_7.0.0-1.debian.11_amd64.deb - - 974BB634616B4FD1B4A9E024580C1936410D1C267E23BFD34164F1853428BFBF -- powershell-lts_7.0.0-1.debian.9_amd64.deb - - F49DDA694DA791CEE0F0B456FAB0A2818079102ED9D51B89E1F1879654BA62E1 -- powershell-lts_7.0.0-1.ubuntu.16.04_amd64.deb - - 54B39CCB64D84DEF03D2C216757D53B233B3D5F74636675C7DFFEEAA72E8B1CA -- powershell-lts_7.0.0-1.ubuntu.18.04_amd64.deb - - AB4B7E104CAD9DC7D43AD18F335EA14919CF4A930B55348D6601C99A12D9A4FC -- powershell-lts-7.0.0-1.centos.8.x86_64.rpm - - 1CD5DA84E398A216B2D37F7B1361601B0EF4D79D33A1219C70BB8C083D9CD191 -- powershell-lts-7.0.0-1.rhel.7.x86_64.rpm - - EF6D8728FDE0226A715B85FB199352D9EDE2ECC88CFF890846713CCA34099D82 -- powershell-lts-7.0.0-osx-x64.pkg - - 28321A96A8630E3BFD9E8858645D5D35B3E9D7918A63F557924E97414D303C76 -- powershell-7.0.0-osx-x64.pkg - - 80F75903E9F33B407A7F15C087A2C2B12A93DC153469E091D18048D01080085E - -[7.0.0]: https://github.com/PowerShell/PowerShell/compare/v7.0.0-rc.3...v7.0.0 -[7.0.0-full]: https://github.com/PowerShell/PowerShell/compare/v6.2.0...v7.0.0 - - - -------------- -| Downloads | -------------- - -Filename Updated SizeMB --------- ------- ------ -powershell-7.0.0-1.centos.8.x86_64.rpm 3/3/2020 10:55:10 PM 55 -powershell-7.0.0-1.rhel.7.x86_64.rpm 3/3/2020 10:55:13 PM 55 -powershell-7.0.0-linux-alpine-x64.tar.gz 3/3/2020 10:55:14 PM 45 -powershell-7.0.0-linux-arm32.tar.gz 3/3/2020 10:55:18 PM 46 -powershell-7.0.0-linux-arm64.tar.gz 3/3/2020 10:55:20 PM 44 -powershell-7.0.0-linux-x64-fxdependent.tar.gz 3/3/2020 10:55:24 PM 19 -powershell-7.0.0-linux-x64.tar.gz 3/3/2020 10:55:22 PM 58 -powershell-7.0.0-osx-x64.pkg 3/4/2020 6:13:08 PM 55 -powershell-7.0.0-osx-x64.tar.gz 3/3/2020 10:55:25 PM 55 -PowerShell-7.0.0-win-arm32.zip 3/3/2020 10:55:29 PM 49 -PowerShell-7.0.0-win-arm64.zip 3/3/2020 10:55:35 PM 49 -PowerShell-7.0.0-win-fxdependent.zip 3/3/2020 10:55:36 PM 21 -PowerShell-7.0.0-win-fxdependentWinDesktop.zip 3/3/2020 10:55:37 PM 20 -PowerShell-7.0.0-win-x64.msi 3/3/2020 10:55:39 PM 87 -PowerShell-7.0.0-win-x64.zip 3/3/2020 10:55:53 PM 89 -PowerShell-7.0.0-win-x86.msi 3/3/2020 10:56:01 PM 79 -PowerShell-7.0.0-win-x86.zip 3/3/2020 10:56:17 PM 80 -powershell-lts-7.0.0-1.centos.8.x86_64.rpm 3/3/2020 10:56:50 PM 58 -powershell-lts-7.0.0-1.rhel.7.x86_64.rpm 3/3/2020 10:56:52 PM 58 -powershell-lts-7.0.0-osx-x64.pkg 3/3/2020 10:56:54 PM 55 -powershell-lts_7.0.0-1.debian.10_amd64.deb 3/3/2020 10:56:21 PM 58 -powershell-lts_7.0.0-1.debian.11_amd64.deb 3/3/2020 10:56:25 PM 58 -powershell-lts_7.0.0-1.debian.9_amd64.deb 3/3/2020 10:56:27 PM 58 -powershell-lts_7.0.0-1.ubuntu.16.04_amd64.deb 3/3/2020 10:56:36 PM 58 -powershell-lts_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:56:42 PM 58 -powershell_7.0.0-1.debian.10_amd64.deb 3/3/2020 10:54:44 PM 56 -powershell_7.0.0-1.debian.11_amd64.deb 3/3/2020 10:54:51 PM 56 -powershell_7.0.0-1.debian.9_amd64.deb 3/3/2020 10:54:57 PM 56 -powershell_7.0.0-1.ubuntu.16.04_amd64.deb 3/3/2020 10:55:02 PM 56 -powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 +
+ +Bump .NET to version 5.0.100-rtm.20526.5 (#13920) + +
    +
  • Fixes to release pipeline for GA release (Internal 13410)
  • +
  • Change PkgES Lab to unblock build (Internal 13376)
  • +
  • Add validation and dependencies for Ubuntu 20.04 distribution to packaging script (#13993)
  • +
  • Add .NET install workaround for RTM (#13991)
  • +... ``` ### EXAMPLE 2 ```powershell -PS /home/jeff> get-psreleasesummary -AsMarkdown -preview | show-markdown +PS /home/jeff> get-psreleasesummary -AsMarkdown -preview | Show-Markdown ``` Get the latest preview release summary as markdown and use the Show-Markdown command in PowerShell Core to render the markdown in the console. Note that Show-Markdown may not render tables correctly. @@ -220,7 +125,7 @@ Accept wildcard characters: False ### -Online -Open GitHub release page in your browser. This parameter only works on Windows systems. +Open the GitHub release page in your browser. This parameter only works on Windows systems. ```yaml Type: SwitchParameter diff --git a/Docs/Install-PSCore.md b/Docs/Install-PSCore.md deleted file mode 100644 index a16cc74..0000000 --- a/Docs/Install-PSCore.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -external help file: PSReleaseTools-help.xml -Module Name: PSReleaseTools -online version: http://bit.ly/325i1Bm -schema: 2.0.0 ---- - -# Install-PowerShell - -## SYNOPSIS - -Install the latest PowerShell 7.x version on Windows. - -## SYNTAX - -```yaml -Install-PowerShell [[-Path] ] [[-Mode] ] [-EnableRemoting] [-EnableContextMenu] [-WhatIf] - [-Confirm] [] -``` - -## DESCRIPTION - -This command is intended to make it easy to download and install the latest PowerShell (7.x) *stable* release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. Previous versions will either be removed or overwritten based on the MSI package. You also have options to enable PowerShell remoting over WSMan as well as enable a context menu in Windows Explorer to open current location in a PowerShell session. - -This command will only work on Windows platforms. Non-Windows platforms have better native installation tools. - -This command has an alias of Install-PSCore for backwards compatibility. - -## EXAMPLES - -### Example 1 - -```powershell -PS C:\> Install-PowerShell -mode Passive -EnableRemoting -EnableContextMenu -``` - -Download and install using the passive mode which will only display a progress bar. -PowerShell remoting will be enabled as well as the "Open in PowerShell" context menu in Windows Explorer. - -## PARAMETERS - -### -Confirm - -Prompts you for confirmation before running the cmdlet. - -```yaml -Type: SwitchParameter -Parameter Sets: (All) -Aliases: cf - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -EnableContextMenu - -Enable the PowerShell context menu in Windows Explorer. - -```yaml -Type: SwitchParameter -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -EnableRemoting - -Enable PowerShell Remoting over WSMan. - -```yaml -Type: SwitchParameter -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Mode - -Specify what kind of installation you want. - -- Quiet is no interaction at all. -- Passive will display a progress bar. -- Full is the complete interactive experience. - -The default is a full interactive install. - -```yaml -Type: String -Parameter Sets: (All) -Aliases: -Accepted values: Full, Quiet, Passive - -Required: False -Position: 1 -Default value: Full -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Path - -Specify the path to the download folder. - -```yaml -Type: String -Parameter Sets: (All) -Aliases: - -Required: False -Position: 0 -Default value: $env:\temp -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -WhatIf - -Shows what would happen if the cmdlet runs. -The cmdlet is not run. - -```yaml -Type: SwitchParameter -Parameter Sets: (All) -Aliases: wi - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### CommonParameters - -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - -## INPUTS - -### None - -## OUTPUTS - -### None - -## NOTES - -Learn more about PowerShell: http://jdhitsolutions.com/blog/essential-powershell-resources/ - -## RELATED LINKS - -[Save-PSReleaseAsset](Save-PSReleaseAsset.md) - -[Install-PSPreview](Install-PSPreview.md) diff --git a/Docs/Install-PSPreview.md b/Docs/Install-PSPreview.md index 8eeb15e..3d44b15 100644 --- a/Docs/Install-PSPreview.md +++ b/Docs/Install-PSPreview.md @@ -14,15 +14,15 @@ Install the latest PowerShell Preview on Windows. ## SYNTAX ```yaml -Install-PSPreview [[-Path] ] [[-Mode] ] [-EnableRemoting] [-EnableContextMenu] [-WhatIf] - [-Confirm] [] +Install-PSPreview [[-Path] ] [[-Mode] ] [-EnableRemoting] [-EnableContextMenu] + [-EnableRunContext] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION This command is intended to make it easy to download and install the latest PowerShell *preview* release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. If you have previous PowerShell preview versions installed, they will be either removed or overwritten. -This command will only work on Windows platforms. Non-Windows platforms have their own native installation tools. +This command will only work on Windows platforms. Non-Windows platforms have native installation tools. ## EXAMPLES @@ -141,6 +141,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnableRunContext + +Add 'Run with PowerShell 7' context menu for PowerShell files. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). diff --git a/Docs/Install-PowerShell.md b/Docs/Install-PowerShell.md index a16cc74..16029fe 100644 --- a/Docs/Install-PowerShell.md +++ b/Docs/Install-PowerShell.md @@ -14,24 +14,24 @@ Install the latest PowerShell 7.x version on Windows. ## SYNTAX ```yaml -Install-PowerShell [[-Path] ] [[-Mode] ] [-EnableRemoting] [-EnableContextMenu] [-WhatIf] - [-Confirm] [] +Install-PowerShell [[-Path] ] [[-Mode] ] [-EnableRemoting] [-EnableContextMenu] + [-EnableRunContext] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION -This command is intended to make it easy to download and install the latest PowerShell (7.x) *stable* release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. Previous versions will either be removed or overwritten based on the MSI package. You also have options to enable PowerShell remoting over WSMan as well as enable a context menu in Windows Explorer to open current location in a PowerShell session. +This command is intended to make it easy to download and install the latest PowerShell (7.x) *stable* release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. Previous versions will either be removed or overwritten based on the MSI package. You also have options to enable PowerShell remoting over WSMan as well as enable a context menu in Windows Explorer to open the current location in a PowerShell session. This command will only work on Windows platforms. Non-Windows platforms have better native installation tools. -This command has an alias of Install-PSCore for backwards compatibility. +This command has an alias of Install-PSCore for backward compatibility. ## EXAMPLES ### Example 1 ```powershell -PS C:\> Install-PowerShell -mode Passive -EnableRemoting -EnableContextMenu +PS C:\> Install-PowerShell -mode Passive -EnableRemoting -EnableContextMenu -EnableRunContext ``` Download and install using the passive mode which will only display a progress bar. @@ -143,6 +143,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnableRunContext + +Add 'Run with PowerShell 7' context menu for PowerShell files. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). diff --git a/LICENSE.txt b/LICENSE.txt index a94306f..7039d20 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-2020 JDH Information Technology Solutions, Inc. +Copyright (c) 2017-2021 JDH Information Technology Solutions, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/PSReleaseTools.psd1 b/PSReleaseTools.psd1 index 36f312a1b1ee12e73e22633e1ce54929d476858b..bbd2addec6eb91db589faf541636fc2bdecd56e8 100644 GIT binary patch delta 1353 zcmZuwOH31C5T0$fy}1&4%(24nvl{3Fx8yG)%$>WbljP#$Sqvl|rlGf_*|Kt}3OtAcPwY-`syMk#2=J zG{A0JO@!@GuCKfuE(?jO2t?rk#TbJOq1XnSm?`BncoT30x}bye&~h=>P17;X>6@w9 zZTPfP?h`PqMcCk1Yp!LVgt?3HEprgRD-zx_pJAO%JY>;1(JuP+Q!Vm{7!l$)EB4ro zcr_5gq$P-d!~yozWQ}jwvcS53mfLy0WQiXiS*4mBL#}Hr)Uo&`9a}1Y!3@*3YR1V5 zFXM-{tBmU_whEL_(P^e)Nx!cx_NWoR=rm=&!rktNX&9wjkK6raMs@4C${g1@(yXH< z&-d7Ig0)NKeynsZ7G$T&og&V4nXNgKd4}IkFYb_Kvu2T&TBw3GNyX2SgU~A}&TMN^ zBWYAujP_2~Hrlf;Ro{cS=#ts)nX8WR2Uic{I(hRB9+i`9b6>90^C<4&C%M28a~C)g z?nd^Tbf*|EyW1JtJ%fz1o_fZ1kBZMd`&s_$i5d7wwKpZG#ufC^sGNlhkfvvyfe!tj z)}QvAPrYBF)JVm7q=dB%Go(PE8r30V<+=d^+5!|IV8GXkgbsyuqYT>R{)E}&0QQi2avh_cK CRu~}w delta 1183 zcmah|OK1~O6uoJhPSdnA$t0P49P5~hi8jRe>&I_ntF0xLP_;w^=_k=f(^S&b4`|Jz ziVH#8Q$$42l?xFO+^7ptS1KYXA}$0!h$}%55trVXv{U7_ z+QYP;GuQa7x@aryVziAiWs!j8u+Gd98J{$^j9bGxca_NuL5@t&#Bq}0*&Cj z&5b8D325RH(?+}(7vZ2NMcBCoN1UNM*PTfdvZ@zRw-*U_1ZUh2(Wz7+rTEtexY!wPfKfU|0e=1fr`E@1 zD&Yj}q5fN{6+E$5iZ#Uj~b^HE_ y-U__+yZGoVZh4Bh=8xltKY`8#575H_ht#F8^O{qmxUO!(S2YZ6;TMRt9lrq^wG&bR diff --git a/README.md b/README.md index 853f1f1..7a4355b 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,17 @@ [![PSGallery Version](https://img.shields.io/powershellgallery/v/PSReleaseTools.png?style=for-the-badge&logo=powershell&label=PowerShell%20Gallery)](https://www.powershellgallery.com/packages/PSReleaseTools/) [![PSGallery Downloads](https://img.shields.io/powershellgallery/dt/PSReleaseTools.png?style=for-the-badge&label=Downloads)](https://www.powershellgallery.com/packages/PSReleaseTools/) -![PSAvatar](images/Powershell_avatar.ico) +

    -This PowerShell module provides a set of commands for working with the latest releases from the [PowerShell GitHub repository](https://github.com/PowerShell/PowerShell). The module contains commands to get summary information about the most current PowerShell version as well as functions to download some or all of the release files. +This PowerShell module provides a set of commands for working with the latest releases from the [PowerShell GitHub repository](https://github.com/PowerShell/PowerShell). The module contains commands to get summary information about the most current PowerShell version as well as functions to download some or all of the release files or install the latest stable and/or preview build of PowerShell. -These commands utilize the GitHub API, which is subject to rate limits. It is recommended that you save results of commands like `Get-PSReleaseAsset` to a variable. If you encounter an error message for `Invoke-RestMethod` like "Server Error" then you have likely exceeded the API limit. You will need to wait a bit and try again. +These commands utilize the GitHub API, which is subject to rate limits. It is recommended that you save results of commands like `Get-PSReleaseAsset` to a variable. If you encounter an error message for `Invoke-RestMethod` like "Server Error" then you have likely exceeded the API limit. You will need to wait a bit and try again. _*You do not need to have or use a GitHub account to use these commands.*_ -## Cross-Platform - -This module should work cross-platform on both Windows PowerShell and PowerShell 7.x. +This module should work cross-platform on both Windows PowerShell 5.1 and PowerShell 7.x, but is primarily intended for Windows platforms. ## Notes -The module currently has 6 commands: +The module currently has 9 commands: - [Get-PSReleaseSummary](Docs/Get-PSReleaseSummary.md) - [Get-PSReleaseCurrent](Docs/Get-PSReleaseCurrent.md) @@ -22,6 +20,9 @@ The module currently has 6 commands: - [Save-PSReleaseAsset](Docs/Save-PSReleaseAsset.md) - [Install-PowerShell](Docs/Install-PowerShell.md) - [Install-PSPreview](Docs/Install-PSPreview.md) +- [Get-PSIssue](Docs/Get-PSIssue.md) +- [Get-PSIssueLabel](Docs/Get-PSIssueLabel.md) +- [Open-PSIssue](Docs/Open-PSIssue.md) All of the functions take advantage of the [GitHub API](https://developer.github.com/v3/ "learn more about the API") which in combination with either [Invoke-RestMethod](http://go.microsoft.com/fwlink/?LinkID=217034) or [Invoke-WebRequest](http://go.microsoft.com/fwlink/?LinkID=217035), allow you to programmatically interact with GitHub. @@ -34,43 +35,52 @@ I put the release name and date right at the top so you can quickly check if you ```powershell PS C:\> Get-PSReleaseAsset -FileName : PowerShell-7.0.0-win-x64.msi -Family : Windows -Format : msi -SizeMB : 87 -Hash : 876F4A64012A1FB024DCCEA696DB00C5CD1A37C8DC9DFA2431C58CDF9F82950B -Created : 3/3/2020 10:55:37 PM -Updated : 3/3/2020 10:55:39 PM -URL : https://github.com/PowerShell/PowerShell/releases/download/v7.0.0/PowerShell-7.0.0-win-x64.msi -DownloadCount : 46253 +FileName : powershell-7.1.0-1.centos.8.x86_64.rpm +Family : CentOS +Format : rpm +SizeMB : 65 +Hash : F3985B24719534F27A6C603416C7644771E17C75AFBFD8E6D5E98390045BF9D3 +Created : 11/10/2020 8:08:04 PM +Updated : 11/10/2020 8:08:06 PM +URL : https://github.com/PowerShell/PowerShell/releases/download/v7.1.0/powershell-7.1.0-1.centos.8.x86_64.rpm +DownloadCount : 10509 ... ``` -By default it will display assets for all platforms, but I added a `-Family` parameter if you want to limit yourself to a single entry like MacOS. +By default,the command will display assets for all platforms, but I added a `-Family` parameter if you want to limit yourself to a single entry like MacOS. ```powershell PS C:\> Get-PSReleaseAsset -Family MacOS -FileName : powershell-7.0.0-osx-x64.pkg +FileName : powershell-7.1.0-osx-x64.pkg Family : MacOS Format : pkg -SizeMB : 55 -Hash : 80F75903E9F33B407A7F15C087A2C2B12A93DC153469E091D18048D01080085E -Created : 3/4/2020 6:13:06 PM -Updated : 3/4/2020 6:13:08 PM -URL : https://github.com/PowerShell/PowerShell/releases/download/v7.0.0/powershell-7.0.0-osx-x64.pkg -DownloadCount : 7995 +SizeMB : 63 +Hash : 9B7397266711B279B5413F42ABC899730539C8D78A29FD116E19A1BB78244D78 +Created : 11/10/2020 8:08:18 PM +Updated : 11/10/2020 8:08:20 PM +URL : https://github.com/PowerShell/PowerShell/releases/download/v7.1.0/powershell-7.1.0-osx-x64.pkg +DownloadCount : 47202 + +FileName : powershell-7.1.0-osx-x64.tar.gz +Family : MacOS +Format : gz +SizeMB : 63 +Hash : 10CE8B2837F30F127F866E9680F518B9AA6288222C24B62AD1CAD868FB2A66E9 +Created : 11/10/2020 8:08:21 PM +Updated : 11/10/2020 8:08:26 PM +URL : https://github.com/PowerShell/PowerShell/releases/download/v7.1.0/powershell-7.1.0-osx-x64.tar.gz +DownloadCount : 3657 ... ``` Of course, you will want to download these files, which is the job of the last command. By default, `Get-PSReleaserAsset` will save all files to the current directory unless you specify a different path. You can limit the selection to a specific platform with the `-Family` parameter, which uses a validation set. ```powershell -PS C:\> Save-PSReleaseAsset -Family Ubuntu -Path D:\PS\ -WhatIf -What if: Performing the operation "Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.0.0/powershell-lts_7.0.0-1.ubuntu.16.04_amd64.deb" on target "D:\PS\powershell-lts_7.0.0-1.ubuntu.16.04_amd64.deb". -What if: Performing the operation "Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.0.0/powershell-lts_7.0.0-1.ubuntu.18.04_amd64.deb" on target "D:\PS\powershell-lts_7.0.0-1.ubuntu.18.04_amd64.deb". -What if: Performing the operation "Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.0.0/powershell_7.0.0-1.ubuntu.16.04_amd64.deb" on target "D:\PS\powershell_7.0.0-1.ubuntu.16.04_amd64.deb". -What if: Performing the operation "Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.0.0/powershell_7.0.0-1.ubuntu.18.04_amd64.deb" on target "D:\PS\powershell_7.0.0-1.ubuntu.18.04_amd64.deb". +PS C:\> Save-PSReleaseAsset -Family Ubuntu -Path D:\Temp -WhatIf +What if: Performing the operation "Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.1.0/powershell_7.1.0-1.ubuntu.16.04_amd64.deb" on target "D:\temp\powershell_7.1.0-1.ubuntu.16.04_amd64.deb". +What if: Performing the operation "Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.1.0/powershell_7.1.0-1.ubuntu.18.04_amd64.deb" on target "D:\temp\powershell_7.1.0-1.ubuntu.18.04_amd64.deb". +What if: Performing the operation "Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.1.0/powershell_7.1.0-1.ubuntu.20.04_amd64.deb" on target "D:\temp\powershell_7.1.0-1.ubuntu.20.04_amd64.deb". ``` You can select multiple names. If you choose Windows, there is a dynamic parameter called `-Format` where you can select ZIP or MSI. `Save-PSReleaseAsset` supports `-WhatIf`. @@ -78,16 +88,15 @@ You can select multiple names. If you choose Windows, there is a dynamic paramet I also realized you might run `Get-PSReleaseAsset`, perhaps to examine details before downloading. Since you have those objects, why not be able to pipe them to the save command? ```powershell -PS C:\> Get-PSReleaseAsset -Family Debian -LTS | Save-PSReleaseAsset -Path D:\PS\ -Passthru +PS C:\> Get-PSReleaseAsset -Family Rhel | Save-PSReleaseAsset -Path D:\Temp -Passthru + + Directory: D:\Temp - Directory: D:\PS Mode LastWriteTime Length Name ---- ------------- ------ ---- --a--- 3/11/2020 12:44 PM 61101934 powershell-lts_7.0.0-1.debian.10_amd64.deb --a--- 3/11/2020 12:44 PM 61101718 powershell-lts_7.0.0-1.debian.11_amd64.deb --a--- 3/11/2020 12:44 PM 61100218 powershell-lts_7.0.0-1.debian.9_amd64.deb +-a---- 1/13/2021 11:13 AM 67752949 powershell-7.1.0-1.rhel.7.x86_64.rpm ``` The current version of this module uses regular expression named captures to pull out the file name and corresponding SHA256 hashes. The save command then calls `Get-FileHash` to get the current file hash and compares them. @@ -112,13 +121,13 @@ Or you can use one of two newer functions to install the latest 64bit release. Y Install-PSPreview -Mode Passive ``` - [Install-PowerShell](/Docs/Install-PowerShell.md) will do the same thing but for the latest stable release. + [Install-PowerShell](/Docs/Install-PowerShell.md) will do the same thing but for the latest stable release. The command retains `Install-PSCore` as an alias. ```powershell -PS C:\> Install-PowerShell -Mode Quiet -EnableRemoting -EnableContextMenu +PS C:\> Install-PowerShell -Mode Quiet -EnableRemoting -EnableContextMenu -EnableRunContext ``` -The functionality of these commands could have been combined, but I decided to leave this as separate commands, so there is no confusion about what you are installing. +The functionality of these commands could have been combined, but I decided to leave them as separate commands, so there is no confusion about what you are installing. In both cases, an installation log file will be created at `$env:TEMP\PS7Install.log`. Non-Windows platforms have existing command-line installation tools that don't need to be replaced. Plus, I don't have the resources to develop and test installation techniques for all of the non-Windows options. That is why install-related commands in this module are limited to Windows. @@ -134,17 +143,17 @@ You can also fine-tune your search to get issues that have been updated since a ![Get-PSIssue](images/get-psissue.png) -The function write a custom object to the pipeline and includes a default formatted view. If you are running PowerShell 7, the issue body will be rendered as formatted markdown. +The function writes a custom object to the pipeline and includes a default formatted view. If you are running PowerShell 7, the issue body will be rendered as formatted markdown. Here is another way you might use the command. ![Get-PSIssue Summary](images/get-psissue-summary.png) -__Note:__ The issue commands use the GitHub API and anonymous connections. The API has rate limits. If you run one of these commands excessively in a short period of time, you might see an error about exceeding the rate limit. If this happens, all you can do is wait an hour and try again. You can read more about GitHub rate limiting [here](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting). +__Note:__ The _PSIssue_ commands use the GitHub API and anonymous connections. The API has rate limits. If you run one of these commands excessively in a short period of time, you might see an error about exceeding the rate limit. If this happens, all you can do is wait an hour and try again. You can read more about GitHub rate limiting [here](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting). ### Get-PSIssueLabel -To make it easier to search for issues based on labels, you can use `Get-PSIssueLabel` to list available labels from the PowerShell repository. However, you most likely won't need to run this command often. When you import the `PSReleaseTools` module, it will create a global variable called `$PSIssueLabel`. +To make it easier to search for issues based on a label run `Get-PSIssueLabel`. This command will list available labels from the PowerShell repository. However, you most likely won't need to run this command often. When you import the `PSReleaseTools` module, it will create a global variable called `$PSIssueLabel`. ```powershell PS C:\> $PSIssueLabel @@ -193,4 +202,4 @@ Install-Module PSReleaseTools [-Scope CurrentUser] If you have suggestions or encounter problems, please post an issue in this GitHub repository. If you find this project useful, or any of my work, please consider a small support donation.[:heart:Sponsor](https://paypal.me/jdhitsolutions?locale.x=en_US) -Last Updated *2020-08-25 11:19:04Z* +Last Updated *2021-01-13 17:04:35Z* diff --git a/en-US/PSReleaseTools-help.xml b/en-US/PSReleaseTools-help.xml index 36b15af..1b9e09c 100644 --- a/en-US/PSReleaseTools-help.xml +++ b/en-US/PSReleaseTools-help.xml @@ -665,12 +665,11 @@ What if: Performing the operation "Downloading https://github.com/PowerShell/Pow -------------------------- Example 1 -------------------------- - PS C:\> Get-PSReleaseCurrent + PS C:\> PS C:\> Get-PSReleaseCurrent - -Name Version Released LocalVersion ----- ------- -------- ------------ -v7.0.0 Release of PowerShell v7.0.0 3/4/2020 5:00:08 PM 7.0.0 +Name Version Released LocalVersion +---- ------- -------- ------------ +v7.1.0 Release of PowerShell v7.1.0 11/11/2020 11:23:08 AM 5.1.19041.610 This gets the current release from a Windows platform. @@ -679,9 +678,9 @@ v7.0.0 Release of PowerShell v7.0.0 3/4/2020 5:00:08 PM 7.0.0 -------------------------- Example 2 -------------------------- PS /home/me> Get-PSReleaseCurrent -preview -Name Version Released LocalVersion ----- ------- -------- ------------ -v7.0.0-rc.2 Release of PowerShell v7.0.0-rc.2 1/16/20 11:35:38 PM 6.2.4 +Name Version Released LocalVersion +---- ------- -------- ------------ +v7.2.0-preview.2 Release of PowerShell v7.2.0-preview.2 12/15/2020 21:31:39 7.1.0 This gets the current preview release from an Ubuntu platform. @@ -709,7 +708,7 @@ v7.0.0-rc.2 Release of PowerShell v7.0.0-rc.2 1/16/20 11:35:38 PM 6.2.4 This command will query the PowerShell GitHub repository for the latest stable release information using the GitHub APIs. Use -Preview to get information about the latest preview build. You do not need to have a GitHub account in order to use this command, although you may still reach an API limit if you run this command repeatedly in a short time frame. - The default output is a text report but you have the the option to create a markdown version. + The default output is a text report but you have the option to create a markdown version. Use the -Online parameter to open the GitHub release page in your browser. This parameter only works in Windows. @@ -754,7 +753,7 @@ v7.0.0-rc.2 Release of PowerShell v7.0.0-rc.2 1/16/20 11:35:38 PM 6.2.4 Online - Open GitHub release page in your browser. This parameter only works on Windows systems. + Open the GitHub release page in your browser. This parameter only works on Windows systems. SwitchParameter @@ -792,7 +791,7 @@ v7.0.0-rc.2 Release of PowerShell v7.0.0-rc.2 1/16/20 11:35:38 PM 6.2.4 Online - Open GitHub release page in your browser. This parameter only works on Windows systems. + Open the GitHub release page in your browser. This parameter only works on Windows systems. SwitchParameter @@ -830,143 +829,48 @@ v7.0.0-rc.2 Release of PowerShell v7.0.0-rc.2 1/16/20 11:35:38 PM 6.2.4 -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Get-PSReleaseSummary - + PS C:\> PS C:\> Get-PSReleaseSummary ----------------------------------------------------------- -v7.0.0 Release of PowerShell -Published: 03/04/2020 17:00:08 +v7.1.0 Release of PowerShell +Published: 11/11/2020 11:23:08 ----------------------------------------------------------- -## 7.0.0 - 2020-03-04 - -- [Diff from 7.0.0-rc.3][7.0.0] -- [Diff from 6.2.0][7.0.0-full] - -**Note:** The snap package is segfault after launching on Ubuntu 16.04. We are investigating with the .NET team. The workaround for not is to use the `DEB` or `tar.gz` package. +## [7.1.0] - 2020-11-11 -### General Cmdlet Updates and Fixes - -- Enable `Ctrl+C` to work for global tool (#11959) -- Fix `ConciseView` to not show the line information within the error messages (#11952) - -### Build and Packaging Improvements +- [Diff from 7.1.0-rc.2][7.1.0] +- [Diff from 7.0.0][7.1.0-full] -- Publish PowerShell into the Windows engineering system package format (#11960) -- Bump .NET core framework to `3.1.2` (#11963) -- Ensure the man page `gzip` has the correct name for LTS release (#11956) -- Bump `Microsoft.ApplicationInsights` from `2.13.0` to `2.13.1` (#11925) +### Engine Updates and Fixes -### SHA256 Hashes of the release artifacts +- Fix a logic bug in `MapSecurityZone` (#13921) (Thanks @iSazonov!) -- powershell_7.0.0-1.debian.10_amd64.deb - - 58B2F022B909C8BC96B288384024B58EF6CF8D2724F1C7425C7745E0AC84A8C5 -- powershell_7.0.0-1.debian.11_amd64.deb - - 3ED567A3107DC8319E8BAB9C9A01A00B3344BD2DB6F92BF0ECE4E49FA77BD87D -- powershell_7.0.0-1.debian.9_amd64.deb - - 53D3B358A0B98B674E329C7D43860F747AAF77747AEAD8F667B8594D21C8CE53 -- powershell_7.0.0-1.ubuntu.16.04_amd64.deb - - 245A55BBFF2BEA43F501EEB511C317DB62774298F5310EF3357307899FF3B091 -- powershell_7.0.0-1.ubuntu.18.04_amd64.deb - - A28C95B376E6DD7EF0BF523B6BD329485948A53E27FD2E8B3DDED6981471214C -- powershell-7.0.0-1.centos.8.x86_64.rpm - - 3F5EEEF95F24B1804034B29036F6C3D7951F7B995E637713DEFF3088EED7BF65 -- powershell-7.0.0-1.rhel.7.x86_64.rpm - - 09EB0F49F91FC5DA569DE9F8FCADA36CDF79846A1AEA0679D357D316453B2838 -- powershell-7.0.0-linux-alpine-x64.tar.gz - - 5D04337A8B18494DF242F68DD4C960EFBE491AE127901CA15007993F1983CCDF -- powershell-7.0.0-linux-arm32.tar.gz - - CBB6ACBB40F73CCF83920F4729DC86EBF3566BB9A01CA68E0698D33FDBE6D7B0 -- powershell-7.0.0-linux-arm64.tar.gz - - C361C1440012A59DAC02B3B36744B728AE2409356876C0845C5CA2DAFA8E6153 -- powershell-7.0.0-linux-x64.tar.gz - - 3E80A662A5DEFB283185961330C4A44D5D5179F9EB2A2EE74AC7E1D3CAF16B2C -- powershell-7.0.0-linux-x64-fxdependent.tar.gz - - 1B232E7704BB128534FED670D17617E1E34558398B4E6227A5E5F28FDA003E95 -- powershell-7.0.0-osx-x64.tar.gz - - 7EA2A539CB33F3C1C62280EEA1D3B55CBD84C86676437A390E81C0AE374483E6 -- PowerShell-7.0.0-win-arm32.zip - - BA260EBA7AC2FFBD7E63570738AAC92440D434DD84ACAA1E70C58649461718D4 -- PowerShell-7.0.0-win-arm64.zip - - 2FD04091F7AACF2BBBA470EDC92A28034CD6F54999F7A880404AD17954476ABF -- PowerShell-7.0.0-win-fxdependent.zip - - 8A96806066C0BC2AFED53C1A5B5167BCC6D75E9600EC1D69CDEF242B3920F5E3 -- PowerShell-7.0.0-win-fxdependentWinDesktop.zip - - 3BF3898D97610F1ACDFBA819399A876DCE2B5788184C7FF3BE017522E71B47EF -- PowerShell-7.0.0-win-x64.msi - - 876F4A64012A1FB024DCCEA696DB00C5CD1A37C8DC9DFA2431C58CDF9F82950B -- PowerShell-7.0.0-win-x64.zip - - CDA2CA2227FBEC2C753AA760859667B02007D14646A831BD908B8F749CBCC687 -- PowerShell-7.0.0-win-x86.msi - - C0E8CBE16EDA134385D499881E6E0F2784BCB4D26CBE42ED5B81E29EEC37B3DA -- PowerShell-7.0.0-win-x86.zip - - F33E852F7721E61FF3BAE9FC04F1DFA48CE7B10CD59D649126D5BA9BFAD9AECD -- powershell-lts_7.0.0-1.debian.10_amd64.deb - - 54CBB3915CC01B215AAB0E260C73131DDDE410CFC50440BC8C4D2E336992882A -- powershell-lts_7.0.0-1.debian.11_amd64.deb - - 974BB634616B4FD1B4A9E024580C1936410D1C267E23BFD34164F1853428BFBF -- powershell-lts_7.0.0-1.debian.9_amd64.deb - - F49DDA694DA791CEE0F0B456FAB0A2818079102ED9D51B89E1F1879654BA62E1 -- powershell-lts_7.0.0-1.ubuntu.16.04_amd64.deb - - 54B39CCB64D84DEF03D2C216757D53B233B3D5F74636675C7DFFEEAA72E8B1CA -- powershell-lts_7.0.0-1.ubuntu.18.04_amd64.deb - - AB4B7E104CAD9DC7D43AD18F335EA14919CF4A930B55348D6601C99A12D9A4FC -- powershell-lts-7.0.0-1.centos.8.x86_64.rpm - - 1CD5DA84E398A216B2D37F7B1361601B0EF4D79D33A1219C70BB8C083D9CD191 -- powershell-lts-7.0.0-1.rhel.7.x86_64.rpm - - EF6D8728FDE0226A715B85FB199352D9EDE2ECC88CFF890846713CCA34099D82 -- powershell-lts-7.0.0-osx-x64.pkg - - 28321A96A8630E3BFD9E8858645D5D35B3E9D7918A63F557924E97414D303C76 -- powershell-7.0.0-osx-x64.pkg - - 80F75903E9F33B407A7F15C087A2C2B12A93DC153469E091D18048D01080085E +### General Cmdlet Updates and Fixes -[7.0.0]: https://github.com/PowerShell/PowerShell/compare/v7.0.0-rc.3...v7.0.0 -[7.0.0-full]: https://github.com/PowerShell/PowerShell/compare/v6.2.0...v7.0.0 +- Update `pwsh -?` output to match docs (#13748) +### Tests +- `markdownlint` security updates (#13730) -------------- -| Downloads | -------------- +### Build and Packaging Improvements -Filename Updated SizeMB --------- ------- ------ -powershell-7.0.0-1.centos.8.x86_64.rpm 3/3/2020 10:55:10 PM 55 -powershell-7.0.0-1.rhel.7.x86_64.rpm 3/3/2020 10:55:13 PM 55 -powershell-7.0.0-linux-alpine-x64.tar.gz 3/3/2020 10:55:14 PM 45 -powershell-7.0.0-linux-arm32.tar.gz 3/3/2020 10:55:18 PM 46 -powershell-7.0.0-linux-arm64.tar.gz 3/3/2020 10:55:20 PM 44 -powershell-7.0.0-linux-x64-fxdependent.tar.gz 3/3/2020 10:55:24 PM 19 -powershell-7.0.0-linux-x64.tar.gz 3/3/2020 10:55:22 PM 58 -powershell-7.0.0-osx-x64.pkg 3/4/2020 6:13:08 PM 55 -powershell-7.0.0-osx-x64.tar.gz 3/3/2020 10:55:25 PM 55 -PowerShell-7.0.0-win-arm32.zip 3/3/2020 10:55:29 PM 49 -PowerShell-7.0.0-win-arm64.zip 3/3/2020 10:55:35 PM 49 -PowerShell-7.0.0-win-fxdependent.zip 3/3/2020 10:55:36 PM 21 -PowerShell-7.0.0-win-fxdependentWinDesktop.zip 3/3/2020 10:55:37 PM 20 -PowerShell-7.0.0-win-x64.msi 3/3/2020 10:55:39 PM 87 -PowerShell-7.0.0-win-x64.zip 3/3/2020 10:55:53 PM 89 -PowerShell-7.0.0-win-x86.msi 3/3/2020 10:56:01 PM 79 -PowerShell-7.0.0-win-x86.zip 3/3/2020 10:56:17 PM 80 -powershell-lts-7.0.0-1.centos.8.x86_64.rpm 3/3/2020 10:56:50 PM 58 -powershell-lts-7.0.0-1.rhel.7.x86_64.rpm 3/3/2020 10:56:52 PM 58 -powershell-lts-7.0.0-osx-x64.pkg 3/3/2020 10:56:54 PM 55 -powershell-lts_7.0.0-1.debian.10_amd64.deb 3/3/2020 10:56:21 PM 58 -powershell-lts_7.0.0-1.debian.11_amd64.deb 3/3/2020 10:56:25 PM 58 -powershell-lts_7.0.0-1.debian.9_amd64.deb 3/3/2020 10:56:27 PM 58 -powershell-lts_7.0.0-1.ubuntu.16.04_amd64.deb 3/3/2020 10:56:36 PM 58 -powershell-lts_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:56:42 PM 58 -powershell_7.0.0-1.debian.10_amd64.deb 3/3/2020 10:54:44 PM 56 -powershell_7.0.0-1.debian.11_amd64.deb 3/3/2020 10:54:51 PM 56 -powershell_7.0.0-1.debian.9_amd64.deb 3/3/2020 10:54:57 PM 56 -powershell_7.0.0-1.ubuntu.16.04_amd64.deb 3/3/2020 10:55:02 PM 56 -powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 +<details> +<summary> +Bump .NET to version <code>5.0.100-rtm.20526.5</code> (#13920) +</summary> +<ul> +<li>Fixes to release pipeline for GA release (Internal 13410)</li> +<li>Change PkgES Lab to unblock build (Internal 13376)</li> +<li>Add validation and dependencies for <code>Ubuntu 20.04</code> distribution to packaging script (#13993)</li> +<li>Add .NET install workaround for RTM (#13991)</li> +... -------------------------- EXAMPLE 2 -------------------------- - PS /home/jeff> get-psreleasesummary -AsMarkdown -preview | show-markdown + PS /home/jeff> get-psreleasesummary -AsMarkdown -preview | Show-Markdown Get the latest preview release summary as markdown and use the Show-Markdown command in PowerShell Core to render the markdown in the console. Note that Show-Markdown may not render tables correctly. @@ -993,9 +897,9 @@ powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 - This command is intended to make it easy to download and install the latest PowerShell (7.x) stable release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. Previous versions will either be removed or overwritten based on the MSI package. You also have options to enable PowerShell remoting over WSMan as well as enable a context menu in Windows Explorer to open current location in a PowerShell session. + This command is intended to make it easy to download and install the latest PowerShell (7.x) stable release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. Previous versions will either be removed or overwritten based on the MSI package. You also have options to enable PowerShell remoting over WSMan as well as enable a context menu in Windows Explorer to open the current location in a PowerShell session. This command will only work on Windows platforms. Non-Windows platforms have better native installation tools. - This command has an alias of Install-PSCore for backwards compatibility. + This command has an alias of Install-PSCore for backward compatibility. @@ -1078,6 +982,17 @@ powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 False + + EnableRunContext + + Add 'Run with PowerShell 7' context menu for PowerShell files. + + + SwitchParameter + + + False + @@ -1158,223 +1073,10 @@ powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 False - - - - - None - - - - - - - - - - None - - - - - - - - - Learn more about PowerShell: http://jdhitsolutions.com/blog/essential-powershell-resources/ - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Install-PowerShell -mode Passive -EnableRemoting -EnableContextMenu - - Download and install using the passive mode which will only display a progress bar. PowerShell remoting will be enabled as well as the "Open in PowerShell" context menu in Windows Explorer. - - - - - - Online Version: - http://bit.ly/325i1Bm - - - Save-PSReleaseAsset - - - - Install-PSPreview - - - - - - - Install-PowerShell - Install - PowerShell - - Install the latest PowerShell 7.x version on Windows. - - - - This command is intended to make it easy to download and install the latest PowerShell (7.x) stable release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. Previous versions will either be removed or overwritten based on the MSI package. You also have options to enable PowerShell remoting over WSMan as well as enable a context menu in Windows Explorer to open current location in a PowerShell session. - This command will only work on Windows platforms. Non-Windows platforms have better native installation tools. - This command has an alias of Install-PSCore for backwards compatibility. - - - - Install-PowerShell - - Path - - Specify the path to the download folder. - - String - - String - - - $env:\temp - - - Mode - - Specify what kind of installation you want. - - Quiet is no interaction at all. - - Passive will display a progress bar. - - Full is the complete interactive experience. - - The default is a full interactive install. - - - Full - Quiet - Passive - - String - - String - - - Full - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - EnableContextMenu - - Enable the PowerShell context menu in Windows Explorer. - - - SwitchParameter - - - False - - - EnableRemoting - - Enable PowerShell Remoting over WSMan. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - EnableContextMenu + EnableRunContext - Enable the PowerShell context menu in Windows Explorer. - - SwitchParameter - - SwitchParameter - - - False - - - EnableRemoting - - Enable PowerShell Remoting over WSMan. - - SwitchParameter - - SwitchParameter - - - False - - - Mode - - Specify what kind of installation you want. - - Quiet is no interaction at all. - - Passive will display a progress bar. - - Full is the complete interactive experience. - - The default is a full interactive install. - - String - - String - - - Full - - - Path - - Specify the path to the download folder. - - String - - String - - - $env:\temp - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Add 'Run with PowerShell 7' context menu for PowerShell files. SwitchParameter @@ -1412,7 +1114,7 @@ powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 -------------------------- Example 1 -------------------------- - PS C:\> Install-PowerShell -mode Passive -EnableRemoting -EnableContextMenu + PS C:\> Install-PowerShell -mode Passive -EnableRemoting -EnableContextMenu -EnableRunContext Download and install using the passive mode which will only display a progress bar. PowerShell remoting will be enabled as well as the "Open in PowerShell" context menu in Windows Explorer. @@ -1444,7 +1146,7 @@ powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 This command is intended to make it easy to download and install the latest PowerShell preview release on Windows platforms. The command will download the 64bit MSI package and initiate the installation process. You can control how much of the installation you want to interact with. The default is the full, interactive installer. If you have previous PowerShell preview versions installed, they will be either removed or overwritten. - This command will only work on Windows platforms. Non-Windows platforms have their own native installation tools. + This command will only work on Windows platforms. Non-Windows platforms have native installation tools. @@ -1527,6 +1229,17 @@ powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 False + + EnableRunContext + + Add 'Run with PowerShell 7' context menu for PowerShell files. + + + SwitchParameter + + + False + @@ -1607,6 +1320,18 @@ powershell_7.0.0-1.ubuntu.18.04_amd64.deb 3/3/2020 10:55:08 PM 56 False + + EnableRunContext + + Add 'Run with PowerShell 7' context menu for PowerShell files. + + SwitchParameter + + SwitchParameter + + + False + diff --git a/functions/private.ps1 b/functions/private.ps1 index 662fa5a..0228686 100644 --- a/functions/private.ps1 +++ b/functions/private.ps1 @@ -53,8 +53,10 @@ function InstallMsi { [string]$Mode = "Full", [Parameter(HelpMessage = "Enable PowerShell Remoting over WSMan.")] [switch]$EnableRemoting, - [Parameter(HelpMessage = "Enable the PowerShell context menu in Windows Explorer.")] - [switch]$EnableContextMenu + [Parameter(HelpMessage = "Add 'Open Here' context menus to Explorer.")] + [switch]$EnableContextMenu, + [Parameter(HelpMessage = "Add 'Run with PowerShell 7` context menu for PowerShell files.")] + [switch]$EnableRunContext ) Write-Verbose "[$((Get-Date).TimeofDay) $($MyInvocation.MyCommand)] Creating Start-Process parameters" @@ -65,14 +67,27 @@ function InstallMsi { "Passive" { "/passive" } } - $installOption = "$modeOption REGISTER_MANIFEST=1" + #create a log file + $log = Join-Path $env:temp -ChildPath "PS7Install.log" + $installOption = " $modeOption /lp! $log" + + #Register Windows Event Logging Manifest + $installOption += " REGISTER_MANIFEST=1" + #Add PowerShell to Path Environment Variable + $installOption += " ADD_PATH=1" if ($EnableRemoting) { + #Enable PowerShell Remoting $installOption += " ENABLE_PSREMOTING=1" } If ($EnableContextMenu) { + #Add 'Open Here' context menus to Explorer $installOption += " ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1" } + if ($EnableRunContext) { + #Add 'Run with PowerShell 7` context menu for PowerShell files + $installOption += " ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1" + } Write-Verbose "[$((Get-Date).TimeofDay) $($MyInvocation.MyCommand)] FilePath: $Path" Write-Verbose "[$((Get-Date).TimeofDay) $($MyInvocation.MyCommand)] ArgumentList: $installOption" diff --git a/functions/public.ps1 b/functions/public.ps1 index 1146e03..fa302b2 100644 --- a/functions/public.ps1 +++ b/functions/public.ps1 @@ -573,8 +573,10 @@ function Install-PSPreview { [string]$Mode = "Full", [Parameter(HelpMessage = "Enable PowerShell Remoting over WSMan.")] [switch]$EnableRemoting, - [Parameter(HelpMessage = "Enable the PowerShell context menu in Windows Explorer.")] - [switch]$EnableContextMenu + [Parameter(HelpMessage = "Add 'Open Here' context menus to Explorer.")] + [switch]$EnableContextMenu, + [Parameter(HelpMessage = "Add 'Run with PowerShell 7` context menu for PowerShell files")] + [switch]$EnableRunContext ) begin { Write-Verbose "[$((Get-Date).TimeofDay) BEGIN ] Starting $($MyInvocation.MyCommand)" @@ -610,6 +612,7 @@ function Install-PSPreview { Mode = $Mode EnableRemoting = $EnableRemoting EnableContextMenu = $EnableContextMenu + EnableRunContext = $EnableRunContext ErrorAction = "Stop" } if ($PSCmdlet.ShouldProcess($filename, "Install PowerShell Preview using $mode mode")) { @@ -639,8 +642,10 @@ function Install-PowerShell { [string]$Mode = "Full", [Parameter(HelpMessage = "Enable PowerShell Remoting over WSMan.")] [switch]$EnableRemoting, - [Parameter(HelpMessage = "Enable the PowerShell context menu in Windows Explorer.")] - [switch]$EnableContextMenu + [Parameter(HelpMessage = "Add 'Open Here' context menus to Explorer.")] + [switch]$EnableContextMenu, + [Parameter(HelpMessage = "Add 'Run with PowerShell 7` context menu for PowerShell files")] + [switch]$EnableRunContext ) begin { Write-Verbose "[$((Get-Date).TimeofDay) BEGIN ] Starting $($MyInvocation.MyCommand)" @@ -674,6 +679,7 @@ function Install-PowerShell { Mode = $Mode EnableRemoting = $EnableRemoting EnableContextMenu = $EnableContextMenu + EnableRunContext = $EnableRunContext ErrorAction = "Stop" } if ($PSCmdlet.ShouldProcess($filename, "Install PowerShell using $mode mode")) { @@ -690,4 +696,4 @@ function Install-PowerShell { Write-Verbose "[$((Get-Date).TimeofDay) END ] Ending $($MyInvocation.MyCommand)" } #end -} #close Install-PSCore \ No newline at end of file +} #close Install-PowerShell \ No newline at end of file diff --git a/images/PowerShell_avatar.bmp b/images/PowerShell_avatar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5baeaebe2f97336924227abe25d74d1634508c03 GIT binary patch literal 90054 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 literal 0 HcmV?d00001 diff --git a/images/PowerShell_avatar.png b/images/PowerShell_avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..4a42fb4ace1825fd2712c58db5ec743319378d2a GIT binary patch literal 15462 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