示例#1
0
        private IEnumerable <PSModuleInfo> GetAvailableViaPsrpSessionCore(string[] moduleNames, Runspace remoteRunspace)
        {
            Dbg.Assert(remoteRunspace != null, "Caller should verify remoteRunspace != null");

            using (var powerShell = System.Management.Automation.PowerShell.Create())
            {
                powerShell.Runspace = remoteRunspace;
                powerShell.AddCommand("Get-Module");
                powerShell.AddParameter("ListAvailable", true);

                if (Refresh.IsPresent)
                {
                    powerShell.AddParameter("Refresh", true);
                }

                if (moduleNames != null)
                {
                    powerShell.AddParameter("Name", moduleNames);
                }

                string errorMessageTemplate = string.Format(
                    CultureInfo.InvariantCulture,
                    Modules.RemoteDiscoveryRemotePsrpCommandFailed,
                    "Get-Module");
                foreach (
                    PSObject outputObject in
                    RemoteDiscoveryHelper.InvokePowerShell(powerShell, this, errorMessageTemplate,
                                                           this.CancellationToken))
                {
                    PSModuleInfo moduleInfo = RemoteDiscoveryHelper.RehydratePSModuleInfo(outputObject);
                    yield return(moduleInfo);
                }
            }
        }
示例#2
0
 private IEnumerable <PSModuleInfo> GetAvailableViaPsrpSessionCore(string[] moduleNames, Runspace remoteRunspace)
 {
     using (PowerShell iteratorVariable0 = PowerShell.Create())
     {
         iteratorVariable0.Runspace = remoteRunspace;
         iteratorVariable0.AddCommand("Get-Module");
         iteratorVariable0.AddParameter("ListAvailable", true);
         if (this.Refresh.IsPresent)
         {
             iteratorVariable0.AddParameter("Refresh", true);
         }
         if (moduleNames != null)
         {
             iteratorVariable0.AddParameter("Name", moduleNames);
         }
         string errorMessageTemplate = string.Format(CultureInfo.InvariantCulture, Modules.RemoteDiscoveryRemotePsrpCommandFailed, new object[] { "Get-Module" });
         foreach (PSObject iteratorVariable2 in RemoteDiscoveryHelper.InvokePowerShell(iteratorVariable0, this.CancellationToken, this, errorMessageTemplate))
         {
             PSModuleInfo iteratorVariable3 = RemoteDiscoveryHelper.RehydratePSModuleInfo(iteratorVariable2);
             yield return(iteratorVariable3);
         }
     }
 }