From edb12652cde6d62777713daa61e1351bd5218117 Mon Sep 17 00:00:00 2001 From: Sean Wheeler Date: Thu, 6 Aug 2026 14:26:32 -0500 Subject: [PATCH 1/2] Update monthly stats (#13201) --- .../docs-conceptual/community/2026-updates.md | 28 ++++++++++++++++- .../docs-conceptual/community/hall-of-fame.md | 30 ++++++++----------- 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/reference/docs-conceptual/community/2026-updates.md b/reference/docs-conceptual/community/2026-updates.md index be008f085e0..102d7f8f8ee 100644 --- a/reference/docs-conceptual/community/2026-updates.md +++ b/reference/docs-conceptual/community/2026-updates.md @@ -1,6 +1,6 @@ --- description: List of changes to the PowerShell documentation for 2026. -ms.date: 07/02/2026 +ms.date: 08/06/2026 title: What's New in PowerShell-Docs for 2026 --- # What's new in PowerShell Docs for 2026 @@ -15,6 +15,32 @@ get started. [01]: contributing/overview.md +## 2026-July + +Updated content + +- Release notes for monthly maintenance releases of PowerShell +- More updates to PSScriptAnalyzer rules +- `New-Guid` changed in PowerShell 7.7 to create v7 format UUIDs + +GitHub stats + +- 23 PRs merged (2 from Community) +- 38 issues opened (7 from Community, 30 Spam) +- 38 issues closed (8 from Community, 30 Spam) + +Top Community Contributors + +The following people contributed to PowerShell docs this month by submitting pull requests or +filing issues. Thank you! + +Special thanks to @ArieHein for another large PR to clean up 160 articles. + +| GitHub Id | PRs merged | Issues opened | +| ---------------- | :--------: | :-----------: | +| janv8000 | 1 | | +| SufficientDaikon | 1 | | + ## 2026-June Updated content diff --git a/reference/docs-conceptual/community/hall-of-fame.md b/reference/docs-conceptual/community/hall-of-fame.md index 51a9f31d380..976351a58f2 100644 --- a/reference/docs-conceptual/community/hall-of-fame.md +++ b/reference/docs-conceptual/community/hall-of-fame.md @@ -1,6 +1,6 @@ --- description: List of the GitHub users that have the most contributions to PowerShell documentation. -ms.date: 07/02/2026 +ms.date: 08/06/2026 title: Community contributor Hall of Fame --- # Community Contributor Hall of Fame @@ -18,16 +18,16 @@ Pull Requests help us fix those issues and make the documentation better for eve | PRs Merged | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | Total | | ------------------ | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ----: | -| Community | 8 | 189 | 452 | 468 | 321 | 165 | 101 | 134 | 117 | 95 | 160 | 28 | 2238 | +| Community | 8 | 189 | 452 | 468 | 321 | 165 | 101 | 120 | 108 | 83 | 149 | 26 | 2190 | | matt9ucci | | | 157 | 80 | 30 | 1 | 6 | | | | | | 274 | | nschonni | | | | 14 | 138 | 10 | | | | | | | 162 | | kiazhi | | 25 | 79 | 12 | | | | | | | | | 116 | -| alexandair | | 57 | 7 | 24 | 2 | 1 | | | | 1 | | | 92 | +| alexandair | | 57 | 7 | 24 | 2 | 1 | | | | | | | 91 | | sethvs | | | 1 | 42 | | 20 | 1 | 10 | | 6 | 2 | 1 | 83 | | doctordns | | 5 | 32 | 20 | 7 | 9 | 5 | | 1 | | | | 79 | | surfingoldelephant | | | | | | | | | | | 58 | 5 | 63 | | ehmiiz | | | | | | | | 22 | 14 | | | | 36 | -| ArieHein | | | | | 1 | | | | | 8 | 25 | 1 | 35 | +| ArieHein | | | | | 1 | | | | | 7 | 25 | 1 | 34 | | yecril71pl | | | | | | 21 | 3 | 3 | | | | | 27 | | changeworld | | | | | | | | 3 | | | 22 | | 25 | | skycommand | | | 1 | 3 | 3 | 6 | | 1 | 4 | 1 | 4 | | 23 | @@ -36,13 +36,11 @@ Pull Requests help us fix those issues and make the documentation better for eve | it-praktyk | | | | 16 | 1 | | | | | | | | 17 | | vors | | 15 | 1 | | | | | | | | | | 16 | | kvprasoon | | 2 | 1 | 6 | 2 | 2 | 2 | | | | | | 15 | -| purdo17 | | | | 13 | | | | | | | | | 13 | | k-takai | | | | 5 | 1 | 7 | | | | | | | 13 | -| bergmeister | | | 1 | 3 | 3 | 1 | 1 | 2 | 1 | 1 | | | 13 | +| purdo17 | | | | 13 | | | | | | | | | 13 | | markekraus | | | 11 | 1 | | | | | | | | | 12 | | exchange12rocks | | | 7 | 3 | | | 1 | | | | | 1 | 12 | -| hrxn | | | | | | | 2 | 2 | 2 | 5 | | | 11 | -| baardhermansen | | | | | 2 | 1 | | 1 | 2 | | | 5 | 11 | +| bergmeister | | | 1 | 3 | 3 | 1 | 1 | 1 | 1 | | | | 11 | ## GitHub issues opened @@ -50,15 +48,15 @@ GitHub issues help us identify errors and gaps in our documentation. | Issues Opened | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | Total | | ------------------ | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ----: | -| Community | 6 | 52 | 96 | 213 | 567 | 563 | 367 | 244 | 291 | 243 | 182 | 74 | 2898 | +| Community | 6 | 52 | 96 | 214 | 568 | 564 | 364 | 230 | 276 | 232 | 162 | 88 | 2852 | | mklement0 | | | 19 | 60 | 56 | 61 | 28 | 8 | 20 | 24 | 2 | | 278 | -| ehmiiz | | | | | | | | 21 | 14 | | | | 35 | +| ehmiiz | | | | | | | | 20 | 14 | | | | 34 | | iRon7 | | | | | | 2 | 2 | 2 | 10 | 8 | 8 | | 32 | | iSazonov | | | 1 | 4 | 10 | 8 | 4 | 3 | | 1 | | | 31 | -| jszabo98 | | | | 2 | 15 | 6 | 1 | | 1 | 2 | | 1 | 28 | +| jszabo98 | | | | 2 | 15 | 6 | 1 | | 1 | 2 | | 2 | 29 | | surfingoldelephant | | | | | | | | | | 6 | 19 | 2 | 27 | -| kilasuit | | | | | 3 | 2 | 1 | 4 | 1 | 4 | 5 | 3 | 23 | | juvtib | | | | | | 15 | 7 | | | | | | 22 | +| kilasuit | | | | | 3 | 2 | 1 | 4 | 1 | 3 | 4 | 4 | 22 | | peetrike | | | | 1 | | 4 | 2 | 6 | 4 | 3 | 1 | | 21 | | doctordns | | | 5 | 3 | 5 | 7 | 1 | | | | | | 21 | | JustinGrote | | | | 1 | 3 | 6 | 1 | 1 | 3 | 2 | 3 | | 20 | @@ -68,14 +66,12 @@ GitHub issues help us identify errors and gaps in our documentation. | alexandair | | 9 | 4 | 2 | | | | | | | | | 15 | | clamb123 | | | | | | | 14 | | | | | | 14 | | tabad | | | | | | | | | 11 | 2 | | | 13 | -| ThomasNieto | | | | | | 3 | | 2 | 4 | 3 | | | 12 | | trollyanov | | | | | | | 11 | 1 | | | | | 12 | -| LaurentDardenne | | | 3 | 2 | | | | 5 | 2 | | | | 12 | | Liturgist | | | | | 1 | 1 | 1 | 2 | 5 | 2 | | | 12 | +| LaurentDardenne | | | 3 | 2 | | | | 5 | 2 | | | | 12 | | jsilverm | | | | | | 8 | | | 4 | | | | 12 | | CarloToso | | | | | | | | | 11 | | | | 11 | -| vors | 1 | 6 | 2 | 1 | | | | | | | | | 10 | | UberKluger | | | | | | 1 | 7 | 2 | | | | | 10 | -| matt9ucci | | | 2 | 5 | | | 2 | | 1 | | | | 10 | +| vors | 1 | 6 | 2 | 1 | | | | | | | | | 10 | | o-l-a-v | | | | | 1 | | 1 | | 4 | 2 | 2 | | 10 | -| ArmaanMcleod | | | | | | | | | 4 | 6 | | | 10 | +| matt9ucci | | | 2 | 5 | | | 2 | | 1 | | | | 10 | From 0e55d83db24561df8bcd630fc247f2440f31f991 Mon Sep 17 00:00:00 2001 From: Sean Wheeler Date: Thu, 6 Aug 2026 15:38:37 -0500 Subject: [PATCH 2/2] Remove link to Pester Book since it is out of print (#13202) --- ...add-credentials-to-powershell-functions.md | 73 ++++++++++--------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/reference/docs-conceptual/learn/deep-dives/add-credentials-to-powershell-functions.md b/reference/docs-conceptual/learn/deep-dives/add-credentials-to-powershell-functions.md index 9ccc883b82c..4d66c83aaa2 100644 --- a/reference/docs-conceptual/learn/deep-dives/add-credentials-to-powershell-functions.md +++ b/reference/docs-conceptual/learn/deep-dives/add-credentials-to-powershell-functions.md @@ -1,7 +1,7 @@ --- title: Add Credential support to PowerShell functions description: How to add credential parameters to your PowerShell scripts, functions, and cmdlets. -ms.date: 11/16/2022 +ms.date: 08/06/2026 ms.custom: - contributor-JoshDuffney - sfi-image-nochange @@ -9,9 +9,9 @@ ms.custom: # Add Credential support to PowerShell functions > [!NOTE] -> The [original version][original version] of this article appeared on the blog written by [@joshduffney][@joshduffney]. This -> article has been edited for inclusion on this site. The PowerShell team thanks Josh for sharing -> this content with us. Please check out his blog at [duffney.io][duffney.io]. +> The [original version][08] of this article appeared on the blog written by [@joshduffney][12]. +> This article has been edited for inclusion on this site. The PowerShell team thanks Josh for +> sharing this content with us. Please check out his blog at [duffney.io][09]. This article shows you how to add credential parameters to PowerShell functions and why you'd want to. A credential parameter is to allow you to run the function or cmdlet as a different user. The @@ -23,7 +23,7 @@ PowerShell session doesn't have that access already. ## Creating credential object -The [PSCredential][PSCredential] object represents a set of security credentials such as a user name and +The [PSCredential][03] object represents a set of security credentials such as a user name and password. The object can be passed as a parameter to a function that runs as the user account in that credential object. There are a few ways that you can create a credential object. The first way to create a credential object is to use the PowerShell cmdlet `Get-Credential`. When you run without @@ -103,16 +103,16 @@ things you can add to make it more robust. > [!TIP] > Some cmdlets that accept a credential parameter do not support > `[System.Management.Automation.PSCredential]::Empty` as they should. See the -> [Dealing with Legacy Cmdlets](#dealing-with-legacy-cmdlets) section for a workaround. +> [Dealing with Legacy Cmdlets][05] section for a workaround. ## Using credential parameters The following example demonstrates how to use credential parameters. This example shows a function -called `Set-RemoteRegistryValue`, which is out of [The Pester Book][The Pester Book]. This function defines the -credential parameter using the techniques describe in the previous section. The function calls -`Invoke-Command` using the `$Credential` variable created by the function. This allows you to change -the user who's running `Invoke-Command`. Because the default value of `$Credential` is an empty -credential, the function can run without providing credentials. +called `Set-RemoteRegistryValue`. This function defines the credential parameter using the +techniques describe in the previous section. The function calls `Invoke-Command` using the +`$Credential` variable created by the function. This allows you to change the user who's running +`Invoke-Command`. Because the default value of `$Credential` is an empty credential, the function +can run without providing credentials. ```powershell function Set-RemoteRegistryValue { @@ -140,7 +140,7 @@ Using `Get-Credential` in parentheses `()` at run time causes the `Get-Credentia are prompted for a username and password. You could use the **Credential** or **UserName** parameters of `Get-Credential` to pre-populate the username and domain. The following example uses a technique called splatting to pass parameters to the `Set-RemoteRegistryValue` function. For more -information about splatting, check out the [about_Splatting][about_Splatting] article. +information about splatting, check out the [about_Splatting][04] article. ```powershell $remoteKeyParams = @{ @@ -153,7 +153,7 @@ $remoteKeyParams = @{ Set-RemoteRegistryValue @remoteKeyParams -Credential (Get-Credential) ``` -![Get a credential at runtime](./media/add-credentials-to-powershell-functions/GetCredAtRunTime.gif) +![Get a credential at runtime][01] Using `(Get-Credential)` seems cumbersome. Normally, when you use the **Credential** parameter with only a username, the cmdlet automatically prompts for the password. The @@ -170,7 +170,7 @@ $remoteKeyParams = @{ Set-RemoteRegistryValue @remoteKeyParams -Credential duffney ``` -![Prompt for credentials](./media/add-credentials-to-powershell-functions/GetCredsPrompt.gif) +![Prompt for credentials][02] > [!NOTE] > To set the registry value shown, these examples assume you have the **Web Server** features of @@ -183,7 +183,7 @@ You can also populate a credential variable ahead of time and pass it to the **C parameter of `Set-RemoteRegistryValue` function. Use this method with Continuous Integration / Continuous Deployment (CI/CD) tools such as Jenkins, TeamCity, and Octopus Deploy. For an example using Jenkins, check out Hodge's blog post -[Automating with Jenkins and PowerShell on Windows - Part 2][Automating with Jenkins and PowerShell on Windows - Part 2]. +[Automating with Jenkins and PowerShell on Windows - Part 2][11]. This example uses the .NET method to create the credential object and a secure string to pass in the password. @@ -202,10 +202,9 @@ $remoteKeyParams = @{ Set-RemoteRegistryValue @remoteKeyParams -Credential $Cred ``` -For this example, the secure string is created using a clear text password. All of the -previously mentioned CI/CD have a secure method of providing that password at run time. When using -those tools, replace the plain text password with the variable defined within the CI/CD tool you -use. +For this example, the secure string is created using a clear text password. All of the previously +mentioned CI/CD have a secure method of providing that password at run time. When using those tools, +replace the plain text password with the variable defined within the CI/CD tool you use. ### Run without credentials @@ -264,7 +263,7 @@ function Set-RemoteRegistryValue { This example uses parameter splatting to call the legacy cmdlet. The `$Credential` object is conditionally added to the hash table for splatting and avoids the need to repeat the `Invoke-Command` script block. To learn more about splatting inside functions, see the -[Splatting Parameters Inside Advanced Functions][Splatting Parameters Inside Advanced Functions] blog post. +[Splatting Parameters Inside Advanced Functions][10] blog post. ```powershell function Set-RemoteRegistryValue { @@ -347,21 +346,23 @@ Get-AllSQLDatabases -SQLServer SQL01 -Credential $Credential Creating and storing credential objects securely can be difficult. The following resources can help you maintain PowerShell credentials. -- [BetterCredentials][BetterCredentials] -- [Azure Key Vault][Azure Key Vault] -- [Vault Project][Vault Project] -- [SecretManagement module][SecretManagement module] +- [BetterCredentials][13] +- [Azure Key Vault][06] +- [Vault Project][14] +- [SecretManagement module][07] -[original version]: https://duffney.io/addcredentialstopowershellfunctions/ -[@joshduffney]: https://twitter.com/joshduffney -[duffney.io]: https://duffney.io/posts/ -[BetterCredentials]: https://www.powershellgallery.com/packages/BetterCredentials/ -[Azure Key Vault]: https://azure.microsoft.com/services/key-vault/ -[Vault Project]: https://www.vaultproject.io/ -[Splatting Parameters Inside Advanced Functions]: https://duffney.io/Splatting-Parameters-Within-AdvancedFunctions -[Automating with Jenkins and PowerShell on Windows - Part 2]: https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-2 -[PSCredential]: /dotnet/api/system.management.automation.pscredential -[The Pester Book]: https://leanpub.com/the-pester-book -[about_Splatting]: /powershell/module/microsoft.powershell.core/about/about_splatting -[SecretManagement module]: https://devblogs.microsoft.com/powershell/secretmanagement-and-secretstore-updates/ +[01]: ./media/add-credentials-to-powershell-functions/GetCredAtRunTime.gif +[02]: ./media/add-credentials-to-powershell-functions/GetCredsPrompt.gif +[03]: /dotnet/api/system.management.automation.pscredential +[04]: /powershell/module/microsoft.powershell.core/about/about_splatting +[05]: #dealing-with-legacy-cmdlets +[06]: https://azure.microsoft.com/services/key-vault/ +[07]: https://devblogs.microsoft.com/powershell/secretmanagement-and-secretstore-updates/ +[08]: https://duffney.io/addcredentialstopowershellfunctions/ +[09]: https://duffney.io/posts/ +[10]: https://duffney.io/Splatting-Parameters-Within-AdvancedFunctions +[11]: https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-2 +[12]: https://twitter.com/joshduffney +[13]: https://www.powershellgallery.com/packages/BetterCredentials/ +[14]: https://www.vaultproject.io/