Windows PowerShell and PowerShell 7 compatibility
Microsoft's edit ·
Microsoft's commit message in MicrosoftDocs/PowerShell-Docs · commit eb2177e · +113 −125 lines · also on GitHub
⋯ 21 unchanged lines
2222
PowerShell. For a detailed discussion of changes between versions and the addition of new features,
2323
see the **What's New** articles for each version.
2424
25
−- [What's new in PowerShell 7.3][WhatsNew73]
26
−- [What's new in PowerShell 7.2][WhatsNew72]
27
−- [What's new in PowerShell 7.1][WhatsNew71]
28
−- [What's new in PowerShell 7.0][WhatsNew70]
29
−- [What's new in PowerShell 6.x][WhatsNew6x]
25
+- [What's new in PowerShell 7.3][34]
26
+- [What's new in PowerShell 7.2][33]
27
+- [What's new in PowerShell 7.1][27]
28
+- [What's new in PowerShell 7.0][32]
29
+- [What's new in PowerShell 6.x][28]
3030
3131
## .NET Framework vs .NET Core
3232
⋯ 2 unchanged lines
3535
framework types and methods. As a result, scripts that run on Windows may not run on non-Windows
3636
platforms because of the differences in the frameworks. For more information about changes in .NET
3737
Core, see
38
−[Breaking changes for migration from .NET Framework to .NET Core][fxcore].
38
+[Breaking changes for migration from .NET Framework to .NET Core][03].
3939
4040
Each new release of PowerShell is built on a newer version of .NET. There can be breaking changes in
4141
.NET that affect PowerShell.
⋯ 6 unchanged lines
4848
- PowerShell 6.1 - Built on .NET Core 2.1
4949
- PowerShell 6.0 - Built on .NET Core 2.0
5050
51
−With the advent of [.NET Standard 2.0][NETStd2], PowerShell can load many traditional Windows
51
+With the advent of [.NET Standard 2.0][30], PowerShell can load many traditional Windows
5252
PowerShell modules without modification. Additionally, PowerShell 7 includes a Windows PowerShell
5353
Compatibility feature that allows you to use Windows PowerShell modules that still require the full
5454
framework.
5555
5656
For more information see:
5757
58
−- [about_Windows_PowerShell_Compatibility][about-WinCompat]
59
−- [PowerShell 7 module compatibility][mod-compat]
60
−
61
−[!INCLUDE [Product terminology](../../includes/product-terms.md)]
58
+- [about_Windows_PowerShell_Compatibility][09]
59
+- [PowerShell 7 module compatibility][29]
6260
6361
## Modules no longer shipped with PowerShell
6462
⋯ 9 unchanged lines
7472
7573
### PowerShell Workflow
7674
77
−[PowerShell Workflow][workflow] is a feature in Windows PowerShell that builds on top of
78
−[Windows Workflow Foundation (WF)][workflow-foundation] that enables the creation of robust runbooks
75
+[PowerShell Workflow][26] is a feature in Windows PowerShell that builds on top of
76
+[Windows Workflow Foundation (WF)][04] that enables the creation of robust runbooks
7977
for long-running or parallelized tasks.
8078
8179
Due to the lack of support for Windows Workflow Foundation in .NET Core, we removed PowerShell
⋯ 130 unchanged lines
212210
213211
Beginning with PowerShell 7.2, the PSDesiredStateConfiguration module has been removed from
214212
PowerShell and has been published to the PowerShell Gallery. For more information, see the
215
−[announcement][PSDSC-announce] in the PowerShell Team blog.
213
+[announcement][31] in the PowerShell Team blog.
216214
217215
## PowerShell executable changes
218216
⋯ 31 unchanged lines
250248
251249
For Windows, a new switch parameter **UseWindowsPowerShell** is added to `Import-Module`. This
252250
switch creates a proxy module in PowerShell 7 that uses a local Windows PowerShell process to
253
−implicitly run any cmdlets contained in that module. For more information, see
254
−[Import-Module][Import-Module].
251
+implicitly run any cmdlets contained in that module. For more information, see [Import-Module][14].
255252
256253
For more information on which Microsoft modules work with PowerShell 7.0, see the
257
−[Module Compatibility Table][mod-compat].
254
+[Module Compatibility Table][29].
258255
259256
### Microsoft Update support for Windows
260257
⋯ 21 unchanged lines
282279
283280
### Custom snap-ins
284281
285
−[PowerShell snap-ins][snapin] are a predecessor to PowerShell modules that do not have widespread
282
+[PowerShell snap-ins][07] are a predecessor to PowerShell modules that do not have widespread
286283
adoption in the PowerShell community.
287284
288285
Due to the complexity of supporting snap-ins and their lack of usage in the community, we no longer
⋯ 1 unchanged line
290287
291288
### Experimental feature flags
292289
293
−PowerShell 6.2 enabled support for [Experimental Features][exp]. This allows PowerShell developers
294
−to deliver new features and get feedback before the design is complete. This way we avoid making
290
+PowerShell 6.2 enabled support for [Experimental Features][06]. This allows PowerShell developers to
291
+deliver new features and get feedback before the design is complete. This way we avoid making
295292
breaking changes as the design evolves.
296293
297294
Use `Get-ExperimentalFeature` to get a list of available experimental features. You can enable or
⋯ 17 unchanged lines
315312
316313
### Fix `$?` to not be `$false` when native command writes to `stderr`
317314
318
−`$?` is not set to `$false` when native command writes to `stderr`. It is common for native
319
−commands to write to `stderr` without intending to indicate a failure. `$?` is set to `$false` only
320
−when the native command has a non-zero exit code.
315
+`$?` is not set to `$false` when native command writes to `stderr`. It is common for native commands
316
+to write to `stderr` without intending to indicate a failure. `$?` is set to `$false` only when the
317
+native command has a non-zero exit code.
321318
322319
### Make `$ErrorActionPreference` not affect `stderr` output of native commands
323320
⋯ 9 unchanged lines
333330
334331
### Unify cmdlets with parameter `-Encoding` to be of type `System.Text.Encoding`
335332
336
−The `-Encoding` value `Byte` has been removed from the filesystem provider cmdlets. A new
337
−parameter, `-AsByteStream`, is now used to specify that a byte stream is required as input or that
338
−the output is a stream of bytes.
333
+The `-Encoding` value `Byte` has been removed from the filesystem provider cmdlets. A new parameter,
334
+`-AsByteStream`, is now used to specify that a byte stream is required as input or that the output
335
+is a stream of bytes.
339336
340337
### Change `New-ModuleManifest` encoding to `UTF8NoBOM` on non-Windows platforms
341338
⋯ 9 unchanged lines
351348
### `-Verbose` and `-Debug` no longer overrides `$ErrorActionPreference`
352349
353350
Previously, if `-Verbose` or `-Debug` were specified, it overrode the behavior of
354
−`$ErrorActionPreference`. With this change, `-Verbose` and `-Debug` no longer affect the behavior
355
−of `$ErrorActionPreference`.
351
+`$ErrorActionPreference`. With this change, `-Verbose` and `-Debug` no longer affect the behavior of
352
+`$ErrorActionPreference`.
356353
357354
Also, the `-Debug` parameter sets `$DebugPreference` to **Continue** instead of **Inquire**.
358355
⋯ 44 unchanged lines
403400
404401
### Null-coalescing operator `??`
405402
406
−The null-coalescing operator `??` returns the value of its left-hand operand if
407
−it isn't null. Otherwise, it evaluates the right-hand operand and returns its
408
−result. The `??` operator doesn't evaluate its right-hand operand if the
409
−left-hand operand evaluates to non-null.
403
+The null-coalescing operator `??` returns the value of its left-hand operand if it isn't null.
404
+Otherwise, it evaluates the right-hand operand and returns its result. The `??` operator doesn't
405
+evaluate its right-hand operand if the left-hand operand evaluates to non-null.
410406
411407
```powershell
412408
$x = $null
⋯ 17 unchanged lines
430426
431427
### Null-coalescing assignment operator `??=`
432428
433
−The null-coalescing assignment operator `??=` assigns the value of its
434
−right-hand operand to its left-hand operand only if the left-hand operand
435
−evaluates to null. The `??=` operator doesn't evaluate its right-hand operand
436
−if the left-hand operand evaluates to non-null.
429
+The null-coalescing assignment operator `??=` assigns the value of its right-hand operand to its
430
+left-hand operand only if the left-hand operand evaluates to null. The `??=` operator doesn't
431
+evaluate its right-hand operand if the left-hand operand evaluates to non-null.
437432
438433
```powershell
439434
$x = $null
⋯ 21 unchanged lines
461456
> [!NOTE]
462457
> This feature was moved from experimental to mainstream in PowerShell 7.1.
463458
464
−A null-conditional operator applies a member access, `?.`, or element access,
465
−`?[]`, operation to its operand only if that operand evaluates to non-null;
466
−otherwise, it returns null.
459
+A null-conditional operator applies a member access, `?.`, or element access, `?[]`, operation to
460
+its operand only if that operand evaluates to non-null; otherwise, it returns null.
467461
468
−Since PowerShell allows `?` to be part of the variable name, formal
469
−specification of the variable name is required for using these operators. So it
470
−is required to use `{}` around the variable names like `${a}` or when `?` is
471
−part of the variable name `${a?}`.
462
+Since PowerShell allows `?` to be part of the variable name, formal specification of the variable
463
+name is required for using these operators. So it is required to use `{}` around the variable names
464
+like `${a}` or when `?` is part of the variable name `${a?}`.
472465
473466
In the following example, the value of **PropName** is returned.
474467
⋯ 33 unchanged lines
508501
```
509502
510503
> [!NOTE]
511
−> The variable name syntax of `${<name>}` should not be confused with the `$()`
512
−> subexpression operator. For more information, see Variable name section of
513
−> [about_Variables][about_Variables].
504
+> The variable name syntax of `${<name>}` should not be confused with the `$()` subexpression
505
+> operator. For more information, see Variable name section of [about_Variables][08].
514506
515507
### Added `&` operator for job control
516508
⋯ 72 unchanged lines
589581
590582
PowerShell 7.1 is built on .NET 5.0, which introduced the following breaking change:
591583
592
−- [Behavior changes when comparing strings on .NET 5+][NET5-strings]
584
+- [Behavior changes when comparing strings on .NET 5+][05]
593585
594586
As of .NET 5.0, culture invariant string comparisons ignore non-printing control characters.
595587
⋯ 12 unchanged lines
608600
609601
### New Get-Uptime cmdlet
610602
611
−The [Get-Uptime][Get-Uptime] cmdlet returns the time elapsed since the last boot of the operating
612
−system. The cmdlet was introduced in PowerShell 6.0.
603
+The [Get-Uptime][19] cmdlet returns the time elapsed since the last boot of the operating system.
604
+The cmdlet was introduced in PowerShell 6.0.
613605
614606
### New Remove-Alias cmdlet
615607
616
−The [Remove-Alias][Remove-Alias] cmdlet removes an alias from the current PowerShell session. The
617
−cmdlet was introduced in PowerShell 6.0.
608
+The [Remove-Alias][21] cmdlet removes an alias from the current PowerShell session. The cmdlet was
609
+introduced in PowerShell 6.0.
618610
619611
### New cmdlet Remove-Service
620612
621
−The [Remove-Service][Remove-Service] cmdlet removes a Windows service in the registry and in the service database.
622
−The `Remove-Service` cmdlet was introduced in PowerShell 6.0.
613
+The [Remove-Service][15] cmdlet removes a Windows service in the registry and in the service
614
+database. The `Remove-Service` cmdlet was introduced in PowerShell 6.0.
623615
624616
### New Markdown cmdlets
625617
⋯ 2 unchanged lines
628620
629621
The following cmdlets were added in PowerShell 6.1:
630622
631
−- [ConvertFrom-Markdown][ConvertFrom-Markdown] - Convert the contents of a string or a file to a
632
− **MarkdownInfo** object.
633
−- [Get-MarkdownOption][Get-MarkdownOption] - Returns the current colors and styles used for
634
− rendering Markdown content in the console.
635
−- [Set-MarkdownOption][Set-MarkdownOption] - Sets the colors and styles used for rendering Markdown
623
+- [ConvertFrom-Markdown][16] - Convert the contents of a string or a file to a **MarkdownInfo**
624
+ object.
625
+- [Get-MarkdownOption][18] - Returns the current colors and styles used for rendering Markdown
636626
content in the console.
637
−- [Show-Markdown][Show-Markdown] - Displays Markdown content in the console or as HTML
627
+- [Set-MarkdownOption][22] - Sets the colors and styles used for rendering Markdown content in the
628
+ console.
629
+- [Show-Markdown][23] - Displays Markdown content in the console or as HTML
638630
639631
### New Test-Json cmdlet
640632
641
−The [Test-Json][Test-Json] cmdlet tests whether a string is a valid JavaScript Object Notation (JSON) document
642
−and can optionally verify that JSON document against a provided schema.
633
+The [Test-Json][24] cmdlet tests whether a string is a valid JavaScript Object Notation (JSON)
634
+document and can optionally verify that JSON document against a provided schema.
643635
644636
This cmdlet was introduced in PowerShell 6.1
645637
⋯ 1 unchanged line
647639
648640
The following cmdlets were added in PowerShell 6.2 to support Experimental Features.
649641
650
−- [Disable-ExperimentalFeature][Disable-ExperimentalFeature]
651
−- [Enable-ExperimentalFeature][Enable-ExperimentalFeature]
652
−- [Get-ExperimentalFeature][Get-ExperimentalFeature]
642
+- [Disable-ExperimentalFeature][10]
643
+- [Enable-ExperimentalFeature][11]
644
+- [Get-ExperimentalFeature][13]
653645
654646
### New Join-String cmdlet
655647
656
−The [Join-String][Join-String] cmdlet combines objects from the pipeline into a single string. This cmdlet was
657
−added in PowerShell 6.2.
648
+The [Join-String][20] cmdlet combines objects from the pipeline into a single string. This cmdlet
649
+was added in PowerShell 6.2.
658650
659651
### New view ConciseView and cmdlet Get-Error
660652
⋯ 26 unchanged lines
687679
```
688680
689681
> [!NOTE]
690
−> A new property **ErrorAccentColor** is added to `$Host.PrivateData` to support changing
691
−> the accent color of the error message.
682
+> A new property **ErrorAccentColor** is added to `$Host.PrivateData` to support changing the accent
683
+> color of the error message.
692684
693685
The new `Get-Error`cmdlet provides a complete detailed view of the fully qualified error when
694686
desired. By default the cmdlet displays the full details, including inner exceptions, of the last
⋯ 13 unchanged lines
708700
Get-Error -Newest 3 # Displays the lst three errors that occurred in the session
709701
```
710702
711
−For more information, see [Get-Error][Get-Error].
703
+For more information, see [Get-Error][17].
712704
713705
## Cmdlet changes
714706
⋯ 25 unchanged lines
740732
The new **ThrottleLimit** parameter limits the number of script blocks running in parallel at a
741733
given time. The default is 5.
742734
743
−Use the `$_` variable to represent the current input object in the script block. Use the
744
−`$using:` scope to pass variable references to the running script block.
735
+Use the `$_` variable to represent the current input object in the script block. Use the `$using:`
736
+scope to pass variable references to the running script block.
745737
746
−For more information, see [ForEach-Object][ForEach-Object].
738
+For more information, see [ForEach-Object][12].
747739
748740
### Check `system32` for compatible built-in modules on Windows
749741
⋯ 15 unchanged lines
765757
### Fix `Get-Item -LiteralPath a*b` if `a*b` doesn't actually exist to return error
766758
767759
Previously, `-LiteralPath` given a wildcard would treat it the same as `-Path` and if the wildcard
768
−found no files, it would silently exit. Correct behavior should be that `-LiteralPath` is literal
769
−so if the file doesn't exist, it should error. Change is to treat wildcards used with `-Literal` as
760
+found no files, it would silently exit. Correct behavior should be that `-LiteralPath` is literal so
761
+if the file doesn't exist, it should error. Change is to treat wildcards used with `-Literal` as
770762
literal.
771763
772764
### Set working directory to current directory in `Start-Job`
⋯ 80 unchanged lines
853845
### Allow `*` to be used in registry path for `Remove-Item`
854846
855847
Previously, `-LiteralPath` given a wildcard would treat it the same as `-Path` and if the wildcard
856
−found no files, it would silently exit. Correct behavior should be that `-LiteralPath` is literal
857
−so if the file doesn't exist, it should error. Change is to treat wildcards used with `-Literal` as
848
+found no files, it would silently exit. Correct behavior should be that `-LiteralPath` is literal so
849
+if the file doesn't exist, it should error. Change is to treat wildcards used with `-Literal` as
858850
literal.
859851
860852
### Group-Object now sorts the groups
⋯ 114 unchanged lines
975967
### Invoke-RestMethod returns useful info when no data is returned
976968
977969
When an API returns just `null`, `Invoke-RestMethod` was serializing this as the string `"null"`
978
−instead of `$null`. This change fixes the logic in `Invoke-RestMethod` to properly serialize a
979
−valid single value JSON `null` literal as `$null`.
970
+instead of `$null`. This change fixes the logic in `Invoke-RestMethod` to properly serialize a valid
971
+single value JSON `null` literal as `$null`.
980972
981973
### Web Cmdlets warn when `-Credential` is sent over unencrypted connections
982974
⋯ 21 unchanged lines
1004996
### Removed `RunspaceConfiguration` support
1005997
1006998
Previously, when creating a PowerShell runspace programmatically using the API, you could use the
1007
−legacy [`RunspaceConfiguration`][runspaceconfig] or the newer [`InitialSessionState`][iss] classes.
1008
−This change removed support for `RunspaceConfiguration` and only supports `InitialSessionState`.
999
+legacy [`RunspaceConfiguration`][02] or the newer [`InitialSessionState`][01] classes. This change
1000
+removed support for `RunspaceConfiguration` and only supports `InitialSessionState`.
10091001
10101002
### `CommandInvocationIntrinsics.InvokeScript` bind arguments to `$input` instead of `$args`
10111003
⋯ 40 unchanged lines
10521044
10531045
- When the value is converted to the delegate return type, the `PSObject` essentially gets
10541046
unwrapped. So the `PSObject` is unneeded.
1055
−- When the delegate return type is `object`, it gets wrapped in a `PSObject` making it hard to
1056
− work with in C# code.
1047
+- When the delegate return type is `object`, it gets wrapped in a `PSObject` making it hard to work
1048
+ with in C# code.
10571049
10581050
After this change, the returned object is the underlying object.
10591051
⋯ 4 unchanged lines
10641056
supported for non-Windows platforms.
10651057
10661058
PowerShell also supports PowerShell Remoting (PSRP) over SSH on all platforms (Windows, macOS, and
1067
−Linux). For more information, see
1068
−[SSH remoting in PowerShell][ssh-remote].
1059
+Linux). For more information, see [SSH remoting in PowerShell][25].
10691060
10701061
### PowerShell Direct for Containers tries to use `pwsh` first
10711062
1072
−[PowerShell Direct][psdirect] is a feature of PowerShell and Hyper-V that allows you to connect to a
1063
+[PowerShell Direct][31] is a feature of PowerShell and Hyper-V that allows you to connect to a
10731064
Hyper-V VM or Container without network connectivity or other remote management services.
10741065
10751066
In the past, PowerShell Direct connected using the built-in Windows PowerShell instance on the
⋯ 12 unchanged lines
10881079
This behavior is useful if you want to have multiple PowerShell 6 versions installed and accessible
10891080
on the same machine.
10901081
1091
−Additionally, preview versions of PowerShell now get their own
1092
−remoting session configurations after running the `Enable-PSRemoting` cmdlet:
1082
+Additionally, preview versions of PowerShell now get their own remoting session configurations after
1083
+running the `Enable-PSRemoting` cmdlet:
10931084
10941085
```powershell
10951086
C:\WINDOWS\system32> Enable-PSRemoting
⋯ 57 unchanged lines
11531144
`yes`, or `1`. We no longer support deletion of the file
11541145
`DELETE_ME_TO_DISABLE_CONSOLEHOST_TELEMETRY` to disable telemetry.
11551146
1156
−<!-- Link references -->
1157
−[workflow]: /previous-versions/powershell/scripting/components/workflows-guide
1158
−[workflow-foundation]: /dotnet/framework/windows-workflow-foundation/
1159
−[NETStd2]: https://devblogs.microsoft.com/dotnet/introducing-net-standard/
1160
−[about-WinCompat]: /powershell/module/microsoft.powershell.core/about/about_windows_powershell_compatibility
1161
−[mod-compat]: https://aka.ms/PSModuleCompat
1162
−[WhatsNew73]: What-s-New-in-PowerShell-73.md
1163
−[WhatsNew72]: What-s-New-in-PowerShell-72.md
1164
−[WhatsNew71]: What-s-New-in-PowerShell-71.md
1165
−[WhatsNew70]: What-s-New-in-PowerShell-70.md
1166
−[WhatsNew6x]: /previous-versions/powershell/scripting/whats-new/what-s-new-in-powershell-core-62?view=powershell-6&preserve-view=true
1167
−[fxcore]: /dotnet/core/compatibility/fx-core
1168
−[PSDSC-annouce]: https://devblogs.microsoft.com/powershell/announcing-psdesiredstateconfiguration-on-powershell-gallery/
1169
−[Module Compatibility Table]: https://aka.ms/PSModuleCompat
1170
−[NET5-strings]: /dotnet/standard/base-types/string-comparison-net-5-plus
1171
−[ssh-remote]: /powershell/scripting/learn/remoting/SSH-Remoting-in-PowerShell-Core
1172
−[PowerShell Direct]: /virtualization/hyper-v-on-windows/user-guide/powershell-direct
1173
−[runspaceconfig]: /dotnet/api/system.management.automation.runspaces.runspaceconfiguration
1174
−[iss]: /dotnet/api/system.management.automation.runspaces.initialsessionstate
1175
−[snapin]: /powershell/module/microsoft.powershell.core/about/about_pssnapins
1176
−[exp]: /powershell/module/Microsoft.PowerShell.Core/About/about_Experimental_Features
1177
−[Disable-ExperimentalFeature]: /powershell/module/Microsoft.PowerShell.Core/Disable-ExperimentalFeature
1178
−[Enable-ExperimentalFeature]: /powershell/module/Microsoft.PowerShell.Core/Enable-ExperimentalFeature
1179
−[Get-ExperimentalFeature]: /powershell/module/Microsoft.PowerShell.Core/Get-ExperimentalFeature
1180
−[Remove-Service]: /powershell/module/Microsoft.PowerShell.Management/Remove-Service
1181
−[ConvertFrom-Markdown]: /powershell/module/Microsoft.PowerShell.Utility/ConvertFrom-Markdown
1182
−[Get-MarkdownOption]: /powershell/module/Microsoft.PowerShell.Utility/Get-MarkdownOption
1183
−[Set-MarkdownOption]: /powershell/module/Microsoft.PowerShell.Utility/Set-MarkdownOption
1184
−[Show-Markdown]: /powershell/module/Microsoft.PowerShell.Utility/Show-Markdown
1185
−[Remove-Alias]: /powershell/module/Microsoft.PowerShell.Utility/Remove-Alias
1186
−[Remove-Service]: /powershell/module/Microsoft.PowerShell.Utility/Remote-Service
1187
−[Join-String]: /powershell/module/Microsoft.PowerShell.Utility/Join-String
1188
−[Get-Uptime]: /powershell/module/Microsoft.PowerShell.Utility/Get-Uptime
1189
−[Test-Json]: /powershell/module/Microsoft.PowerShell.Utility/Test-Json
1190
−[Get-Error]: /powershell/module/microsoft.powershell.utility/get-error
1191
−[ForEach-Object]: /powershell/module/microsoft.powershell.core/foreach-object
1192
−[Import-Module]: /powershell/module/microsoft.powershell.core/import-module
1193
−[about_Variables]: /powershell/module/microsoft.powershell.core/about/about_Variables#variable-names-that-include-special-characters
1147
+<!-- link references -->
1148
+[01]: /dotnet/api/system.management.automation.runspaces.initialsessionstate
1149
+[02]: /dotnet/api/system.management.automation.runspaces.runspaceconfiguration
1150
+[03]: /dotnet/core/compatibility/fx-core
1151
+[04]: /dotnet/framework/windows-workflow-foundation/
1152
+[05]: /dotnet/standard/base-types/string-comparison-net-5-plus
1153
+[06]: /powershell/module/Microsoft.PowerShell.Core/About/about_Experimental_Features
1154
+[07]: /powershell/module/microsoft.powershell.core/about/about_pssnapins
1155
+[08]: /powershell/module/microsoft.powershell.core/about/about_Variables#variable-names-that-include-special-characters
1156
+[09]: /powershell/module/microsoft.powershell.core/about/about_windows_powershell_compatibility
1157
+[10]: /powershell/module/Microsoft.PowerShell.Core/Disable-ExperimentalFeature
1158
+[11]: /powershell/module/Microsoft.PowerShell.Core/Enable-ExperimentalFeature
1159
+[12]: /powershell/module/microsoft.powershell.core/foreach-object
1160
+[13]: /powershell/module/Microsoft.PowerShell.Core/Get-ExperimentalFeature
1161
+[14]: /powershell/module/microsoft.powershell.core/import-module
1162
+[15]: /powershell/module/Microsoft.PowerShell.Management/Remove-Service
1163
+[16]: /powershell/module/Microsoft.PowerShell.Utility/ConvertFrom-Markdown
1164
+[17]: /powershell/module/microsoft.powershell.utility/get-error
1165
+[18]: /powershell/module/Microsoft.PowerShell.Utility/Get-MarkdownOption
1166
+[19]: /powershell/module/Microsoft.PowerShell.Utility/Get-Uptime
1167
+[20]: /powershell/module/Microsoft.PowerShell.Utility/Join-String
1168
+[21]: /powershell/module/Microsoft.PowerShell.Utility/Remove-Alias
1169
+[22]: /powershell/module/Microsoft.PowerShell.Utility/Set-MarkdownOption
1170
+[23]: /powershell/module/Microsoft.PowerShell.Utility/Show-Markdown
1171
+[24]: /powershell/module/Microsoft.PowerShell.Utility/Test-Json
1172
+[25]: /powershell/scripting/learn/remoting/SSH-Remoting-in-PowerShell-Core
1173
+[26]: /previous-versions/powershell/scripting/components/workflows-guide
1174
+[27]: /previous-versions/powershell/scripting/whats-new/what-s-new-in-powershell-71
1175
+[28]: /previous-versions/powershell/scripting/whats-new/what-s-new-in-powershell-core-62?view=powershell-6&preserve-view=true
1176
+[29]: https://aka.ms/PSModuleCompat
1177
+[30]: https://devblogs.microsoft.com/dotnet/introducing-net-standard/
1178
+[31]: https://devblogs.microsoft.com/powershell/announcing-psdesiredstateconfiguration-on-powershell-gallery/
1179
+[32]: What-s-New-in-PowerShell-70.md
1180
+[33]: What-s-New-in-PowerShell-72.md
1181
+[34]: What-s-New-in-PowerShell-73.md
Microsoft's Markdown source from MicrosoftDocs/PowerShell-Docs, © Microsoft Corporation, under CC BY 4.0. Changed lines with up to 3 unchanged lines around each; ChangeIntel kept this copy 10 Oct 03:16 UTC. The commit date is when the source changed, which can be hours or days before Learn published it.