private void HandleCreateAndInvokePowerShell(object sender, RemoteDataEventArgs <RemoteDataObject <PSObject> > eventArgs) { RemoteDataObject <PSObject> data = eventArgs.Data; HostInfo hostInfo = RemotingDecoder.GetHostInfo(data.Data); ApartmentState apartmentState = RemotingDecoder.GetApartmentState(data.Data); RemoteStreamOptions remoteStreamOptions = RemotingDecoder.GetRemoteStreamOptions(data.Data); PowerShell powerShell = RemotingDecoder.GetPowerShell(data.Data); bool noInput = RemotingDecoder.GetNoInput(data.Data); bool addToHistory = RemotingDecoder.GetAddToHistory(data.Data); bool isNested = false; if (this.serverCapability.ProtocolVersion >= RemotingConstants.ProtocolVersionWin8RTM) { isNested = RemotingDecoder.GetIsNested(data.Data); } if (isNested) { if (this.dsHandler.GetAssociatedPowerShellDataStructureHandler(powerShell.InstanceId) != null) { throw new InvalidOperationException("NestedPipeline is not supported in this release."); } powerShell.SetIsNested(false); if ((this.localRunspacePool.GetMaxRunspaces() == 1) && (this.dsHandler.GetPowerShellDataStructureHandler() != null)) { new ServerSteppablePipelineDriver(powerShell, noInput, data.PowerShellId, data.RunspacePoolId, this, apartmentState, hostInfo, remoteStreamOptions, addToHistory, this.rsToUseForSteppablePipeline, this.eventSubscriber, this.inputCollection).Start(); return; } } ServerPowerShellDriver driver2 = new ServerPowerShellDriver(powerShell, null, noInput, data.PowerShellId, data.RunspacePoolId, this, apartmentState, hostInfo, remoteStreamOptions, addToHistory, null); this.inputCollection = driver2.InputCollection; driver2.Start(); }