From 6abf2e92270a8d022bed1b91531de45f0dc1b0dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serkan=20ZENG=C4=B0N?= Date: Wed, 17 Jun 2020 13:49:00 +0300 Subject: [PATCH 1/6] the powershell command to install the update should include the command to use TLS1.2 --- .../Services/PowerShellContext/Handlers/GetVersionHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs index 93d8888cf..5cb39c3aa 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs @@ -118,7 +118,7 @@ private async Task CheckPackageManagement() { StringBuilder errors = new StringBuilder(); await _powerShellContextService.ExecuteScriptStringAsync( - "powershell.exe -NoLogo -NoProfile -Command 'Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber'", + "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber'", errors, writeInputToHost: true, writeOutputToHost: true, From e70923f6c56bcc77e30fb8c0a23c80702572eeea Mon Sep 17 00:00:00 2001 From: Serkan Zengin Date: Thu, 18 Jun 2020 09:14:55 +0300 Subject: [PATCH 2/6] Update src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs Co-authored-by: Tyler James Leonhardt --- .../Services/PowerShellContext/Handlers/GetVersionHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs index 5cb39c3aa..b67e375dd 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs @@ -118,7 +118,7 @@ private async Task CheckPackageManagement() { StringBuilder errors = new StringBuilder(); await _powerShellContextService.ExecuteScriptStringAsync( - "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber'", + "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber' -Repository PSGallery", errors, writeInputToHost: true, writeOutputToHost: true, From 7975481e9bc01b6b97e776c28f112e3d289a54c6 Mon Sep 17 00:00:00 2001 From: Serkan Zengin Date: Thu, 18 Jun 2020 09:20:01 +0300 Subject: [PATCH 3/6] Enhanced package update failure message on line 143 and added Repository option to Install-Module command --- .../PowerShellContext/Handlers/GetVersionHandler.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs index 5cb39c3aa..290a53158 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs @@ -82,7 +82,7 @@ private async Task CheckPackageManagement() foreach (PSModuleInfo module in await _powerShellContextService.ExecuteCommandAsync(getModule)) { // The user has a good enough version of PackageManagement - if(module.Version >= s_desiredPackageManagementVersion) + if (module.Version >= s_desiredPackageManagementVersion) { break; } @@ -100,7 +100,7 @@ private async Task CheckPackageManagement() { Message = "You have an older version of PackageManagement known to cause issues with the PowerShell extension. Would you like to update PackageManagement (You will need to restart the PowerShell extension after)?", Type = MessageType.Warning, - Actions = new [] + Actions = new[] { new MessageActionItem { @@ -118,7 +118,7 @@ private async Task CheckPackageManagement() { StringBuilder errors = new StringBuilder(); await _powerShellContextService.ExecuteScriptStringAsync( - "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber'", + "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber' -Repository PSGallery", errors, writeInputToHost: true, writeOutputToHost: true, @@ -140,7 +140,7 @@ await _powerShellContextService.ExecuteScriptStringAsync( _languageServer.Window.ShowMessage(new ShowMessageParams { Type = MessageType.Error, - Message = "PackageManagement update failed. Please run the following command in a new Windows PowerShell session and then restart the PowerShell extension: `Install-Module PackageManagement -Force -AllowClobber -MinimumVersion 1.4.6`" + Message = "PackageManagement update failed. This might be due to PowerShell Gallery using TLS 1.2. More info can be found at https://aka.ms/psgallerytls" }); } } From 325e5b11ab5e12d55fdee3cdbc4882b3f510899b Mon Sep 17 00:00:00 2001 From: Serkan Zengin Date: Thu, 18 Jun 2020 09:21:31 +0300 Subject: [PATCH 4/6] Revert "Enhanced package update failure message on line 143 and added Repository option to Install-Module command" This reverts commit 7975481e9bc01b6b97e776c28f112e3d289a54c6. --- .../PowerShellContext/Handlers/GetVersionHandler.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs index 290a53158..5cb39c3aa 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs @@ -82,7 +82,7 @@ private async Task CheckPackageManagement() foreach (PSModuleInfo module in await _powerShellContextService.ExecuteCommandAsync(getModule)) { // The user has a good enough version of PackageManagement - if (module.Version >= s_desiredPackageManagementVersion) + if(module.Version >= s_desiredPackageManagementVersion) { break; } @@ -100,7 +100,7 @@ private async Task CheckPackageManagement() { Message = "You have an older version of PackageManagement known to cause issues with the PowerShell extension. Would you like to update PackageManagement (You will need to restart the PowerShell extension after)?", Type = MessageType.Warning, - Actions = new[] + Actions = new [] { new MessageActionItem { @@ -118,7 +118,7 @@ private async Task CheckPackageManagement() { StringBuilder errors = new StringBuilder(); await _powerShellContextService.ExecuteScriptStringAsync( - "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber' -Repository PSGallery", + "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber'", errors, writeInputToHost: true, writeOutputToHost: true, @@ -140,7 +140,7 @@ await _powerShellContextService.ExecuteScriptStringAsync( _languageServer.Window.ShowMessage(new ShowMessageParams { Type = MessageType.Error, - Message = "PackageManagement update failed. This might be due to PowerShell Gallery using TLS 1.2. More info can be found at https://aka.ms/psgallerytls" + Message = "PackageManagement update failed. Please run the following command in a new Windows PowerShell session and then restart the PowerShell extension: `Install-Module PackageManagement -Force -AllowClobber -MinimumVersion 1.4.6`" }); } } From 932f24c71b8416f7b330acff2e70ea48edf91aed Mon Sep 17 00:00:00 2001 From: Serkan Zengin Date: Thu, 18 Jun 2020 09:26:30 +0300 Subject: [PATCH 5/6] Enhanced error message while installing PackageManagement --- .../PowerShellContext/Handlers/GetVersionHandler.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs index b67e375dd..290a53158 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs @@ -82,7 +82,7 @@ private async Task CheckPackageManagement() foreach (PSModuleInfo module in await _powerShellContextService.ExecuteCommandAsync(getModule)) { // The user has a good enough version of PackageManagement - if(module.Version >= s_desiredPackageManagementVersion) + if (module.Version >= s_desiredPackageManagementVersion) { break; } @@ -100,7 +100,7 @@ private async Task CheckPackageManagement() { Message = "You have an older version of PackageManagement known to cause issues with the PowerShell extension. Would you like to update PackageManagement (You will need to restart the PowerShell extension after)?", Type = MessageType.Warning, - Actions = new [] + Actions = new[] { new MessageActionItem { @@ -140,7 +140,7 @@ await _powerShellContextService.ExecuteScriptStringAsync( _languageServer.Window.ShowMessage(new ShowMessageParams { Type = MessageType.Error, - Message = "PackageManagement update failed. Please run the following command in a new Windows PowerShell session and then restart the PowerShell extension: `Install-Module PackageManagement -Force -AllowClobber -MinimumVersion 1.4.6`" + Message = "PackageManagement update failed. This might be due to PowerShell Gallery using TLS 1.2. More info can be found at https://aka.ms/psgallerytls" }); } } From 1fbbdd8ed122f41475e568e6a6e99fb4d02d6acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serkan=20ZENG=C4=B0N?= Date: Thu, 18 Jun 2020 19:07:21 +0300 Subject: [PATCH 6/6] Repository argument put outside of single quote by mistake. --- .../Services/PowerShellContext/Handlers/GetVersionHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs index 290a53158..b61e32798 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetVersionHandler.cs @@ -118,7 +118,7 @@ private async Task CheckPackageManagement() { StringBuilder errors = new StringBuilder(); await _powerShellContextService.ExecuteScriptStringAsync( - "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber' -Repository PSGallery", + "powershell.exe -NoLogo -NoProfile -Command '[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber -Repository PSGallery'", errors, writeInputToHost: true, writeOutputToHost: true,