From c601a3e3e22d919ddb913faef1bc80b02999fe8d Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Fri, 17 May 2024 15:38:37 +0200 Subject: [PATCH] [ARM][Settings][CmdNotFound]Fix CmdNotFound page init (#32892) On ARM, process does not inherit environment, so PATH variable only contains SYSTEM values. As pwsh.exe path is in USER PATH, check requirements script on CmdNotFound page load will fail and as a result all requirements will be shown as missing. Therefore, on loading, we manually set PATH variable, same as we do after installing pwsh7. --- src/settings-ui/Settings.UI/ViewModels/CmdNotFoundViewModel.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/settings-ui/Settings.UI/ViewModels/CmdNotFoundViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/CmdNotFoundViewModel.cs index c5b8684eddf..458ed443d63 100644 --- a/src/settings-ui/Settings.UI/ViewModels/CmdNotFoundViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/CmdNotFoundViewModel.cs @@ -58,6 +58,9 @@ private void InitializeEnabledValue() _enabledStateIsGPOConfigured = true; } + // Update PATH environment variable to get pwsh.exe on further calls. + Environment.SetEnvironmentVariable("PATH", (Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty) + ";" + (Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.User) ?? string.Empty), EnvironmentVariableTarget.Process); + CheckCommandNotFoundRequirements(); }