@@ -104,8 +104,41 @@ public RunspaceDetails(
104
104
PowerShellVersionDetails powerShellVersion ,
105
105
RunspaceLocation runspaceLocation ,
106
106
string connectionString )
107
+ : this (
108
+ runspace . InstanceId ,
109
+ runspace ,
110
+ powerShellVersion ,
111
+ runspaceLocation ,
112
+ connectionString )
107
113
{
108
- this . Id = runspace . InstanceId ;
114
+ }
115
+
116
+ /// <summary>
117
+ /// Creates a new instance of the RunspaceDetails class.
118
+ /// </summary>
119
+ /// <param name="instanceId">
120
+ /// The InstanceId Guid for the runspace.
121
+ /// </param>
122
+ /// <param name="runspace">
123
+ /// The runspace for which this instance contains details.
124
+ /// </param>
125
+ /// <param name="powerShellVersion">
126
+ /// The PowerShellVersionDetails of the runspace.
127
+ /// </param>
128
+ /// <param name="runspaceLocation">
129
+ /// The RunspaceLocale of the runspace.
130
+ /// </param>
131
+ /// <param name="connectionString">
132
+ /// The connection string of the runspace.
133
+ /// </param>
134
+ public RunspaceDetails (
135
+ Guid instanceId ,
136
+ Runspace runspace ,
137
+ PowerShellVersionDetails powerShellVersion ,
138
+ RunspaceLocation runspaceLocation ,
139
+ string connectionString )
140
+ {
141
+ this . Id = instanceId ;
109
142
this . Runspace = runspace ;
110
143
this . PowerShellVersion = powerShellVersion ;
111
144
this . Location = runspaceLocation ;
@@ -125,6 +158,7 @@ public static RunspaceDetails Create(Runspace runspace)
125
158
{
126
159
Validate . IsNotNull ( nameof ( runspace ) , runspace ) ;
127
160
161
+ var runspaceId = runspace . InstanceId ;
128
162
var runspaceLocation = RunspaceLocation . Local ;
129
163
var versionDetails = PowerShellVersionDetails . GetVersionDetails ( runspace ) ;
130
164
@@ -150,6 +184,11 @@ public static RunspaceDetails Create(Runspace runspace)
150
184
151
185
if ( runspace . ConnectionInfo . ComputerName != "localhost" )
152
186
{
187
+ runspaceId =
188
+ PowerShellContext . ExecuteScriptAndGetItem < Guid > (
189
+ "$host.Runspace.InstanceId" ,
190
+ runspace ) ;
191
+
153
192
runspaceLocation = RunspaceLocation . Remote ;
154
193
connectionString =
155
194
runspace . ConnectionInfo . ComputerName +
@@ -159,6 +198,7 @@ public static RunspaceDetails Create(Runspace runspace)
159
198
160
199
return
161
200
new RunspaceDetails (
201
+ runspaceId ,
162
202
runspace ,
163
203
versionDetails ,
164
204
runspaceLocation ,
@@ -185,6 +225,7 @@ public static RunspaceDetails CreateAttached(
185
225
{
186
226
RunspaceDetails newRunspace =
187
227
new RunspaceDetails (
228
+ attachedRunspaceId ,
188
229
runspaceDetails . Runspace ,
189
230
runspaceDetails . PowerShellVersion ,
190
231
runspaceDetails . Location ,
0 commit comments