From a3393a16686ec656fee65b1d56571f236c0814dd Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Fri, 5 Jan 2018 14:49:20 -0800 Subject: [PATCH 1/3] fix *-Content calls in psedit scripts and set ComputerName default --- .../Session/RemoteFileManager.cs | 25 +++++++++++++++++-- .../Session/SessionDetails.cs | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/PowerShellEditorServices/Session/RemoteFileManager.cs b/src/PowerShellEditorServices/Session/RemoteFileManager.cs index 194c5932b..cccab6e02 100644 --- a/src/PowerShellEditorServices/Session/RemoteFileManager.cs +++ b/src/PowerShellEditorServices/Session/RemoteFileManager.cs @@ -47,7 +47,17 @@ public class RemoteFileManager $filePathName = $_.FullName # Get file contents - $contentBytes = Get-Content -Path $filePathName -Raw -Encoding Byte + $params = @{ Path=$filePathName; Raw=$true } + if ($PSVersionTable.PSEdition -eq 'Core') + { + $params += @{ AsByteStream=$true } + } + else + { + $params += @{ Encoding='Byte' } + } + + $contentBytes = Get-Content @params # Notify client for file open. New-Event -SourceIdentifier PSESRemoteSessionOpenFile -EventArguments @($filePathName, $contentBytes) > $null @@ -85,7 +95,18 @@ public class RemoteFileManager [byte[]] $Content ) - Set-Content -Path $RemoteFilePath -Value $Content -Encoding Byte -Force 2>&1 + # Set file contents + $params = @{ Path=$RemoteFilePath; Value=$Content; Force=$true } + if ($PSVersionTable.PSEdition -eq 'Core') + { + $params += @{ AsByteStream=$true } + } + else + { + $params += @{ Encoding='Byte' } + } + + Set-Content @params 2>&1 "; #endregion diff --git a/src/PowerShellEditorServices/Session/SessionDetails.cs b/src/PowerShellEditorServices/Session/SessionDetails.cs index 0708dae01..b3cd86508 100644 --- a/src/PowerShellEditorServices/Session/SessionDetails.cs +++ b/src/PowerShellEditorServices/Session/SessionDetails.cs @@ -56,7 +56,7 @@ public static PSCommand GetDetailsCommand() { PSCommand infoCommand = new PSCommand(); infoCommand.AddScript( - "@{ 'computerName' = $env:ComputerName; 'processId' = $PID; 'instanceId' = $host.InstanceId }"); + "@{ 'computerName' = if ($ExecutionContext.Host.Runspace.ConnectionInfo) {$ExecutionContext.Host.Runspace.ConnectionInfo.ComputerName} else {'localhost'}; 'processId' = $PID; 'instanceId' = $host.InstanceId }"); return infoCommand; } From 764db9427eb7418ac3b553de0404177cb50f20c5 Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Fri, 5 Jan 2018 17:36:41 -0800 Subject: [PATCH 2/3] fix splatting --- src/PowerShellEditorServices/Session/RemoteFileManager.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PowerShellEditorServices/Session/RemoteFileManager.cs b/src/PowerShellEditorServices/Session/RemoteFileManager.cs index cccab6e02..c36582fab 100644 --- a/src/PowerShellEditorServices/Session/RemoteFileManager.cs +++ b/src/PowerShellEditorServices/Session/RemoteFileManager.cs @@ -50,11 +50,11 @@ public class RemoteFileManager $params = @{ Path=$filePathName; Raw=$true } if ($PSVersionTable.PSEdition -eq 'Core') { - $params += @{ AsByteStream=$true } + $params['AsByteStream']=$true } else { - $params += @{ Encoding='Byte' } + $params['Encoding']='Byte' } $contentBytes = Get-Content @params @@ -99,11 +99,11 @@ public class RemoteFileManager $params = @{ Path=$RemoteFilePath; Value=$Content; Force=$true } if ($PSVersionTable.PSEdition -eq 'Core') { - $params += @{ AsByteStream=$true } + $params['AsByteStream']=$true } else { - $params += @{ Encoding='Byte' } + $params['Encoding']='Byte' } Set-Content @params 2>&1 From 1ff410d40d5ccee7208a9c39b0faf754dea36e73 Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Mon, 8 Jan 2018 11:02:58 -0800 Subject: [PATCH 3/3] change to MachineName --- src/PowerShellEditorServices/Session/SessionDetails.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Session/SessionDetails.cs b/src/PowerShellEditorServices/Session/SessionDetails.cs index b3cd86508..708e6ec9d 100644 --- a/src/PowerShellEditorServices/Session/SessionDetails.cs +++ b/src/PowerShellEditorServices/Session/SessionDetails.cs @@ -56,7 +56,7 @@ public static PSCommand GetDetailsCommand() { PSCommand infoCommand = new PSCommand(); infoCommand.AddScript( - "@{ 'computerName' = if ($ExecutionContext.Host.Runspace.ConnectionInfo) {$ExecutionContext.Host.Runspace.ConnectionInfo.ComputerName} else {'localhost'}; 'processId' = $PID; 'instanceId' = $host.InstanceId }"); + "@{ 'computerName' = if ([Environment]::MachineName) {[Environment]::MachineName} else {'localhost'}; 'processId' = $PID; 'instanceId' = $host.InstanceId }"); return infoCommand; }