diff --git a/reference/5.1/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md b/reference/5.1/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md index 7e4d75e2b308..aa6467ae692f 100644 --- a/reference/5.1/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md +++ b/reference/5.1/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md @@ -1,7 +1,7 @@ --- description: Describes variables that store state information for PowerShell. These variables are created and maintained by PowerShell. Locale: en-US -ms.date: 01/18/2026 +ms.date: 02/10/2026 no-loc: [Reset, Current, Background, Blink, Bold, Foreground, Formatting, Hidden, Italic, Reset, Reverse, Underline, PSEventArgs, PSEventSubscriber, PSEdition] online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 @@ -583,6 +583,12 @@ from the originating session. To add data to the **ApplicationArguments** property, use the **ApplicationArguments** parameter of the `New-PSSessionOption` cmdlet. +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using +> this for security decisions could allow attackers to bypass authorization +> controls. Never use this data for trust decisions. +> [Validate all user input][78] when used for other application logic. + ### `$PSUICulture` Contains the name of the user interface (UI) culture that's configured in the @@ -1114,6 +1120,4 @@ Default (Current): End [75]: xref:System.Collections.IEnumerator.Current [76]: xref:System.Collections.IEnumerator.MoveNext [77]: xref:System.Collections.IEnumerator.Reset - - - +[78]: https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/ diff --git a/reference/5.1/Microsoft.PowerShell.Core/New-PSSessionOption.md b/reference/5.1/Microsoft.PowerShell.Core/New-PSSessionOption.md index e1fe0f07f77f..72a8cc352c84 100644 --- a/reference/5.1/Microsoft.PowerShell.Core/New-PSSessionOption.md +++ b/reference/5.1/Microsoft.PowerShell.Core/New-PSSessionOption.md @@ -2,7 +2,7 @@ external help file: System.Management.Automation.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Core -ms.date: 12/09/2022 +ms.date: 02/10/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 title: New-PSSessionOption @@ -267,14 +267,20 @@ The final `Invoke-Command` shows how the data might be used. ### -ApplicationArguments -Specifies a **PrimitiveDictionary** that is sent to the remote session. Commands and scripts in the +Specifies a **PrimitiveDictionary** that's sent to the remote session. Commands and scripts in the remote session, including startup scripts in the session configuration, can find this dictionary in the **ApplicationArguments** property of the `$PSSenderInfo` automatic variable. You can use this parameter to send data to the remote session. -For more information, see [about_Hash_Tables](about/about_Hash_Tables.md), +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using this for security +> decisions could allow attackers to bypass authorization controls. Never use this data for trust +> decisions. [Validate all user input](https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/) +> when used for other application logic. + +For more information, see [about_Hash_Tables](About/about_Hash_Tables.md), [about_Session_Configurations](About/about_Session_Configurations.md), and -[about_Automatic_Variables](about/about_Automatic_Variables.md). +[about_Automatic_Variables](About/about_Automatic_Variables.md). ```yaml Type: System.Management.Automation.PSPrimitiveDictionary diff --git a/reference/7.4/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md b/reference/7.4/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md index 02dbc226efb7..55b127c6ff49 100644 --- a/reference/7.4/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md +++ b/reference/7.4/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md @@ -1,7 +1,7 @@ --- description: Describes variables that store state information for PowerShell. These variables are created and maintained by PowerShell. Locale: en-US -ms.date: 01/18/2026 +ms.date: 02/10/2026 no-loc: [Reset, Current, Background, Blink, Bold, Foreground, Formatting, Hidden, Italic, Reset, Reverse, Underline, PSEventArgs, PSEventSubscriber, PSEdition] online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 @@ -619,6 +619,12 @@ from the originating session. To add data to the **ApplicationArguments** property, use the **ApplicationArguments** parameter of the `New-PSSessionOption` cmdlet. +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using +> this for security decisions could allow attackers to bypass authorization +> controls. Never use this data for trust decisions. +> [Validate all user input][78] when used for other application logic. + ### `$PSUICulture` Contains the name of the user interface (UI) culture that's configured in the @@ -1154,6 +1160,4 @@ Default (Current): End [75]: xref:System.Collections.IEnumerator.Current [76]: xref:System.Collections.IEnumerator.MoveNext [77]: xref:System.Collections.IEnumerator.Reset - - - +[78]: https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/ diff --git a/reference/7.4/Microsoft.PowerShell.Core/New-PSSessionOption.md b/reference/7.4/Microsoft.PowerShell.Core/New-PSSessionOption.md index 80020ae12a64..5c18dff801d5 100644 --- a/reference/7.4/Microsoft.PowerShell.Core/New-PSSessionOption.md +++ b/reference/7.4/Microsoft.PowerShell.Core/New-PSSessionOption.md @@ -2,7 +2,7 @@ external help file: System.Management.Automation.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Core -ms.date: 12/09/2022 +ms.date: 02/10/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 title: New-PSSessionOption @@ -267,14 +267,20 @@ The final `Invoke-Command` shows how the data might be used. ### -ApplicationArguments -Specifies a **PrimitiveDictionary** that is sent to the remote session. Commands and scripts in the +Specifies a **PrimitiveDictionary** that's sent to the remote session. Commands and scripts in the remote session, including startup scripts in the session configuration, can find this dictionary in the **ApplicationArguments** property of the `$PSSenderInfo` automatic variable. You can use this parameter to send data to the remote session. -For more information, see [about_Hash_Tables](about/about_Hash_Tables.md), +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using this for security +> decisions could allow attackers to bypass authorization controls. Never use this data for trust +> decisions. [Validate all user input](https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/) +> when used for other application logic. + +For more information, see [about_Hash_Tables](About/about_Hash_Tables.md), [about_Session_Configurations](About/about_Session_Configurations.md), and -[about_Automatic_Variables](about/about_Automatic_Variables.md). +[about_Automatic_Variables](About/about_Automatic_Variables.md). ```yaml Type: System.Management.Automation.PSPrimitiveDictionary diff --git a/reference/7.5/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md b/reference/7.5/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md index 70ad43465fcd..66a95cdeb02c 100644 --- a/reference/7.5/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md +++ b/reference/7.5/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md @@ -1,7 +1,7 @@ --- description: Describes variables that store state information for PowerShell. These variables are created and maintained by PowerShell. Locale: en-US -ms.date: 01/18/2026 +ms.date: 02/10/2026 no-loc: [Reset, Current, Background, Blink, Bold, Foreground, Formatting, Hidden, Italic, Reset, Reverse, Underline, PSEventArgs, PSEventSubscriber, PSEdition] online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 @@ -619,6 +619,12 @@ from the originating session. To add data to the **ApplicationArguments** property, use the **ApplicationArguments** parameter of the `New-PSSessionOption` cmdlet. +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using +> this for security decisions could allow attackers to bypass authorization +> controls. Never use this data for trust decisions. +> [Validate all user input][78] when used for other application logic. + ### `$PSUICulture` Contains the name of the user interface (UI) culture that's configured in the @@ -1154,4 +1160,4 @@ Default (Current): End [75]: xref:System.Collections.IEnumerator.Current [76]: xref:System.Collections.IEnumerator.MoveNext [77]: xref:System.Collections.IEnumerator.Reset - +[78]: https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/ diff --git a/reference/7.5/Microsoft.PowerShell.Core/New-PSSessionOption.md b/reference/7.5/Microsoft.PowerShell.Core/New-PSSessionOption.md index b2f19594dea2..57ea39466b69 100644 --- a/reference/7.5/Microsoft.PowerShell.Core/New-PSSessionOption.md +++ b/reference/7.5/Microsoft.PowerShell.Core/New-PSSessionOption.md @@ -2,7 +2,7 @@ external help file: System.Management.Automation.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Core -ms.date: 12/09/2022 +ms.date: 02/10/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 title: New-PSSessionOption @@ -267,11 +267,17 @@ The final `Invoke-Command` shows how the data might be used. ### -ApplicationArguments -Specifies a **PrimitiveDictionary** that is sent to the remote session. Commands and scripts in the +Specifies a **PrimitiveDictionary** that's sent to the remote session. Commands and scripts in the remote session, including startup scripts in the session configuration, can find this dictionary in the **ApplicationArguments** property of the `$PSSenderInfo` automatic variable. You can use this parameter to send data to the remote session. +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using this for security +> decisions could allow attackers to bypass authorization controls. Never use this data for trust +> decisions. [Validate all user input](https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/) +> when used for other application logic. + For more information, see [about_Hash_Tables](About/about_Hash_Tables.md), [about_Session_Configurations](About/about_Session_Configurations.md), and [about_Automatic_Variables](About/about_Automatic_Variables.md). diff --git a/reference/7.6/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md b/reference/7.6/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md index 179dfefa6f37..6abf3a21a87b 100644 --- a/reference/7.6/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md +++ b/reference/7.6/Microsoft.PowerShell.Core/About/about_Automatic_Variables.md @@ -1,7 +1,7 @@ --- description: Describes variables that store state information for PowerShell. These variables are created and maintained by PowerShell. Locale: en-US -ms.date: 01/18/2026 +ms.date: 02/10/2026 no-loc: [Reset, Current, Background, Blink, Bold, Foreground, Formatting, Hidden, Italic, Reset, Reverse, Underline, PSEventArgs, PSEventSubscriber, PSEdition] online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 @@ -619,6 +619,12 @@ from the originating session. To add data to the **ApplicationArguments** property, use the **ApplicationArguments** parameter of the `New-PSSessionOption` cmdlet. +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using +> this for security decisions could allow attackers to bypass authorization +> controls. Never use this data for trust decisions. +> [Validate all user input][78] when used for other application logic. + ### `$PSUICulture` Contains the name of the user interface (UI) culture that's configured in the @@ -1154,4 +1160,4 @@ Default (Current): End [75]: xref:System.Collections.IEnumerator.Current [76]: xref:System.Collections.IEnumerator.MoveNext [77]: xref:System.Collections.IEnumerator.Reset - +[78]: https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/ diff --git a/reference/7.6/Microsoft.PowerShell.Core/New-PSSessionOption.md b/reference/7.6/Microsoft.PowerShell.Core/New-PSSessionOption.md index 0773f2a32dee..097c9a7645bc 100644 --- a/reference/7.6/Microsoft.PowerShell.Core/New-PSSessionOption.md +++ b/reference/7.6/Microsoft.PowerShell.Core/New-PSSessionOption.md @@ -2,7 +2,7 @@ external help file: System.Management.Automation.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Core -ms.date: 12/09/2022 +ms.date: 02/10/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 title: New-PSSessionOption @@ -267,14 +267,20 @@ The final `Invoke-Command` shows how the data might be used. ### -ApplicationArguments -Specifies a **PrimitiveDictionary** that is sent to the remote session. Commands and scripts in the +Specifies a **PrimitiveDictionary** that's sent to the remote session. Commands and scripts in the remote session, including startup scripts in the session configuration, can find this dictionary in the **ApplicationArguments** property of the `$PSSenderInfo` automatic variable. You can use this parameter to send data to the remote session. -For more information, see [about_Hash_Tables](about/about_Hash_Tables.md), +> [!IMPORTANT] +> Since this property contains data explicitly provided by the client, using this for security +> decisions could allow attackers to bypass authorization controls. Never use this data for trust +> decisions. [Validate all user input](https://top10proactive.owasp.org/archive/2024/the-top-10/c3-validate-input-and-handle-exceptions/) +> when used for other application logic. + +For more information, see [about_Hash_Tables](About/about_Hash_Tables.md), [about_Session_Configurations](About/about_Session_Configurations.md), and -[about_Automatic_Variables](about/about_Automatic_Variables.md). +[about_Automatic_Variables](About/about_Automatic_Variables.md). ```yaml Type: System.Management.Automation.PSPrimitiveDictionary diff --git a/reference/docs-conceptual/windows-powershell/update-notification-message.yml b/reference/docs-conceptual/windows-powershell/update-notification-message.yml index ad53ea4fa7b6..60144608cfbc 100644 --- a/reference/docs-conceptual/windows-powershell/update-notification-message.yml +++ b/reference/docs-conceptual/windows-powershell/update-notification-message.yml @@ -2,11 +2,11 @@ metadata: description: >- This article explains the intent of the update notification message in Windows PowerShell. - ms.date: 01/22/2026 + ms.date: 02/10/2026 ms.topic: faq - title: Windows PowerShell update message + title: Windows PowerShell update message FAQ -title: Windows PowerShell update message +title: Windows PowerShell update message FAQ summary: | When you start Windows PowerShell you see a message that tells you to install the latest version of PowerShell along with a URL. @@ -28,13 +28,14 @@ sections: answer: | The `aka.ms` link takes you to this page. If you want to install the latest version of PowerShell, follow the instructions in - [Install PowerShell on Windows](../install/install-powershell-on-windows.md). + [**Install PowerShell on Windows**](../install/install-powershell-on-windows.md). - question: But I installed PowerShell 7, why am I still seeing this message? answer: | - You always get the message when you run Windows PowerShell 5.1. PowerShell 7 doesn't - replace Windows PowerShell 5.1. PowerShell 7 installs side-by-side. You can run either - version. + **You always get the message when you run Windows PowerShell 5.1.** + + PowerShell 7 doesn't replace Windows PowerShell 5.1. PowerShell 7 installs side-by-side. + You can run either version. - question: Can I disable the message? answer: No. There is no way to disable the message. @@ -48,8 +49,10 @@ sections: - question: My install of Windows is up-to-date. Why am I still getting this message? answer: | - This message appears every time you start Windows PowerShell 5.1. It doesn't mean that - Windows PowerShell 5.1 is not up-to-date. It means that you are not running PowerShell 7. + **This message appears every time you start Windows PowerShell 5.1.** + + It doesn't mean that Windows PowerShell 5.1 is not up-to-date. **It means that you didn't + run PowerShell 7.** - question: Why would I want to install PowerShell 7? answer: |