Skip to content

Commit 8ff14d8

Browse files
sdwheelerOscarFalck17Copilot
authored
Publish to live (#12457)
* Update lifecycle table (#12455) * Update hashtable documentation with cloning note (#12454) * Update hashtable documentation with cloning note Added note about cloning hashtables with a single key and provided an example using PowerShell. * Update reference/docs-conceptual/learn/deep-dives/everything-about-hashtable.md Co-authored-by: Copilot <[email protected]> * Editorial changes --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Sean Wheeler <[email protected]> * Update broken link (#12456) --------- Co-authored-by: OscarFalck17 <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent 88d9ffa commit 8ff14d8

File tree

3 files changed

+65
-43
lines changed

3 files changed

+65
-43
lines changed

reference/5.1/PSWorkflow/About/about_Workflows.md

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@ Provides a brief introduction to the PowerShell Workflow feature.
1616
## Long description
1717

1818
PowerShell Workflow brings the benefits of the
19-
[Windows Workflow Foundation](/dotnet/framework/windows-workflow-foundation) to
20-
PowerShell and enables you to write and run workflows.
19+
[Windows Workflow Foundation][05] to PowerShell and enables you to write and
20+
run workflows.
2121

2222
PowerShell Workflow was introduced in PowerShell 3.0 and the module is
2323
available up to PowerShell 5.1. For more information about PowerShell Workflow,
24-
see the [Workflows Guide](/previous-versions/powershell/scripting/components/workflows-guide)
25-
and [Writing a Windows PowerShell Workflow](/previous-versions/powershell/scripting/developer/workflow/writing-a-windows-powershell-workflow).
24+
see the [Workflows Guide][07] and [Writing a Windows PowerShell Workflow][08].
2625

2726
## About workflows
2827

@@ -34,7 +33,7 @@ environments.
3433
Workflows can be written in XAML, the language used in Windows Workflow
3534
Foundation, or in the PowerShell language. Workflows are typically packaged in
3635
modules and include help topics. For more information, see
37-
[XAML Overview (WPF)](/dotnet/framework/wpf/advanced/xaml-overview-wpf).
36+
[XAML Overview (WPF)][06].
3837

3938
Workflows are critical in an IT environment because they can survive reboots
4039
and recover automatically from common failures. You can disconnect and
@@ -65,7 +64,7 @@ A PowerShell Workflow configuration consists of the following elements:
6564
The workflow session isn't required, but is recommended. **PSSessions** can
6665
take advantage of the robust recovery and Disconnected Sessions features of
6766
PowerShell to recover disconnected workflow sessions. For more information, see
68-
[about_Remote_Disconnected_Sessions](../../Microsoft.PowerShell.Core/About/about_Remote_Disconnected_Sessions.md)
67+
[about_Remote_Disconnected_Sessions][03]
6968

7069
Because the client computer and the computer on which the workflow session runs
7170
can be managed nodes, you can run a workflow on a single computer that fulfills
@@ -122,11 +121,9 @@ To run a workflow, use the following procedure.
122121
Enable-PSRemoting -Force
123122
```
124123

125-
You can enable remoting by using the **Turn on Script Execution** Group Policy
126-
setting. For more information, see
127-
[about_Group_Policy_Settings](../../Microsoft.PowerShell.Core/About/about_Group_Policy_Settings.md)
128-
and
129-
[about_Execution_Policies](../../Microsoft.PowerShell.Core/About/about_Execution_Policies.md).
124+
You can enable remoting by using the **Turn on Script Execution** Group
125+
Policy setting. For more information, see [about_Group_Policy_Settings][02]
126+
and [about_Execution_Policies][01].
130127

131128
1. Use the `New-PSWorkflowSession` or `New-PSSession` cmdlets to create the
132129
workflow session.
@@ -136,8 +133,8 @@ To run a workflow, use the following procedure.
136133
computer. This session configuration includes scripts, type and formatting
137134
files, and options that are designed for workflows.
138135

139-
Or, use the `New-PSSession` cmdlet. Use the **ConfigurationName** parameter to
140-
specify the **Microsoft.PowerShell.Workflow** session configuration. This
136+
Or, use the `New-PSSession` cmdlet. Use the **ConfigurationName** parameter
137+
to specify the **Microsoft.PowerShell.Workflow** session configuration. This
141138
command is the same as using the `New-PSWorkflowSession` cmdlet.
142139

143140
An alternative is to use the `New-PSSession` cmdlet. Use the
@@ -160,10 +157,10 @@ To run a workflow, use the following procedure.
160157
$ws = New-PSWorkflowSession @newPSWorkflowSessionSplat
161158
```
162159

163-
If you are an Administrator on the workflow session computer, you can use the
164-
`New-PSWorkflowExecutionOption` cmdlet to create custom option settings for the
165-
workflow session configuration. And, use the `Set-PSSessionConfiguration`
166-
cmdlet to change the session configuration.
160+
If you are an Administrator on the workflow session computer, you can use
161+
the `New-PSWorkflowExecutionOption` cmdlet to create custom option settings
162+
for the workflow session configuration. And, use the
163+
`Set-PSSessionConfiguration` cmdlet to change the session configuration.
167164

168165
```powershell
169166
$newPSWorkflowExecutionOptionSplat = @{
@@ -204,13 +201,13 @@ To run a workflow, use the following procedure.
204201
```
205202

206203
The following example runs the `Test-Workflow` on hundreds of computers. The
207-
`Get-Content` cmdlet gets the computer names from a text file and saves them in
208-
the `$Servers` variable on the local computer.
204+
`Get-Content` cmdlet gets the computer names from a text file and saves them
205+
in the `$Servers` variable on the local computer.
209206

210207
`Invoke-Command` uses the `Using:` scope modifier to define the `$Servers`
211208
variable in the local session. For more information about the `Using:` scope
212209
modifier, see
213-
[about_Remote_Variables](../../Microsoft.PowerShell.Core/About/about_Remote_Variables.md).
210+
[about_Remote_Variables][04].
214211

215212
```powershell
216213
$Servers = Get-Content Servers.txt
@@ -291,12 +288,26 @@ Some workflow common parameters are unique to workflows, such as the
291288
**PSParameterCollection** parameter that lets you specify different workflow
292289
common parameter values for different remote nodes. For a list and description
293290
of the workflow common parameters, see
294-
[about_WorkflowCommonParameters](about_WorkflowCommonParameters.md).
291+
[about_WorkflowCommonParameters][09].
295292

296293
## See also
297294

298-
- [Invoke-AsWorkflow](xref:PSWorkflowUtility.Invoke-AsWorkflow)
299-
- [New-PSSession](xref:Microsoft.PowerShell.Core.New-PSSession)
300-
- [PSWorkflow](xref:PSWorkflow) cmdlets
301-
- [Workflows Guide](/previous-versions/powershell/scripting/components/workflows-guide)
302-
- [Writing a Windows PowerShell Workflow](/previous-versions/powershell/scripting/developer/workflow/writing-a-windows-powershell-workflow)
295+
- [Invoke-AsWorkflow][12]
296+
- [New-PSSession][10]
297+
- [PSWorkflow][11] cmdlets
298+
- [Workflows Guide][07]
299+
- [Writing a Windows PowerShell Workflow][08]
300+
301+
<!-- link references -->
302+
[01]: ../../Microsoft.PowerShell.Core/About/about_Execution_Policies.md
303+
[02]: ../../Microsoft.PowerShell.Core/About/about_Group_Policy_Settings.md
304+
[03]: ../../Microsoft.PowerShell.Core/About/about_Remote_Disconnected_Sessions.md
305+
[04]: ../../Microsoft.PowerShell.Core/About/about_Remote_Variables.md
306+
[05]: /dotnet/framework/windows-workflow-foundation
307+
[06]: /dotnet/desktop/wpf/xaml
308+
[07]: /previous-versions/powershell/scripting/components/workflows-guide
309+
[08]: /previous-versions/powershell/scripting/developer/workflow/writing-a-windows-powershell-workflow
310+
[09]: about_WorkflowCommonParameters.md
311+
[10]: xref:Microsoft.PowerShell.Core.New-PSSession
312+
[11]: xref:PSWorkflow
313+
[12]: xref:PSWorkflowUtility.Invoke-AsWorkflow

reference/docs-conceptual/install/PowerShell-Support-Lifecycle.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
description: Details the policies governing support for PowerShell.
3-
ms.date: 02/25/2025
3+
ms.date: 10/22/2025
44
ms.topic: lifecycle
55
title: PowerShell Support Lifecycle
66
---
@@ -15,7 +15,7 @@ PowerShell follows the [Microsoft Modern Lifecycle Policy][02]. Support dates fo
1515
[.NET Support Policy][06]. In this servicing approach, customers can choose Long Term Support (LTS)
1616
releases or current releases.
1717

18-
An **LTS** release of PowerShell is built on an **LTS** release of .NET. Updates to an **LTS**
18+
An **LTS** release of PowerShell is an **LTS** release of .NET. Updates to an **LTS**
1919
release only contain critical security updates and servicing fixes that are designed to minimize
2020
impact on existing workloads.
2121

@@ -110,23 +110,23 @@ guarantees of responsiveness or fixes.
110110
The PowerShell support lifecycle follows the [support lifecycle of .NET][06]. The following table
111111
lists the end-of-support dates for the current versions of PowerShell:
112112

113-
| Version | Release Date | End-of-support | .NET Version |
114-
| ------------------------ | :----------: | :------------: | ------------------------- |
115-
| PowerShell 7.6 (preview) | Future date | Future date | Built on [.NET 9.0.0][14] |
116-
| PowerShell 7.5 | 23-Jan-2025 | 12-May-2026 | Built on [.NET 9.0.0][14] |
117-
| PowerShell 7.4 (LTS) | 16-Nov-2023 | 10-Nov-2026 | Built on [.NET 8.0.0][13] |
113+
| Version | Release Date | End-of-support | .NET Version |
114+
| ------------------------ | :----------: | :------------: | --------------- |
115+
| PowerShell 7.6 (preview) | Future date | Future date | [.NET 10.0][19] |
116+
| PowerShell 7.5 | 23-Jan-2025 | 12-May-2026 | [.NET 9.0][14] |
117+
| PowerShell 7.4 (LTS) | 16-Nov-2023 | 10-Nov-2026 | [.NET 8.0][13] |
118118

119119
The following table lists the end-of-support dates for retired versions of PowerShell:
120120

121-
| Version | Release Date | End-of-support | .NET Version |
122-
| -------------------- | :----------: | :------------: | ---------------------------- |
123-
| PowerShell 7.3 | 09-Nov-2022 | 08-May-2024 | Built on [.NET 7.0][12] |
124-
| PowerShell 7.2 (LTS) | 08-Nov-2021 | 08-Nov-2024 | Built on [.NET 6.0][11] |
125-
| PowerShell 7.1 | 11-Nov-2020 | 08-May-2022 | Built on [.NET 5.0][10] |
126-
| PowerShell 7.0 (LTS) | 04-Mar-2020 | 03-Dec-2022 | Built on [.NET Core 3.1][09] |
127-
| PowerShell 6.2 | 29-Mar-2019 | 04-Sep-2020 | Built on [.NET Core 2.1][08] |
128-
| PowerShell 6.1 | 13-Sep-2018 | 28-Sep-2019 | Built on [.NET Core 2.1][08] |
129-
| PowerShell 6.0 | 20-Jan-2018 | 13-Feb-2019 | Built on [.NET Core 2.0][07] |
121+
| Version | Release Date | End-of-support | .NET Version |
122+
| -------------------- | :----------: | :------------: | ------------------- |
123+
| PowerShell 7.3 | 09-Nov-2022 | 08-May-2024 | [.NET 7.0][12] |
124+
| PowerShell 7.2 (LTS) | 08-Nov-2021 | 08-Nov-2024 | [.NET 6.0][11] |
125+
| PowerShell 7.1 | 11-Nov-2020 | 08-May-2022 | [.NET 5.0][10] |
126+
| PowerShell 7.0 (LTS) | 04-Mar-2020 | 03-Dec-2022 | [.NET Core 3.1][09] |
127+
| PowerShell 6.2 | 29-Mar-2019 | 04-Sep-2020 | [.NET Core 2.1][08] |
128+
| PowerShell 6.1 | 13-Sep-2018 | 28-Sep-2019 | [.NET Core 2.1][08] |
129+
| PowerShell 6.0 | 20-Jan-2018 | 13-Feb-2019 | [.NET Core 2.0][07] |
130130

131131
## Windows PowerShell release history
132132

@@ -168,3 +168,4 @@ you're running:
168168
[16]: https://github.com/PowerShell/PowerShell/issues/new/choose
169169
[17]: https://support.microsoft.com/contactus
170170
[18]: https://support.serviceshub.microsoft.com/
171+
[19]: https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md

reference/docs-conceptual/learn/deep-dives/everything-about-hashtable.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Hashtables are really important in PowerShell so it's good to have a solid understanding of them.
33
ms.custom: contributor-KevinMarquette
4-
ms.date: 06/25/2023
4+
ms.date: 10/22/2025
55
title: Everything you wanted to know about hashtables
66
---
77
# Everything you wanted to know about hashtables
@@ -269,6 +269,16 @@ $environments.Keys.Clone() | ForEach-Object {
269269
}
270270
```
271271

272+
> [!NOTE]
273+
> You can't clone a hashtable containing a single key. PowerShell throws an error. Instead, you
274+
> convert the **Keys** property to an array, then iterate over the array.
275+
276+
```powershell
277+
@($environments.Keys) | ForEach-Object {
278+
$environments[$_] = 'SrvDev03'
279+
}
280+
```
281+
272282
## Hashtable as a collection of properties
273283

274284
So far the type of objects we placed in our hashtable were all the same type of object. I used ages

0 commit comments

Comments
 (0)