private void HandleGetCommandMetadata(
     object sender,
     RemoteDataEventArgs <RemoteDataObject <PSObject> > eventArgs)
 {
     using (ServerRunspacePoolDriver.tracer.TraceEventHandlers())
     {
         RemoteDataObject <PSObject> data = eventArgs.Data;
         PowerShell discoveryPipeline1    = RemotingDecoder.GetCommandDiscoveryPipeline((object)data.Data);
         discoveryPipeline1.AddParameter("ErrorAction", (object)"SilentlyContinue").AddCommand("Measure-Object").AddCommand("Select-Object").AddParameter("Property", (object)"Count");
         PowerShell discoveryPipeline2 = RemotingDecoder.GetCommandDiscoveryPipeline((object)data.Data);
         discoveryPipeline2.AddCommand("Select-Object").AddParameter("Property", (object)new string[7]
         {
             "Name",
             "Namespace",
             "HelpUri",
             "CommandType",
             "ResolvedCommandName",
             "OutputType",
             "Parameters"
         });
         new ServerPowerShellDriver(discoveryPipeline1, discoveryPipeline2, true, data.PowerShellId, data.RunspacePoolId, this, ApartmentState.Unknown, new HostInfo((PSHost)null)
         {
             UseRunspaceHost = true
         }, (RemoteStreamOptions)0, false, (Runspace)null).Start();
     }
 }
Example #2
0
        private void HandleGetCommandMetadata(object sender, RemoteDataEventArgs <RemoteDataObject <PSObject> > eventArgs)
        {
            RemoteDataObject <PSObject> data    = eventArgs.Data;
            PowerShell commandDiscoveryPipeline = RemotingDecoder.GetCommandDiscoveryPipeline(data.Data);

            if (this.DoesInitialSessionStateIncludeGetCommandWithListImportedSwitch())
            {
                commandDiscoveryPipeline.AddParameter("ListImported", true);
            }
            commandDiscoveryPipeline.AddParameter("ErrorAction", "SilentlyContinue").AddCommand("Measure-Object").AddCommand("Select-Object").AddParameter("Property", "Count");
            PowerShell extraPowerShell = RemotingDecoder.GetCommandDiscoveryPipeline(data.Data);

            if (this.DoesInitialSessionStateIncludeGetCommandWithListImportedSwitch())
            {
                extraPowerShell.AddParameter("ListImported", true);
            }
            extraPowerShell.AddCommand("Select-Object").AddParameter("Property", new string[] { "Name", "Namespace", "HelpUri", "CommandType", "ResolvedCommandName", "OutputType", "Parameters" });
            HostInfo hostInfo = new HostInfo(null)
            {
                UseRunspaceHost = true
            };

            new ServerPowerShellDriver(commandDiscoveryPipeline, extraPowerShell, true, data.PowerShellId, data.RunspacePoolId, this, ApartmentState.Unknown, hostInfo, 0, false, null).Start();
        }