From 1877048d99a25e215e1b4d2f49518ddfa4a8d127 Mon Sep 17 00:00:00 2001 From: "Tyler Leonhardt (POWERSHELL)" Date: Wed, 9 Jan 2019 17:08:52 -0800 Subject: [PATCH 1/5] workaround attach problems --- src/PowerShellEditorServices/Session/RunspaceDetails.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/PowerShellEditorServices/Session/RunspaceDetails.cs b/src/PowerShellEditorServices/Session/RunspaceDetails.cs index 50ea04e54..b8a9d350f 100644 --- a/src/PowerShellEditorServices/Session/RunspaceDetails.cs +++ b/src/PowerShellEditorServices/Session/RunspaceDetails.cs @@ -225,8 +225,11 @@ internal static RunspaceDetails CreateFromRunspace( defaultValue: string.Empty); // hostname is 'ServerRemoteHost' when the user enters a session. - // ex. Enter-PSSession, Enter-PSHostProcess - if (hostName.Equals("ServerRemoteHost", StringComparison.Ordinal)) + // ex. Enter-PSSession + // Attaching to process currently needs to be marked as a local session + // so we skip this if block if the runspace is from Enter-PSHostProcess + if (hostName.Equals("ServerRemoteHost", StringComparison.Ordinal) + && !(runspace.OriginalConnectionInfo is NamedPipeConnectionInfo)) { runspaceLocation = RunspaceLocation.Remote; connectionString = From 39b861661b6b393133258ef2e84c6e07d90b5a21 Mon Sep 17 00:00:00 2001 From: "Tyler Leonhardt (POWERSHELL)" Date: Wed, 9 Jan 2019 17:23:04 -0800 Subject: [PATCH 2/5] use string compare since type is not in PSv3 --- src/PowerShellEditorServices/Session/RunspaceDetails.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Session/RunspaceDetails.cs b/src/PowerShellEditorServices/Session/RunspaceDetails.cs index b8a9d350f..c9b4a9d24 100644 --- a/src/PowerShellEditorServices/Session/RunspaceDetails.cs +++ b/src/PowerShellEditorServices/Session/RunspaceDetails.cs @@ -229,7 +229,7 @@ internal static RunspaceDetails CreateFromRunspace( // Attaching to process currently needs to be marked as a local session // so we skip this if block if the runspace is from Enter-PSHostProcess if (hostName.Equals("ServerRemoteHost", StringComparison.Ordinal) - && !(runspace.OriginalConnectionInfo is NamedPipeConnectionInfo)) + && !(runspace.OriginalConnectionInfo.GetType().ToString() == "NamedPipeConnectionInfo")) { runspaceLocation = RunspaceLocation.Remote; connectionString = From 65414ab5a50e5243a6ce445ab67052ccf2a983c7 Mon Sep 17 00:00:00 2001 From: Tyler James Leonhardt Date: Wed, 9 Jan 2019 18:10:59 -0800 Subject: [PATCH 3/5] Update src/PowerShellEditorServices/Session/RunspaceDetails.cs --- src/PowerShellEditorServices/Session/RunspaceDetails.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Session/RunspaceDetails.cs b/src/PowerShellEditorServices/Session/RunspaceDetails.cs index c9b4a9d24..163ebdc0c 100644 --- a/src/PowerShellEditorServices/Session/RunspaceDetails.cs +++ b/src/PowerShellEditorServices/Session/RunspaceDetails.cs @@ -229,7 +229,7 @@ internal static RunspaceDetails CreateFromRunspace( // Attaching to process currently needs to be marked as a local session // so we skip this if block if the runspace is from Enter-PSHostProcess if (hostName.Equals("ServerRemoteHost", StringComparison.Ordinal) - && !(runspace.OriginalConnectionInfo.GetType().ToString() == "NamedPipeConnectionInfo")) + && runspace.OriginalConnectionInfo.GetType().ToString() != "NamedPipeConnectionInfo") { runspaceLocation = RunspaceLocation.Remote; connectionString = From 8db01257b676edb17bc0b653ff6326bbea269ba4 Mon Sep 17 00:00:00 2001 From: "Tyler Leonhardt (POWERSHELL)" Date: Wed, 9 Jan 2019 18:22:05 -0800 Subject: [PATCH 4/5] use full assembly name --- src/PowerShellEditorServices/Session/RunspaceDetails.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Session/RunspaceDetails.cs b/src/PowerShellEditorServices/Session/RunspaceDetails.cs index 163ebdc0c..4a6980d6c 100644 --- a/src/PowerShellEditorServices/Session/RunspaceDetails.cs +++ b/src/PowerShellEditorServices/Session/RunspaceDetails.cs @@ -229,7 +229,7 @@ internal static RunspaceDetails CreateFromRunspace( // Attaching to process currently needs to be marked as a local session // so we skip this if block if the runspace is from Enter-PSHostProcess if (hostName.Equals("ServerRemoteHost", StringComparison.Ordinal) - && runspace.OriginalConnectionInfo.GetType().ToString() != "NamedPipeConnectionInfo") + && runspace.OriginalConnectionInfo.GetType().ToString() != "System.Management.Automation.Runspaces.NamedPipeConnectionInfo") { runspaceLocation = RunspaceLocation.Remote; connectionString = From 544edcf00b7f975e6b71a88e985c4cf0fadb2146 Mon Sep 17 00:00:00 2001 From: "Tyler Leonhardt (POWERSHELL)" Date: Thu, 10 Jan 2019 12:49:29 -0800 Subject: [PATCH 5/5] null check --- src/PowerShellEditorServices/Session/RunspaceDetails.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Session/RunspaceDetails.cs b/src/PowerShellEditorServices/Session/RunspaceDetails.cs index 4a6980d6c..d016e2fe8 100644 --- a/src/PowerShellEditorServices/Session/RunspaceDetails.cs +++ b/src/PowerShellEditorServices/Session/RunspaceDetails.cs @@ -229,7 +229,7 @@ internal static RunspaceDetails CreateFromRunspace( // Attaching to process currently needs to be marked as a local session // so we skip this if block if the runspace is from Enter-PSHostProcess if (hostName.Equals("ServerRemoteHost", StringComparison.Ordinal) - && runspace.OriginalConnectionInfo.GetType().ToString() != "System.Management.Automation.Runspaces.NamedPipeConnectionInfo") + && runspace.OriginalConnectionInfo?.GetType().ToString() != "System.Management.Automation.Runspaces.NamedPipeConnectionInfo") { runspaceLocation = RunspaceLocation.Remote; connectionString =