From cca5019063d4f3803425961da8f4eb4ef6e7e76a Mon Sep 17 00:00:00 2001 From: Sean Wheeler Date: Wed, 19 Nov 2025 13:13:19 -0600 Subject: [PATCH] Simplify setup docs (#12525) * Simplify setup docs * Fix redir errors * add changes missed for other distros * Apply suggestions from code review Co-authored-by: Mikey Lombardi (He/Him) --------- Co-authored-by: Mikey Lombardi (He/Him) --- redir/.openpublishing.redirection.json | 286 +++++++------ .../Installing-PowerShell-on-Windows.md | 390 ------------------ .../docs-conceptual/install/install-alpine.md | 18 +- .../docs-conceptual/install/install-debian.md | 19 +- ...inux.md => install-powershell-on-linux.md} | 0 ...acOS.md => install-powershell-on-macos.md} | 17 +- .../install-powershell-on-windows-iot-nano.md | 118 ++++++ .../install/install-powershell-on-windows.md | 304 ++++++++++++++ ...-PowerShell.yml => install-powershell.yml} | 18 +- .../docs-conceptual/install/install-rhel.md | 11 +- .../docs-conceptual/install/install-ubuntu.md | 11 +- reference/docs-conceptual/toc.yml | 26 +- 12 files changed, 636 insertions(+), 582 deletions(-) delete mode 100644 reference/docs-conceptual/install/Installing-PowerShell-on-Windows.md rename reference/docs-conceptual/install/{Installing-PowerShell-on-Linux.md => install-powershell-on-linux.md} (100%) rename reference/docs-conceptual/install/{Installing-PowerShell-on-macOS.md => install-powershell-on-macos.md} (95%) create mode 100644 reference/docs-conceptual/install/install-powershell-on-windows-iot-nano.md create mode 100644 reference/docs-conceptual/install/install-powershell-on-windows.md rename reference/docs-conceptual/install/{Installing-PowerShell.yml => install-powershell.yml} (74%) diff --git a/redir/.openpublishing.redirection.json b/redir/.openpublishing.redirection.json index 157a0e157f45..faadc2e7f5e3 100644 --- a/redir/.openpublishing.redirection.json +++ b/redir/.openpublishing.redirection.json @@ -1,22 +1,22 @@ { "redirections": [ { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/app-control/how-to-use-app-control", "source_path": "../reference/docs-conceptual/security/app-control/how-to-use-wdac.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/app-control/how-app-control-works", "source_path": "../reference/docs-conceptual/security/app-control/how-wdac-works.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/preventing-script-injection", "source_path": "../reference/docs-conceptual/dev-cross-plat/security/preventing-script-injection.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/securing-restricted-sessions", "source_path": "../reference/docs-conceptual/dev-cross-plat/security/securing-restricted-sessions.md" }, @@ -26,92 +26,92 @@ "source_path": "../reference/docs-conceptual/learn/application-control.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/app-control/application-control", "source_path": "../reference/docs-conceptual/security/application-control.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/ps-remoting-second-hop", "source_path": "../reference/docs-conceptual/learn/remoting/PS-remoting-second-hop.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/running-remote-commands", "source_path": "../reference/docs-conceptual/learn/remoting/Running-Remote-Commands.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/ssh-remoting-in-powershell", "source_path": "../reference/docs-conceptual/learn/remoting/SSH-Remoting-in-PowerShell.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/wsman-remoting-in-powershell", "source_path": "../reference/docs-conceptual/learn/remoting/WSMan-Remoting-in-PowerShell.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/winrm-security", "source_path": "../reference/docs-conceptual/learn/remoting/WinRMSecurity.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/audit-and-report", "source_path": "../reference/docs-conceptual/learn/remoting/jea/audit-and-report.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/overview", "source_path": "../reference/docs-conceptual/learn/remoting/jea/overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/prerequisites", "source_path": "../reference/docs-conceptual/learn/remoting/jea/prerequisites.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/register-jea", "source_path": "../reference/docs-conceptual/learn/remoting/jea/register-jea.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/role-capabilities", "source_path": "../reference/docs-conceptual/learn/remoting/jea/role-capabilities.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/security-considerations", "source_path": "../reference/docs-conceptual/learn/remoting/jea/security-considerations.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/session-configurations", "source_path": "../reference/docs-conceptual/learn/remoting/jea/session-configurations.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/jea/using-jea", "source_path": "../reference/docs-conceptual/learn/remoting/jea/using-jea.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/remoting/powershell-remoting-faq", "source_path": "../reference/docs-conceptual/learn/remoting/powershell-remoting-faq.yml" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/security/security-features", "source_path": "../reference/docs-conceptual/learn/security-features.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/what-is-windows-powershell", "source_path": "../reference/docs-conceptual/windows-powershell/overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/shell/optimize-shell", "source_path": "../reference/docs-conceptual/windows-powershell/install/Creating-a-Custom-PowerShell-Shortcut.md" }, @@ -121,7 +121,7 @@ "source_path": "../reference/docs-conceptual/whats-new/what-s-new-in-powershell-70.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/shell/using-aliases", "source_path": "../reference/docs-conceptual/learn/Compatibility-Aliases.md" }, @@ -131,7 +131,7 @@ "source_path": "../reference/docs-conceptual/learn/tutorials/00-introduction.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/discover-powershell", "source_path": "../reference/docs-conceptual/learn/tutorials/01-discover-powershell.md" }, @@ -156,32 +156,52 @@ "source_path": "../reference/docs-conceptual/dev-cross-plat/create-help-using-platyps.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/install/community-support", "source_path": "../reference/docs-conceptual/install/install-raspbian.md" }, { - "redirect_document_id": true, - "redirect_url": "/powershell/scripting/install/installing-powershell-on-linux", + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/install/install-powershell-on-windows", + "source_path": "../reference/docs-conceptual/install/Installing-PowerShell-Core-on-Windows.md" + }, + { + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/install/install-powershell-on-windows", + "source_path": "../reference/docs-conceptual/install/Installing-PowerShell-on-Windows.md" + }, + { + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/install/install-powershell-on-linux", "source_path": "../reference/docs-conceptual/install/Installing-PowerShell-Core-on-Linux.md" }, { - "redirect_document_id": true, - "redirect_url": "/powershell/scripting/install/installing-powershell-on-windows", - "source_path": "../reference/docs-conceptual/install/Installing-PowerShell-Core-on-Windows.md" + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/install/install-powershell-on-linux", + "source_path": "../reference/docs-conceptual/install/Installing-PowerShell-on-Linux.md" + }, + { + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/install/install-powershell-on-macos", + "source_path": "../reference/docs-conceptual/install/Installing-PowerShell-on-macOS.md" }, { - "redirect_document_id": true, - "redirect_url": "/powershell/scripting/install/installing-powershell-on-macos", + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/install/install-powershell-on-macos", "source_path": "../reference/docs-conceptual/install/Installing-PowerShell-Core-on-macOS.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/install/install-powershell", + "source_path": "../reference/docs-conceptual/install/Installing-PowerShell.yml" + }, + { + "redirect_document_id": false, "redirect_url": "/powershell/scripting/install/PowerShell-Support-Lifecycle", "source_path": "../reference/docs-conceptual/PowerShell-Support-Lifecycle.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/install/powershell-on-arm", "source_path": "../reference/docs-conceptual/install/PowerShell-Core-on-Arm.md" }, @@ -191,7 +211,7 @@ "source_path": "../reference/docs-conceptual/developer/module/modifying-the-psmodulepath-installation-path.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/module/microsoft.powershell.core/about/about_Tab_Expansion", "source_path": "../reference/docs-conceptual/learn/Using-Tab-Expansion.md" }, @@ -226,22 +246,22 @@ "source_path": "../reference/docs-conceptual/whats-new/known-issues-ps6.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/Compatibility-Aliases", "source_path": "../reference/docs-conceptual/samples/Appendix-1---Compatibility-Aliases.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/install/Creating-a-Custom-PowerShell-Shortcut", "source_path": "../reference/docs-conceptual/samples/Appendix-2---Creating-a-Custom-PowerShell-Shortcut.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/Other-Useful-Scripting-Objects", "source_path": "../reference/docs-conceptual/samples/Other-Useful-Scripting-Objects.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/overview", "source_path": "../reference/docs-conceptual/index.md" }, @@ -276,12 +296,12 @@ "source_path": "../reference/docs-conceptual/community/2020-Q4.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/windows-powershell", "source_path": "../reference/docs-conceptual/developer/index.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/overview", "source_path": "../reference/docs-conceptual/wmf/index.md" }, @@ -291,7 +311,7 @@ "source_path": "../reference/docs-conceptual/community/contributing/editing-cmdlet-ref.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/experimental-features", "source_path": "../reference/docs-conceptual/whats-new/experimental-features.md" }, @@ -331,7 +351,7 @@ "source_path": "../reference/docs-conceptual/learn/ps101/Using-Tab-Expansion.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/ps101/using-tab-expansion", "source_path": "../reference/docs-conceptual/components/console/using-tab-expansion.md" }, @@ -351,52 +371,52 @@ "source_path": "../reference/docs-conceptual/learn/learning-powershell-names.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/ps101/05-formatting-aliases-providers-comparison", "source_path": "../reference/docs-conceptual/learn/using-familiar-command-names.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/ps101/03-discovering-objects", "source_path": "../reference/docs-conceptual/learn/using-variables-to-store-objects.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/whats-new/migrating-from-windows-powershell-51-to-powershell-7", "source_path": "../reference/docs-conceptual/install/migrating-from-windows-powershell-51-to-powershell-7.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/whats-new/what-s-new-in-the-powershell-50-ise", "source_path": "../reference/docs-conceptual/whats-new/what-s-new-in-the-powershell-50-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/whats-new/what-s-new-in-windows-powershell-50", "source_path": "../reference/docs-conceptual/whats-new/what-s-new-in-windows-powershell-50.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/cmdlet/cmdlet-overview", "source_path": "../reference/docs-conceptual/developer/cmdlet/writing-a-windows-powershell-cmdlet.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/format/wide-view-basic", "source_path": "../reference/docs-conceptual/developer/format/examples-of-formatting-files.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/format/formatting-file-overview", "source_path": "../reference/docs-conceptual/developer/format/writing-a-powershell-formatting-file.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/hosting/windows-powershell-host-quickstart", "source_path": "../reference/docs-conceptual/developer/hosting/writing-a-windows-powershell-host-application.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/provider/windows-powershell-provider-quickstart", "source_path": "../reference/docs-conceptual/developer/provider/writing-a-windows-powershell-provider.md" }, @@ -406,8 +426,8 @@ "source_path": "../reference/docs-conceptual/getting-started/getting-started-with-windows-powershell.md" }, { - "redirect_document_id": true, - "redirect_url": "/powershell/scripting/windows-powershell/install/installing-windows-powershell", + "redirect_document_id": false, + "redirect_url": "/powershell/scripting/what-is-windows-powershell", "source_path": "../reference/docs-conceptual/install/installing-windows-powershell.md" }, { @@ -421,307 +441,307 @@ "source_path": "../reference/docs-conceptual/learn/understanding-the-powershell-pipeline.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/install/windows-powershell-system-requirements", "source_path": "../reference/docs-conceptual/install/windows-powershell-system-requirements.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/accessibility-in-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/accessibility-in-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/exploring-the-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/exploring-the-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/how-to-create-a-powershell-tab-in-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/how-to-create-a-powershell-tab-in-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/how-to-debug-scripts-in-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/how-to-debug-scripts-in-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/how-to-use-profiles-in-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/how-to-use-profiles-in-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/how-to-use-tab-completion-in-the-script-pane-and-console-pane", "source_path": "../reference/docs-conceptual/components/ise/how-to-use-tab-completion-in-the-script-pane-and-console-pane.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/how-to-use-the-console-pane-in-the-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/how-to-use-the-console-pane-in-the-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/how-to-write-and-run-scripts-in-the-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/how-to-write-and-run-scripts-in-the-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/introducing-the-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/introducing-the-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/keyboard-shortcuts-for-the-windows-powershell-ise", "source_path": "../reference/docs-conceptual/components/ise/keyboard-shortcuts-for-the-windows-powershell-ise.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/purpose-of-the-windows-powershell-ise-scripting-object-model", "source_path": "../reference/docs-conceptual/components/ise/object-model/purpose-of-the-windows-powershell-ise-scripting-object-model.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-iseaddontoolcollection-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-iseaddontoolcollection-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-iseaddontool-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-iseaddontool-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-iseeditor-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-iseeditor-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-isefilecollection-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-isefilecollection-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-isefile-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-isefile-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-isemenuitemcollection-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-isemenuitemcollection-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-isemenuitem-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-isemenuitem-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-ise-object-model-hierarchy", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-ise-object-model-hierarchy.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-iseoptions-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-iseoptions-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-isesnippetcollection-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-isesnippetcollection-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-isesnippetobject", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-isesnippetobject.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-objectmodelroot-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-objectmodelroot-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-powershelltabcollection-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-powershelltabcollection-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/ise/object-model/the-powershelltab-object", "source_path": "../reference/docs-conceptual/components/ise/object-model/the-powershelltab-object.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/dev-cross-plat/vscode/how-to-replicate-the-ise-experience-in-vscode", "source_path": "../reference/docs-conceptual/components/vscode/how-to-replicate-the-ise-experience-in-vscode.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/dev-cross-plat/vscode/understanding-file-encoding", "source_path": "../reference/docs-conceptual/components/vscode/understanding-file-encoding.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/dev-cross-plat/vscode/using-vscode", "source_path": "../reference/docs-conceptual/components/vscode/using-vscode.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/dev-cross-plat/vscode/using-vscode-for-remote-editing-and-debugging", "source_path": "../reference/docs-conceptual/components/vscode/using-vscode-for-remote-editing-and-debugging.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/module/how-to-create-a-windows-powershell-snap-in", "source_path": "../reference/docs-conceptual/developer/cmdlet/how-to-create-a-windows-powershell-snap-in.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/module/how-to-import-cmdlets-using-modules", "source_path": "../reference/docs-conceptual/developer/cmdlet/how-to-import-cmdlets-using-modules.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/module/modules-and-snap-ins", "source_path": "../reference/docs-conceptual/developer/cmdlet/modules-and-snap-ins.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/module/registering-cmdlets", "source_path": "../reference/docs-conceptual/developer/cmdlet/registering-cmdlets.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/module/writing-a-custom-windows-powershell-snap-in", "source_path": "../reference/docs-conceptual/developer/cmdlet/writing-a-custom-windows-powershell-snap-in.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/module/writing-a-windows-powershell-snap-in", "source_path": "../reference/docs-conceptual/developer/cmdlet/writing-a-windows-powershell-snap-in.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/file-types-permitted-in-an-updatable-help-cab-file", "source_path": "../reference/docs-conceptual/developer/module/file-types-permitted-in-an-updatable-help-cab-file.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/helpinfo-xml-sample-file", "source_path": "../reference/docs-conceptual/developer/module/helpinfo-xml-sample-file.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/helpinfo-xml-schema", "source_path": "../reference/docs-conceptual/developer/module/helpinfo-xml-schema.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-create-a-helpinfo-xml-file", "source_path": "../reference/docs-conceptual/developer/module/how-to-create-a-helpinfo-xml-file.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-create-and-upload-cab-files", "source_path": "../reference/docs-conceptual/developer/module/how-to-create-and-upload-cab-files.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-name-a-helpinfo-xml-file", "source_path": "../reference/docs-conceptual/developer/module/how-to-name-a-helpinfo-xml-file.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-name-an-updatable-help-cab-file", "source_path": "../reference/docs-conceptual/developer/module/how-to-name-an-updatable-help-cab-file.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-prepare-updatable-help-cab-files", "source_path": "../reference/docs-conceptual/developer/module/how-to-prepare-updatable-help-cab-files.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-set-helpinfo-xml-version-numbers", "source_path": "../reference/docs-conceptual/developer/module/how-to-set-helpinfo-xml-version-numbers.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-test-updatable-help", "source_path": "../reference/docs-conceptual/developer/module/how-to-test-updatable-help.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-to-update-help-files", "source_path": "../reference/docs-conceptual/developer/module/how-to-update-help-files.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/how-updatable-help-works", "source_path": "../reference/docs-conceptual/developer/module/how-updatable-help-works.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/naming-help-files", "source_path": "../reference/docs-conceptual/developer/module/naming-help-files.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/supporting-online-help", "source_path": "../reference/docs-conceptual/developer/module/supporting-online-help.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/supporting-updatable-help", "source_path": "../reference/docs-conceptual/developer/module/supporting-updatable-help.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/updatable-help-authoring-step-by-step", "source_path": "../reference/docs-conceptual/developer/module/updatable-help-authoring-step-by-step.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/updatable-help-overview", "source_path": "../reference/docs-conceptual/developer/module/updatable-help-overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/help/writing-help-for-windows-powershell-modules", "source_path": "../reference/docs-conceptual/developer/module/writing-help-for-windows-powershell-modules.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/starting-the-windows-powershell-2.0-engine", "source_path": "../reference/docs-conceptual/getting-started/starting-the-windows-powershell-2.0-engine.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/starting-windows-powershell", "source_path": "../reference/docs-conceptual/getting-started/starting-windows-powershell.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/install/installing-the-windows-powershell-2.0-engine", "source_path": "../reference/docs-conceptual/install/installing-the-windows-powershell-2.0-engine.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/learn/glossary", "source_path": "../reference/docs-conceptual/learn/windows-powershell-glossary.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/dev-cross-plat/writing-portable-modules", "source_path": "../reference/docs-conceptual/learn/writing-portable-modules.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/known-issues/known-issues-50", "source_path": "../reference/docs-conceptual/wmf/known-issues/known-issues-50.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/known-issues/known-issues-51", "source_path": "../reference/docs-conceptual/wmf/known-issues/known-issues-51.md" }, @@ -731,87 +751,87 @@ "source_path": "../reference/docs-conceptual/wmf/overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/setup/install-configure", "source_path": "../reference/docs-conceptual/wmf/setup/install-configure.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/setup/uninstall", "source_path": "../reference/docs-conceptual/wmf/setup/uninstall.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/bugfixes", "source_path": "../reference/docs-conceptual/wmf/whats-new/bugfixes.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/class-overview", "source_path": "../reference/docs-conceptual/wmf/whats-new/class-overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/compatibility", "source_path": "../reference/docs-conceptual/wmf/whats-new/compatibility.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/console-improvements", "source_path": "../reference/docs-conceptual/wmf/whats-new/console-improvements.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/debug-overview", "source_path": "../reference/docs-conceptual/wmf/whats-new/debug-overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/engine-improvements", "source_path": "../reference/docs-conceptual/wmf/whats-new/engine-improvements.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/informationstream-overview", "source_path": "../reference/docs-conceptual/wmf/whats-new/informationstream-overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/jea-improvements", "source_path": "../reference/docs-conceptual/wmf/whats-new/jea-improvements.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/new-updated-cmdlets", "source_path": "../reference/docs-conceptual/wmf/whats-new/new-updated-cmdlets.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/package-management-improvements", "source_path": "../reference/docs-conceptual/wmf/whats-new/package-management-improvements.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/release-notes", "source_path": "../reference/docs-conceptual/wmf/whats-new/release-notes.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/script-logging", "source_path": "../reference/docs-conceptual/wmf/whats-new/script-logging.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/windows-powershell/wmf/whats-new/sil-overview", "source_path": "../reference/docs-conceptual/wmf/whats-new/sil-overview.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/cmdlet/requesting-confirmation-from-cmdlets", "source_path": "../reference/docs-conceptual/developer/cmdlet/how-to-request-confirmations.md" }, { - "redirect_document_id": true, + "redirect_document_id": false, "redirect_url": "/powershell/scripting/developer/prog-guide/windows-powershell-programmer-s-guide", "source_path": "../reference/docs-conceptual/developer/prog-guide/how-to-create-a-console-shell.md" } diff --git a/reference/docs-conceptual/install/Installing-PowerShell-on-Windows.md b/reference/docs-conceptual/install/Installing-PowerShell-on-Windows.md deleted file mode 100644 index c444071015db..000000000000 --- a/reference/docs-conceptual/install/Installing-PowerShell-on-Windows.md +++ /dev/null @@ -1,390 +0,0 @@ ---- -description: Information about installing PowerShell on Windows -ms.date: 10/16/2025 -title: Installing PowerShell on Windows ---- -# Installing PowerShell on Windows - -There are multiple ways to install PowerShell in Windows. Each install method is designed to support -different scenarios and workflows. Choose the method that best suits your needs. - -- [WinGet][14] - Recommended way to install PowerShell on Windows clients -- [MSI package][11] - Best choice for Windows Servers and enterprise deployment scenarios -- [ZIP package][15] - Easiest way to "side load" or install multiple versions - - Use this method for Windows Nano Server, Windows IoT, and Arm-based systems -- [.NET Global tool][10] - A good choice for .NET developers that install and use other global tools -- [Microsoft Store package][12] - An easy way to install for casual users of PowerShell but has - limitations - -[!INCLUDE [Latest version](../../includes/latest-install.md)] - -## Install PowerShell using WinGet (recommended) - -WinGet, the Windows Package Manager, is a command-line tool enables users to discover, install, -upgrade, remove, and configure applications on Windows client computers. This tool is the client -interface to the Windows Package Manager service. The `winget` command-line tool is bundled with -Windows 11 and modern versions of Windows 10 by default as the **App Installer**. - -> [!NOTE] -> See the [winget documentation][09] for a list of system requirements and install instructions. -> `winget` isn't available on Windows Server 2022 or earlier versions. Windows Server 2025 Preview -> Build 26085 and later includes `winget` for **Windows Server with Desktop Experience** only. - -The following commands can be used to install PowerShell using the published `winget` packages: - -Search for the latest version of PowerShell - -```powershell -winget search Microsoft.PowerShell -``` - -```Output -Name Id Version Source ---------------------------------------------------------------- -PowerShell Microsoft.PowerShell 7.5.4.0 winget -PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.5 winget -``` - -Install PowerShell or PowerShell Preview using the `id` parameter - -```powershell -winget install --id Microsoft.PowerShell --source winget -``` - -```powershell -winget install --id Microsoft.PowerShell.Preview --source winget -``` - -> [!NOTE] -> On Windows systems using X86 or X64 processor, `winget` installs the MSI package. On systems using -> the Arm64 processor, `winget` installs the Microsoft Store (MSIX) package. For more information, -> see [Installing from the Microsoft Store][12]. - -## Installing the MSI package - -To install PowerShell on Windows, use the following links to download the install package from -GitHub. - -- [PowerShell-7.5.4-win-x64.msi][22] -- [PowerShell-7.5.4-win-x86.msi][24] -- [PowerShell-7.5.4-win-arm64.msi][20] - -Once downloaded, double-click the installer file and follow the prompts. - -The installer creates a shortcut in the Windows Start Menu. - -- By default the package is installed to `$Env:ProgramFiles\PowerShell\` -- You can launch PowerShell via the Start Menu or `$Env:ProgramFiles\PowerShell\\pwsh.exe` - -> [!NOTE] -> PowerShell 7.5 installs to a new directory and runs side-by-side with Windows PowerShell 5.1. -> PowerShell 7.5 is an in-place upgrade that removes previous versions of PowerShell 7. Preview -> versions of PowerShell can be installed side-by-side with other versions of PowerShell. -> -> - PowerShell 7.5 is installed to `$Env:ProgramFiles\PowerShell\7` -> - The `$Env:ProgramFiles\PowerShell\7` folder is added to `$Env:PATH` -> -> If you need to run PowerShell 7.5 side-by-side with other versions, use the [ZIP install][15] -> method to install the other version to a different folder. - -### Support for Microsoft Update in PowerShell 7.2 and newer - -PowerShell 7.2 and newer has support for Microsoft Update. When you enable this feature, you'll get -the latest PowerShell 7 updates in your traditional Microsoft Update (MU) management flow, whether -that's with Windows Update for Business, WSUS, Microsoft Endpoint Configuration Manager, or the -interactive MU dialog in Settings. - -The PowerShell MSI package includes following command-line options: - -- `USE_MU` - This property has two possible values: - - `1` (default) - Opts into updating through Microsoft Update, WSUS, or Configuration Manager - - `0` - Don't opt into updating through Microsoft Update, WSUS, or Configuration Manager -- `ENABLE_MU` - - `1` (default) - Opts into using Microsoft Update for Automatic Updates - - `0` - Don't opt into using Microsoft Update - -> [!NOTE] -> Enabling updates may have been set in a previous installation or manual configuration. Using -> `ENABLE_MU=0` doesn't remove the existing settings. Also, this setting can be overruled by Group -> Policy settings controlled by your administrator. - -For more information, see the [PowerShell Microsoft Update FAQ][28]. - -### Install the MSI package from the command line - -MSI packages can be installed from the command line allowing administrators to deploy packages -without user interaction. The MSI package includes the following properties to control the -installation options: - -- `ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL` - This property controls the option for adding the - `Open PowerShell` item to the context menu in Windows Explorer. -- `ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL` - This property controls the option for adding the - `Run with PowerShell` item to the context menu in Windows Explorer. -- `ENABLE_PSREMOTING` - This property controls the option for enabling PowerShell remoting during - installation. -- `REGISTER_MANIFEST` - This property controls the option for registering the Windows Event - Logging manifest. -- `ADD_PATH` - This property controls the option for adding PowerShell to the Windows PATH - environment variable. -- `DISABLE_TELEMETRY` - This property controls the option for disabling PowerShell's telemetry by - setting the `POWERSHELL_TELEMETRY_OPTOUT` environment variable. -- `INSTALLFOLDER` - This property controls the installation directory. The default is - `$Env:ProgramFiles\PowerShell\`. This is the location where the installer creates the versioned - subfolder. You can't change the name of the versioned subfolder. - - For current releases, the versioned subfolder is `7` - - For preview releases, the versioned subfolder is `7-preview` - -The following example shows how to silently install PowerShell with all the install options enabled. - -```powershell -msiexec.exe /package PowerShell-7.5.4-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1 -``` - -For a full list of command-line options for `Msiexec.exe`, see -[Command line options][07]. - -## Installing the ZIP package - -PowerShell binary ZIP archives are provided to enable advanced deployment scenarios. Download one of -the following ZIP archives from the [current release][18] page. - -- [PowerShell-7.5.4-win-x64.zip][23] -- [PowerShell-7.5.4-win-x86.zip][25] -- [PowerShell-7.5.4-win-arm64.zip][21] - -Depending on how you download the file you may need to unblock the file using the `Unblock-File` -cmdlet. Unzip the contents to the location of your choice and run `pwsh.exe` from there. Unlike -installing the MSI packages, installing the ZIP archive doesn't check for prerequisites. For -remoting over WSMan to work properly, ensure that you've met the [prerequisites][13]. - -Use this method to install the ARM-based version of PowerShell on computers like the Microsoft -Surface Pro X. For best results, install PowerShell to the to `$Env:ProgramFiles\PowerShell\7` -folder. - -## Install as a .NET Global tool - -If you already have the [.NET Core SDK][04] installed, you can install PowerShell as a -[.NET Global tool][05]. - -``` -dotnet tool install --global PowerShell -``` - -The dotnet tool installer adds `$HOME\.dotnet\tools` to your `$Env:PATH` environment variable. -However, the currently running shell doesn't have the updated `$Env:PATH`. You can start PowerShell -from a new shell by typing `pwsh`. - -## Installing from the Microsoft Store - -PowerShell can be installed from the Microsoft Store. You can find the PowerShell release in the -[Microsoft Store][27] site or in the Store application in Windows. - -Benefits of the Microsoft Store package: - -- Automatic updates built right into Windows -- Integrates with other software distribution mechanisms like Intune and Configuration Manager -- Can install on Windows systems using x86, x64, or Arm64 processors - -### Known limitations - -By default, Windows Store packages run in an application sandbox that virtualizes access to some -filesystem and registry locations. Changes to virtualized file and registry locations don't persist -outside of the application sandbox. - -This sandbox blocks all changes to the application's root folder. Any system-level configuration -settings stored in `$PSHOME` can't be modified. This includes the WSMAN configuration. This prevents -remote sessions from connecting to Store-based installs of PowerShell. User-level configurations and -SSH remoting are supported. - -The following commands need write to `$PSHOME`. These commands aren't supported in a Microsoft Store -instance of PowerShell. - -- `Register-PSSessionConfiguration` -- `Update-Help -Scope AllUsers` -- `Enable-ExperimentalFeature -Scope AllUsers` -- `Set-ExecutionPolicy -Scope LocalMachine` - -For more information, see -[Understanding how packaged desktop apps run on Windows][08]. - -Beginning in PowerShell 7.2, the PowerShell package is now exempt from file and registry -virtualization. Changes to virtualized file and registry locations now persist outside of the -application sandbox. However, changes to the application's root folder are still blocked. - -> [!IMPORTANT] -> You must be running on Windows build 1903 or higher for this exemption to work. - -## Installing a preview version - -Preview releases of PowerShell 7 install to `$Env:ProgramFiles\PowerShell\7-preview` so they can be -run side-by-side with non-preview releases of PowerShell. PowerShell 7.6 is the next preview -release. - -## Upgrading an existing installation - -For best results when upgrading, you should use the same install method you used when you first -installed PowerShell. If you aren't sure how PowerShell was installed, you can check the value of -the `$PSHOME` variable, which always points to the directory containing PowerShell that the current -session is running. - -- If the value is `$HOME\.dotnet\tools`, PowerShell was installed with the [.NET Global tool][10]. -- If the value is `$Env:ProgramFiles\PowerShell\7`, PowerShell was installed as an - [MSI package][11] or with [WinGet][14] on a computer with an X86 or x64 processor. -- If the value starts with `$Env:ProgramFiles\WindowsApps\`, PowerShell was installed as a - [Microsoft Store package][12] or with [WinGet][14] on computer with an ARM processor. -- If the value is anything else, it's likely that PowerShell was installed as a [ZIP package][15]. - -If you installed via the MSI package, that information also appears in the -**Programs and Features** Control Panel. - -To determine whether PowerShell may be upgraded with WinGet, run the following command: - -```powershell -winget list --id Microsoft.PowerShell --upgrade-available -``` - -If there is an available upgrade, the output indicates the latest available version. Use the -following command to upgrade PowerShell using WinGet: - -```powershell -winget upgrade --id Microsoft.PowerShell -``` - -## Deploying on Windows 10 IoT Enterprise - -Windows 10 IoT Enterprise comes with Windows PowerShell, which we can use to deploy PowerShell 7. - -```powershell -# Replace the placeholder information for the following variables: -$deviceip = '' -$zipfile = 'PowerShell-7.5.4-win-arm64.zip' -$downloadfolder = 'U:\Users\Administrator\Downloads' # The download location is local to the device. - # There should be enough space for the zip file and the unzipped contents. - -# Create PowerShell session to target device -Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip -$S = New-PSSession -ComputerName $deviceIp -Credential Administrator -# Copy the ZIP package to the device -Copy-Item $zipfile -Destination $downloadfolder -ToSession $S - -#Connect to the device and expand the archive -Enter-PSSession $S -Set-Location U:\Users\Administrator\Downloads -Expand-Archive .\PowerShell-7.5.4-win-arm64.zip - -# Set up remoting to PowerShell 7 -Set-Location .\PowerShell-7.5.4-win-arm64 -# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new -# endpoint with Windows PowerShell 5.1 -.\Install-PowerShellRemoting.ps1 -PowerShellHome . -``` - -When you set up PowerShell Remoting you get an error message and are disconnected from the device. -PowerShell has to restart WinRM. Now you can connect to PowerShell 7 endpoint on device. - -```powershell - -# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1 -Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.5.4 -``` - -## Deploying on Windows 10 IoT Core - -Windows 10 IoT Core adds Windows PowerShell when you include _IOT_POWERSHELL_ feature, which we can -use to deploy PowerShell 7. The steps defined above for Windows 10 IoT Enterprise can be followed -for IoT Core as well. - -For adding the latest PowerShell in the shipping image, use [Import-PSCoreRelease][19] command to -include the package in the workarea and add _OPENSRC_POWERSHELL_ feature to your image. - -> [!NOTE] -> For ARM64 architecture, Windows PowerShell isn't added when you include _IOT_POWERSHELL_. So the -> zip based install doesn't work. You need to use `Import-PSCoreRelease` command to add it in -> the image. - -## Deploying on Nano Server - -These instructions assume that the Nano Server is a "headless" OS that has a version of PowerShell -already running on it. For more information, see the [Nano Server Image Builder][06] -documentation. - -PowerShell binaries can be deployed using two different methods. - -1. Offline - Mount the Nano Server VHD and unzip the contents of the zip file to your chosen - location within the mounted image. -1. Online - Transfer the zip file over a PowerShell Session and unzip it in your chosen location. - -In both cases, you need the [Windows x64 ZIP release package][23]. Run the commands within an -"Administrator" instance of PowerShell. - -### Offline Deployment of PowerShell - -1. Use your favorite zip utility to unzip the package to a directory within the mounted Nano Server - image. -1. Unmount the image and boot it. -1. Connect to the built-in instance of Windows PowerShell. - -### Online Deployment of PowerShell - -Deploy PowerShell to Nano Server using the following steps. - -```powershell -# Replace the placeholder information for the following variables: -$ipaddr = '' -$credential = Get-Credential # -$zipfile = 'PowerShell-7.5.4-win-x64.zip' -# Connect to the built-in instance of Windows PowerShell -$session = New-PSSession -ComputerName $ipaddr -Credential $credential -# Copy the file to the Nano Server instance -Copy-Item $zipfile C:\ -ToSession $session -# Enter the interactive remote session -Enter-PSSession $session -# Extract the ZIP file -Expand-Archive -Path C:\PowerShell-7.5.4-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7' -``` - -## PowerShell remoting - -PowerShell supports the PowerShell Remoting Protocol (PSRP) over both WSMan and SSH. For more -information, see: - -- [SSH Remoting in PowerShell][01] -- [WSMan Remoting in PowerShell][02] - -## Supported versions of Windows - -[!INCLUDE [Windows support](../../includes/windows-support.md)] - -You can check the version that you are using by running `winver.exe`. - -## Installation support - -Microsoft supports the installation methods in this document. There may be other third-party methods -of installation available from other sources. While those tools and methods may work, Microsoft -can't support those methods. - - -[01]: ../security/remoting/SSH-Remoting-in-PowerShell.md -[02]: ../security/remoting/WSMan-Remoting-in-PowerShell.md -[04]: /dotnet/core/sdk -[05]: /dotnet/core/tools/global-tools -[06]: /windows-server/get-started/deploy-nano-server -[07]: /windows/desktop/Msi/command-line-options -[08]: /windows/msix/desktop/desktop-to-uwp-behind-the-scenes -[09]: /windows/package-manager/winget -[10]: #dotnet -[11]: #msi -[12]: #msstore -[13]: #powershell-remoting -[14]: #winget -[15]: #zip -[18]: https://github.com/PowerShell/PowerShell/releases/latest -[19]: https://github.com/ms-iot/iot-adk-addonkit/blob/master/Tools/IoTCoreImaging/Docs/Import-PSCoreRelease.md#Import-PSCoreRelease -[20]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-arm64.msi -[21]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-arm64.zip -[22]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.msi -[23]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.zip -[24]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x86.msi -[25]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x86.zip -[27]: https://www.microsoft.com/store/apps/9MZ1SNWT0N5D -[28]: microsoft-update-faq.yml diff --git a/reference/docs-conceptual/install/install-alpine.md b/reference/docs-conceptual/install/install-alpine.md index c4a07b4c763e..52c008753aea 100644 --- a/reference/docs-conceptual/install/install-alpine.md +++ b/reference/docs-conceptual/install/install-alpine.md @@ -1,19 +1,18 @@ --- -description: Information about installing PowerShell on Alpine Linux -ms.date: 10/16/2025 -title: Installing PowerShell on Alpine Linux +description: How to install PowerShell on Alpine Linux +ms.date: 11/19/2025 +title: Install PowerShell on Alpine Linux --- -# Installing PowerShell on Alpine Linux +# Install PowerShell on Alpine Linux All packages are available on our GitHub [releases][03] page. After the package is installed, run `pwsh` from a terminal. Run `pwsh-preview` if you installed a preview release. Before installing, check the list of [Supported versions][02] below. -> [!NOTE] -> PowerShell 7.4 is an in-place upgrade that removes previous versions of PowerShell 7. Preview -> versions of PowerShell can be installed side-by-side with other versions of PowerShell. If you -> need to run PowerShell 7.4 side-by-side with a previous version, reinstall the previous version -> using the [binary archive][05] method. +Newer versions of PowerShell 7 replace existing previous versions of PowerShell 7. Preview versions +of PowerShell can be installed side-by-side with other versions of PowerShell. Newer preview +versions replace existing previous preview versions. If you need to run PowerShell 7.5 side-by-side +with a previous version, reinstall the previous version using the [binary archive][05] method. [!INCLUDE [Latest version](../../includes/latest-install.md)] @@ -24,6 +23,7 @@ to the package depends on the version of PowerShell you want to install. - PowerShell 7.4 - `https://github.com/PowerShell/PowerShell/releases/download/v7.4.13/powershell-7.4.13-linux-musl-x64.tar.gz` - PowerShell 7.5 - `https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/powershell-7.5.4-linux-musl-x64.tar.gz` +- PowerShell 7.6-preview - `https://github.com/PowerShell/PowerShell/releases/download/v7.6.0-preview.5/powershell-7.6.0-preview.5-linux-musl-x64.tar.gz` Then, in the terminal, execute the following shell commands to install PowerShell 7.4: diff --git a/reference/docs-conceptual/install/install-debian.md b/reference/docs-conceptual/install/install-debian.md index c272c27d85c7..d431562b7ea6 100644 --- a/reference/docs-conceptual/install/install-debian.md +++ b/reference/docs-conceptual/install/install-debian.md @@ -1,19 +1,18 @@ --- -description: Information about installing PowerShell on Debian Linux -ms.date: 10/16/2025 -title: Installing PowerShell on Debian +description: How to install PowerShell on Debian Linux +ms.date: 11/19/2025 +title: Install PowerShell on Debian --- -# Installing PowerShell on Debian +# Install PowerShell on Debian All packages are available on our GitHub [releases][02] page. Before installing, check the list of [Supported versions][01] below. After the package is installed, run `pwsh` from a terminal. Run `pwsh-lts` if you installed a preview release. -> [!NOTE] -> PowerShell 7.4 is an in-place upgrade that removes previous versions of PowerShell 7. Preview -> versions of PowerShell can be installed side-by-side with other versions of PowerShell. If you -> need to run PowerShell 7.4 side-by-side with a previous version, reinstall the previous version -> using the [binary archive][05] method. +Newer versions of PowerShell 7 replace existing previous versions of PowerShell 7. Preview versions +of PowerShell can be installed side-by-side with other versions of PowerShell. Newer preview +versions replace existing previous preview versions. If you need to run PowerShell 7.5 side-by-side +with a previous version, reinstall the previous version using the [binary archive][05] method. Debian uses APT (Advanced Package Tool) as a package manager. @@ -75,6 +74,8 @@ The link to the current version is: - `https://github.com/PowerShell/PowerShell/releases/download/v7.4.13/powershell_7.4.13-1.deb_amd64.deb` - PowerShell 7.5 universal package for supported versions of Debian - `https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/powershell_7.5.4-1.deb_amd64.deb` +- PowerShell 7.6-preview universal package for supported versions of Debian + - `https://github.com/PowerShell/PowerShell/releases/download/v7.6.0-preview.5/powershell-preview_7.6.0-preview.5-1.deb_amd64.deb` The following shell script downloads and installs the current release of PowerShell. You can change the URL to download the version of PowerShell that you want to install. diff --git a/reference/docs-conceptual/install/Installing-PowerShell-on-Linux.md b/reference/docs-conceptual/install/install-powershell-on-linux.md similarity index 100% rename from reference/docs-conceptual/install/Installing-PowerShell-on-Linux.md rename to reference/docs-conceptual/install/install-powershell-on-linux.md diff --git a/reference/docs-conceptual/install/Installing-PowerShell-on-macOS.md b/reference/docs-conceptual/install/install-powershell-on-macos.md similarity index 95% rename from reference/docs-conceptual/install/Installing-PowerShell-on-macOS.md rename to reference/docs-conceptual/install/install-powershell-on-macos.md index 5ae82e19cce7..f1cf422b42d6 100644 --- a/reference/docs-conceptual/install/Installing-PowerShell-on-macOS.md +++ b/reference/docs-conceptual/install/install-powershell-on-macos.md @@ -1,20 +1,19 @@ --- -description: Information about installing PowerShell on macOS -ms.date: 10/23/2025 -title: Installing PowerShell on macOS +description: How to install PowerShell on macOS +ms.date: 11/19/2025 +title: Install PowerShell on macOS --- -# Installing PowerShell on macOS +# Install PowerShell on macOS PowerShell 7 or higher requires macOS 13 and higher. All packages are available on the GitHub [releases][11] page for PowerShell. After the package is installed, run `pwsh` from a terminal. Before installing, check the list of [Supported versions][08]. -> [!NOTE] -> PowerShell 7.4 is an in-place upgrade that removes previous versions of PowerShell 7. You can -> install preview versions of PowerShell side-by-side with other versions of PowerShell. If you need -> to run PowerShell 7.4 side-by-side with a previous version, reinstall the previous version using -> the [binary archive][03] method. +Newer versions of PowerShell 7 replace existing previous versions of PowerShell 7. Preview versions +of PowerShell can be installed side-by-side with other versions of PowerShell. Newer preview +versions replace existing previous preview versions.If you need to run PowerShell 7.5 side-by-side +with a previous version, reinstall the previous version using the [binary archive][03] method. [!INCLUDE [Latest version](../../includes/latest-install.md)] diff --git a/reference/docs-conceptual/install/install-powershell-on-windows-iot-nano.md b/reference/docs-conceptual/install/install-powershell-on-windows-iot-nano.md new file mode 100644 index 000000000000..a69915fa5def --- /dev/null +++ b/reference/docs-conceptual/install/install-powershell-on-windows-iot-nano.md @@ -0,0 +1,118 @@ +--- +description: How to install PowerShell on Windows IoT and Nano Server. +ms.date: 11/19/2025 +title: Install PowerShell on Windows IoT and Nano Server +--- +# Install PowerShell on Windows IoT and Nano Server + +This article describes how to install PowerShell on Windows IoT and Nano Server. + +## Deploy on Windows 11 IoT + +Windows 11 IoT Enterprise comes with Windows PowerShell, which is used to deploy PowerShell 7. + +```powershell +# Replace the placeholder information for the following variables: +$deviceip = '' +$zipfile = 'PowerShell-7.5.4-win-arm64.zip' +$downloadfolder = 'U:\Users\Administrator\Downloads' +# The download location is local to the device. +# There should be enough space for the zip file and the unzipped contents. + +# Create PowerShell session to target device +Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip +$S = New-PSSession -ComputerName $deviceIp -Credential Administrator +# Copy the ZIP package to the device +Copy-Item $zipfile -Destination $downloadfolder -ToSession $S + +#Connect to the device and expand the archive +Enter-PSSession $S +Set-Location U:\Users\Administrator\Downloads +Expand-Archive .\PowerShell-7.5.4-win-arm64.zip + +# Set up remoting to PowerShell 7 +Set-Location .\PowerShell-7.5.4-win-arm64 +# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new +# endpoint with Windows PowerShell 5.1 +.\Install-PowerShellRemoting.ps1 -PowerShellHome . +``` + +When you set up PowerShell Remoting you get an error message and are disconnected from the device. +PowerShell has to restart WinRM. Now you can connect to PowerShell 7 endpoint on device. + +```powershell + +# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1 +Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.5.4 +``` + +Windows 11 IoT Core adds Windows PowerShell when you include _IOT_POWERSHELL_ feature. Use Windows +PowerShell to deploy PowerShell 7 using the same steps as Windows 11 IoT Enterprise. + +To add the latest PowerShell in the shipping image, use the [Import-PSCoreRelease][02] command to +include the package in the workarea and add the _OPENSRC_POWERSHELL_ feature to your image. + +> [!NOTE] +> For ARM64 architecture, Windows PowerShell isn't added when you include _IOT_POWERSHELL_. So the +> zip based install doesn't work. You need to use `Import-PSCoreRelease` command to add it in +> the image. + +## Deploying on Nano Server + +These instructions assume that the Nano Server is a "headless" OS that has a version of PowerShell +already running on it. For more information, see the [Nano Server Image Builder][01] +documentation. + +PowerShell binaries can be deployed using two different methods. + +1. Offline - Mount the Nano Server VHD and unzip the contents of the zip file to your chosen + location within the mounted image. +1. Online - Transfer the zip file over a PowerShell Session and unzip it in your chosen location. + +In both cases, you need the [Windows x64 ZIP release package][03]. Run the commands within an +"Administrator" instance of PowerShell. + +### Offline Deployment of PowerShell + +1. Use your favorite zip utility to unzip the package to a directory within the mounted Nano Server + image. +1. Unmount the image and boot it. +1. Connect to the built-in instance of Windows PowerShell. + +### Online Deployment of PowerShell + +Deploy PowerShell to Nano Server using the following steps. + +```powershell +# Replace the placeholder information for the following variables: +$ipaddr = '' +$credential = Get-Credential # +$zipfile = 'PowerShell-7.5.4-win-x64.zip' +# Connect to the built-in instance of Windows PowerShell +$session = New-PSSession -ComputerName $ipaddr -Credential $credential +# Copy the file to the Nano Server instance +Copy-Item $zipfile C:\ -ToSession $session +# Enter the interactive remote session +Enter-PSSession $session +# Extract the ZIP file +Expand-Archive -Path C:\PowerShell-7.5.4-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7' +``` + +## Supported versions of Windows + +[!INCLUDE [Windows support](../../includes/windows-support.md)] + +You can check the version that you are using by running `winver.exe`. + +## Installation support + +Microsoft supports the installation methods in this document. There may be other third-party methods +of installation available from other sources. While those tools and methods may work, Microsoft +can't support those methods. + +[!INCLUDE [Latest version](../../includes/latest-install.md)] + + +[01]: /windows-server/get-started/deploy-nano-server +[02]: https://github.com/ms-iot/iot-adk-addonkit/blob/master/Tools/IoTCoreImaging/Docs/Import-PSCoreRelease.md#Import-PSCoreRelease +[03]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.zip diff --git a/reference/docs-conceptual/install/install-powershell-on-windows.md b/reference/docs-conceptual/install/install-powershell-on-windows.md new file mode 100644 index 000000000000..d1910a80a8c5 --- /dev/null +++ b/reference/docs-conceptual/install/install-powershell-on-windows.md @@ -0,0 +1,304 @@ +--- +description: How to install PowerShell on Windows +ms.date: 11/19/2025 +title: Install PowerShell on Windows +--- +# Install PowerShell on Windows + +There are multiple ways to install PowerShell in Windows. Each install method is designed to support +different scenarios and workflows. Choose the method that best suits your needs. + +- [WinGet][10] - Recommended way to install PowerShell on Windows clients +- [MSI package][08] - Best choice for Windows Servers and enterprise deployment scenarios +- [ZIP package][11] - Easiest way to _side load_ or install multiple versions + - Use this method for Windows Nano Server, Windows IoT, and Arm-based systems +- [.NET Global tool][07] - A good choice for .NET developers that install and use other global tools +- [Microsoft Store package][09] - An easy way to install for casual users of PowerShell but has + limitations + +PowerShell 7 installs to a new directory and runs side-by-side with Windows PowerShell 5.1. Newer +versions of PowerShell 7 replace existing previous versions of PowerShell 7. Preview versions of +PowerShell can be installed side-by-side with other versions of PowerShell. Newer preview versions +replace existing previous preview versions. + +PowerShell 7 supports updates through Microsoft Update. When you enable this feature, you'll get +the latest PowerShell 7 updates in your traditional Microsoft Update (MU) management flow, whether +that's with Windows Update for Business, WSUS, Microsoft Endpoint Configuration Manager, or the +interactive MU dialog in **Settings**. + +For more information, see the [PowerShell Microsoft Update FAQ][23]. + +## Install PowerShell using WinGet (recommended) + +WinGet, the Windows Package Manager, is a command-line tool enables users to +discover, install, upgrade, remove, and configure applications on Windows client computers. This +tool is the client interface to the Windows Package Manager service. The `winget` command-line tool +is bundled with Windows 11 and modern versions of Windows 10 by default as the **App Installer**. + +> [!NOTE] +> See the [winget documentation][06] for a list of system requirements and install instructions. +> `winget` isn't available on Windows Server 2022 or earlier versions. Windows Server 2025 includes +> `winget` for **Windows Server with Desktop Experience** only. + +The following commands can be used to install PowerShell using the published `winget` packages: + +Search for the latest version of PowerShell + +```powershell +winget search --id Microsoft.PowerShell +``` + +```Output +Name Id Version Source +--------------------------------------------------------------- +PowerShell Microsoft.PowerShell 7.5.4.0 winget +PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.5 winget +``` + +Install PowerShell or PowerShell Preview using the `--id` parameter + +```powershell +winget install --id Microsoft.PowerShell --source winget +``` + +```powershell +winget install --id Microsoft.PowerShell.Preview --source winget +``` + +> [!NOTE] +> On Windows systems using X86 or X64 processor, `winget` installs the MSI package. On systems using +> the Arm64 processor, `winget` installs the Microsoft Store (MSIX) package. + +## Install the MSI package + +To install PowerShell on Windows, use the following links to download the install +package from GitHub. + +Latest stable release: + +- [PowerShell-7.5.4-win-x64.msi][14] +- [PowerShell-7.5.4-win-x86.msi][16] +- [PowerShell-7.5.4-win-arm64.msi][12] + +Latest Preview release: + +- [PowerShell-7.6.0-preview.5-win-x64.msi][19] +- [PowerShell-7.6.0-preview.5-win-x86.msi][20] +- [PowerShell-7.6.0-preview.5-win-arm64.msi][18] + +Once downloaded, double-click the installer file and follow the prompts. + +The installer creates a shortcut in the Windows Start Menu. + +- By default the package is installed to `$Env:ProgramFiles\PowerShell\7` + - The install location is added to your `$Env:PATH` environment variable +- Preview releases of PowerShell 7 install to `$Env:ProgramFiles\PowerShell\7-preview` +- You can launch PowerShell via the Start Menu or `$Env:ProgramFiles\PowerShell\7\pwsh.exe` + +> [!NOTE] +> To run PowerShell 7.5 side-by-side with other versions of PowerShell 7, use the [ZIP install][11] +> method to install the other version to a different folder. + +### Install the MSI package from the command line + +MSI packages can be installed from the command line allowing administrators to deploy packages +without user interaction. The MSI package includes the following properties to control the +installation options: + +- `USE_MU` - This property has two possible values: + - `1` (default) - Opts into updating through Microsoft Update, WSUS, or Configuration Manager + - `0` - Don't opt into updating through Microsoft Update, WSUS, or Configuration Manager +- `ENABLE_MU` + - `1` (default) - Opts into using Microsoft Update for Automatic Updates + - `0` - Don't opt into using Microsoft Update + + > [!NOTE] + > Enabling updates may have been set in a previous installation or manual configuration. Using + > `ENABLE_MU=0` doesn't remove the existing settings. Also, this setting can be overruled by + > Group Policy settings controlled by your administrator. + +- `ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL` - This property controls the option for adding the + `Open PowerShell` item to the context menu in Windows Explorer. +- `ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL` - This property controls the option for adding the + `Run with PowerShell` item to the context menu in Windows Explorer. +- `ENABLE_PSREMOTING` - This property controls the option for enabling PowerShell remoting during + installation. +- `REGISTER_MANIFEST` - This property controls the option for registering the Windows Event + Logging manifest. +- `ADD_PATH` - This property controls the option for adding PowerShell to the Windows PATH + environment variable. +- `DISABLE_TELEMETRY` - This property controls the option for disabling PowerShell's telemetry by + setting the `POWERSHELL_TELEMETRY_OPTOUT` environment variable. +- `INSTALLFOLDER` - This property controls the installation directory. The default is + `$Env:ProgramFiles\PowerShell\`. This is the location where the installer creates the versioned + subfolder. You can't change the name of the versioned subfolder. + - For current releases, the versioned subfolder is `7` + - For preview releases, the versioned subfolder is `7-preview` + +The following example shows how to silently install PowerShell with all the install options enabled. + +```powershell +msiexec.exe /package PowerShell-7.5.4-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1 +``` + +For a full list of command-line options for `Msiexec.exe`, see [Command line options][04]. + +## Install from the ZIP package + +PowerShell binary ZIP archives are provided to enable advanced deployment scenarios. +Download one of the following ZIP archives from the [current release][21] page. + +- [PowerShell-7.5.4-win-x64.zip][15] +- [PowerShell-7.5.4-win-x86.zip][17] +- [PowerShell-7.5.4-win-arm64.zip][13] + +Depending on how you download the file you may need to unblock the file using the `Unblock-File` +cmdlet. Unzip the contents to the location of your choice and run `pwsh.exe` from there. Unlike +installing the MSI packages, installing the ZIP archive doesn't check for prerequisites. For +remoting over WSMan to work properly, ensure that you've met the [prerequisites][03]. + +Use this method to install the ARM-based version of PowerShell on computers like the Microsoft +Surface Pro X. For best results, install PowerShell to the to `$Env:ProgramFiles\PowerShell\7` +folder. + +## Install as a .NET Global tool + +If you already have the [.NET Core SDK][01] installed, you can install PowerShell +as a [.NET Global tool][02]. + +``` +dotnet tool install --global PowerShell +``` + +The dotnet tool installer adds `$HOME\.dotnet\tools` to your `$Env:PATH` environment variable. +However, the currently running shell doesn't have the updated `$Env:PATH`. You can start PowerShell +from a new shell by typing `pwsh`. + +## Install from the Microsoft Store + +PowerShell can be installed from the Microsoft Store. You can find the +PowerShell release in the [Microsoft Store][22] site or in the Store application in Windows. + +Benefits of the Microsoft Store package: + +- Automatic updates built right into Windows +- Integrates with other software distribution mechanisms like Intune and Configuration Manager +- Can install on Windows systems using x86, x64, or Arm64 processors + +### Known limitations + +By default, Windows Store packages run in an application sandbox that virtualizes access to some +filesystem and registry locations. Changes to virtualized file and registry locations don't persist +outside of the application sandbox. + +This sandbox blocks all changes to the application's root folder. Any system-level configuration +settings stored in `$PSHOME` can't be modified. This includes the WSMAN configuration. This prevents +remote sessions from connecting to Store-based installs of PowerShell. User-level configurations and +SSH remoting are supported. + +The following commands need write to `$PSHOME`. These commands aren't supported in a Microsoft Store +instance of PowerShell. + +- `Register-PSSessionConfiguration` +- `Update-Help -Scope AllUsers` +- `Enable-ExperimentalFeature -Scope AllUsers` +- `Set-ExecutionPolicy -Scope LocalMachine` + +For more information, see [Understanding how packaged desktop apps run on Windows][05]. + +Beginning in PowerShell 7.2, the PowerShell package is now exempt from file and registry +virtualization. Changes to virtualized file and registry locations now persist outside of the +application sandbox. However, changes to the application's root folder are still blocked. + +> [!IMPORTANT] +> You must be running on Windows build 1903 or higher for this exemption to work. + +## Upgrade an existing installation + +For best results when upgrading, you should use the same install method you used when you first +installed PowerShell. If you aren't sure how PowerShell was installed, you can check the value of +the `$PSHOME` variable, which always points to the directory containing PowerShell that the current +session is running. + +- If the value is `$HOME\.dotnet\tools`, PowerShell was installed with the [.NET Global tool][07]. +- If the value is `$Env:ProgramFiles\PowerShell\7`, PowerShell was installed as an + [MSI package][08] or with [WinGet][10] on a computer with an X86 or x64 processor. +- If the value starts with `$Env:ProgramFiles\WindowsApps\`, PowerShell was installed as a + [Microsoft Store package][09] or with [WinGet][10] on computer with an ARM processor. +- If the value is anything else, it's likely that PowerShell was installed as a [ZIP package][11]. + +If you installed via the MSI package, that information also appears in the +**Programs and Features** Control Panel. + +To determine whether PowerShell may be upgraded with WinGet, run the following command: + +```powershell +winget list --id Microsoft.PowerShell --upgrade-available +``` + +If there is an available upgrade, the output indicates the latest available version. Use the +following command to upgrade PowerShell using WinGet: + +```powershell +winget upgrade --id Microsoft.PowerShell +``` + +## Uninstall PowerShell 7 + +The process of uninstalling PowerShell 7 depends on the installation method you used. + +- If you installed PowerShell using WinGet, run the following command: + + ```powershell + winget uninstall --id Microsoft.PowerShell + ``` + +- If you installed PowerShell using the MSI package, you can uninstall it from the + **Programs and Features** Control Panel. +- If you installed PowerShell using the ZIP package, delete the folder where you unzipped the files. +- If you installed PowerShell from the Microsoft Store, open the **Start** menu and search for + `PowerShell 7`. Select **Uninstall** from the menu of options. +- If you installed PowerShell as a .NET Global tool, run the following command: + + ```powershell + dotnet tool uninstall --global PowerShell + ``` + +## Supported versions of Windows + +[!INCLUDE [Windows support](../../includes/windows-support.md)] + +You can check the version that you are using by running `winver.exe`. + +## Installation support + +Microsoft supports the installation methods in this document. There may be other third-party methods +of installation available from other sources. While those tools and methods may work, Microsoft +can't support those methods. + +[!INCLUDE [Latest version](../../includes/latest-install.md)] + + +[01]: /dotnet/core/sdk +[02]: /dotnet/core/tools/global-tools +[03]: /powershell/module/microsoft.powershell.core/about/about_remote_requirements +[04]: /windows/desktop/Msi/command-line-options +[05]: /windows/msix/desktop/desktop-to-uwp-behind-the-scenes +[06]: /windows/package-manager/winget +[07]: #dotnet +[08]: #msi +[09]: #msstore +[10]: #winget +[11]: #zip +[12]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-arm64.msi +[13]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-arm64.zip +[14]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.msi +[15]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.zip +[16]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x86.msi +[17]: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x86.zip +[18]: https://github.com/PowerShell/PowerShell/releases/download/v7.6.0-preview.5/PowerShell-7.6.0-preview.5-win-arm64.msi +[19]: https://github.com/PowerShell/PowerShell/releases/download/v7.6.0-preview.5/PowerShell-7.6.0-preview.5-win-x64.msi +[20]: https://github.com/PowerShell/PowerShell/releases/download/v7.6.0-preview.5/PowerShell-7.6.0-preview.5-win-x86.msi +[21]: https://github.com/PowerShell/PowerShell/releases/latest +[22]: https://www.microsoft.com/store/apps/9MZ1SNWT0N5D +[23]: microsoft-update-faq.yml diff --git a/reference/docs-conceptual/install/Installing-PowerShell.yml b/reference/docs-conceptual/install/install-powershell.yml similarity index 74% rename from reference/docs-conceptual/install/Installing-PowerShell.yml rename to reference/docs-conceptual/install/install-powershell.yml index eaaf56a4be80..154938c3d2a8 100644 --- a/reference/docs-conceptual/install/Installing-PowerShell.yml +++ b/reference/docs-conceptual/install/install-powershell.yml @@ -1,13 +1,13 @@ ### YamlMime:Landing title: Install PowerShell on Windows, Linux, and macOS -summary: Learn about installing PowerShell on Windows, Linux, and macOS. +summary: Learn how to install PowerShell on Windows, Linux, and macOS. metadata: title: Install PowerShell on Windows, Linux, and macOS - description: Learn about installing PowerShell on Windows, Linux, and macOS. + description: Learn how to install PowerShell on Windows, Linux, and macOS. ms.topic: landing-page - ms.date: 11/16/2023 + ms.date: 11/19/2025 # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | sample | tutorial | video | whats-new @@ -19,9 +19,11 @@ landingContent: - linkListType: overview links: - text: Install PowerShell on Windows - url: Installing-PowerShell-on-Windows.md + url: install-powershell-on-windows.md + - text: Install PowerShell on Windows IoT and Nano Server + url: install-powershell-on-windows-iot-nano.md - text: Supported Windows releases - url: Installing-PowerShell-on-Windows.md#supported-versions-of-windows + url: install-powershell-on-windows.md#supported-versions-of-windows # Card - title: macOS @@ -29,9 +31,9 @@ landingContent: - linkListType: overview links: - text: Install on macOS - url: Installing-PowerShell-on-macOS.md + url: install-powershell-on-macos.md - text: Supported macOS releases - url: Installing-PowerShell-on-macOS.md#supported-versions + url: install-powershell-on-macos.md#supported-versions # Card - title: Linux @@ -39,7 +41,7 @@ landingContent: - linkListType: overview links: - text: Linux overview - url: Installing-PowerShell-on-Linux.md + url: install-powershell-on-linux.md - text: Alpine url: install-alpine.md - text: Debian diff --git a/reference/docs-conceptual/install/install-rhel.md b/reference/docs-conceptual/install/install-rhel.md index f00e2909edf1..fe47b9ffff1e 100644 --- a/reference/docs-conceptual/install/install-rhel.md +++ b/reference/docs-conceptual/install/install-rhel.md @@ -1,6 +1,6 @@ --- description: Information about installing PowerShell on Red Hat Enterprise Linux (RHEL) -ms.date: 10/16/2025 +ms.date: 11/19/2025 title: Installing PowerShell on Red Hat Enterprise Linux (RHEL) --- # Installing PowerShell on Red Hat Enterprise Linux (RHEL) @@ -9,11 +9,10 @@ All packages are available on our GitHub [releases][02] page. Before installing, [Supported versions][01] below. After the package is installed, run `pwsh` from a terminal. Run `pwsh-preview` if you installed a preview release. -> [!NOTE] -> PowerShell 7.4 is an in-place upgrade that removes previous versions of PowerShell 7. Preview -> versions of PowerShell can be installed side-by-side with other versions of PowerShell. If you -> need to run PowerShell 7.4 side-by-side with a previous version, reinstall the previous version -> using the [binary archive][05] method. +Newer versions of PowerShell 7 replace existing previous versions of PowerShell 7. Preview versions +of PowerShell can be installed side-by-side with other versions of PowerShell. Newer preview +versions replace existing previous preview versions. If you need to run PowerShell 7.5 side-by-side +with a previous version, reinstall the previous version using the [binary archive][05] method. RHEL 7 uses `yum` and RHEL 8 and higher uses the `dnf` package manager. diff --git a/reference/docs-conceptual/install/install-ubuntu.md b/reference/docs-conceptual/install/install-ubuntu.md index f9e04efe2a24..fe097c1ee044 100644 --- a/reference/docs-conceptual/install/install-ubuntu.md +++ b/reference/docs-conceptual/install/install-ubuntu.md @@ -1,6 +1,6 @@ --- description: Information about installing PowerShell on Ubuntu -ms.date: 10/16/2025 +ms.date: 11/19/2025 title: Installing PowerShell on Ubuntu --- # Installing PowerShell on Ubuntu @@ -9,11 +9,10 @@ All packages are available on our GitHub [releases][05] page. Before installing, check the list of [Supported versions][04] below. After the package is installed, run `pwsh` from a terminal. Run `pwsh-lts` if you installed a preview release. -> [!NOTE] -> PowerShell 7.4 is an in-place upgrade that removes previous versions of PowerShell 7. Preview -> versions of PowerShell can be installed side-by-side with other versions of PowerShell. If you -> need to run PowerShell 7.4 side-by-side with a previous version, reinstall the previous version -> using the [binary archive][08] method. +Newer versions of PowerShell 7 replace existing previous versions of PowerShell 7. Preview versions +of PowerShell can be installed side-by-side with other versions of PowerShell. Newer preview +versions replace existing previous preview versions. If you need to run PowerShell 7.5 side-by-side +with a previous version, reinstall the previous version using the [binary archive][08] method. Ubuntu uses APT (Advanced Package Tool) as a package manager. diff --git a/reference/docs-conceptual/toc.yml b/reference/docs-conceptual/toc.yml index 3aca7ac271ed..cba44bb52938 100644 --- a/reference/docs-conceptual/toc.yml +++ b/reference/docs-conceptual/toc.yml @@ -17,28 +17,30 @@ items: - name: Install items: - name: Overview - href: install/installing-powershell.yml - - name: Installing PowerShell on Windows - href: install/installing-powershell-on-windows.md - - name: Installing PowerShell on Linux + href: install/install-powershell.yml + - name: Install PowerShell on Windows + href: install/install-powershell-on-windows.md + - name: Install PowerShell on Linux items: - name: Overview - href: install/installing-powershell-on-linux.md - - name: Installing on Alpine + href: install/install-powershell-on-linux.md + - name: Install on Alpine href: install/install-alpine.md - - name: Installing on Debian + - name: Install on Debian href: install/install-debian.md - - name: Installing on RHEL + - name: Install on RHEL href: install/install-rhel.md - - name: Installing on Ubuntu + - name: Install on Ubuntu href: install/install-ubuntu.md - name: Community support for Linux href: install/community-support.md - name: Alternate ways to install on Linux href: install/install-other-linux.md - - name: Installing PowerShell on macOS - href: install/installing-powershell-on-macos.md - - name: Installing PowerShell on Arm + - name: Install PowerShell on macOS + href: install/install-powershell-on-macos.md + - name: Install PowerShell on Windows IoT and Nano Server + href: install/install-powershell-on-windows-iot-nano.md + - name: Install PowerShell on Arm href: install/powershell-on-arm.md - name: Using PowerShell in Docker href: install/PowerShell-in-Docker.md