private Collection <string> GetPSSnapinNames( Collection <PSSnapInNameVersionPair> PSSnapins) { Collection <string> collection = new Collection <string>(); foreach (PSSnapInNameVersionPair psSnapin in PSSnapins) { collection.Add(CommandDiscovery.BuildPSSnapInDisplayName(psSnapin)); } return(collection); }
private CommandProcessorBase CreateScriptProcessorForSingleShell( ExternalScriptInfo scriptInfo, RunspaceConfigForSingleShell ssRunConfig, bool useLocalScope) { CommandDiscovery.VerifyPSVersion(scriptInfo); Collection <PSSnapInNameVersionPair> requiresPsSnapIns = scriptInfo.RequiresPSSnapIns; if (requiresPsSnapIns != null) { Collection <string> missingPSSnapIns = (Collection <string>)null; foreach (PSSnapInNameVersionPair PSSnapin in requiresPsSnapIns) { Collection <PSSnapInInfo> psSnapIn = ssRunConfig.ConsoleInfo.GetPSSnapIn(PSSnapin.PSSnapInName, false); if (psSnapIn == null || psSnapIn.Count == 0) { if (missingPSSnapIns == null) { missingPSSnapIns = new Collection <string>(); } missingPSSnapIns.Add(CommandDiscovery.BuildPSSnapInDisplayName(PSSnapin)); } else if (PSSnapin.Version != (Version)null && !CommandDiscovery.AreInstalledRequiresVersionsCompatible(PSSnapin.Version, psSnapIn[0].Version)) { if (missingPSSnapIns == null) { missingPSSnapIns = new Collection <string>(); } missingPSSnapIns.Add(CommandDiscovery.BuildPSSnapInDisplayName(PSSnapin)); } } if (missingPSSnapIns != null) { ScriptRequiresException requiresException = new ScriptRequiresException(scriptInfo.Name, missingPSSnapIns, "ScriptRequiresMissingPSSnapIns"); CommandDiscovery.tracer.TraceException((Exception)requiresException); throw requiresException; } } else if (!string.IsNullOrEmpty(scriptInfo.RequiresApplicationID)) { CommandDiscovery.GetShellPathFromRegistry(scriptInfo.RequiresApplicationID); ScriptRequiresException requiresException = new ScriptRequiresException(scriptInfo.Name, scriptInfo.ApplicationIDLineNumber, string.Empty, string.Empty, "RequiresShellIDInvalidForSingleShell"); CommandDiscovery.tracer.TraceException((Exception)requiresException); throw requiresException; } return(CommandDiscovery.CreateCommandProcessorForScript(scriptInfo, this._context, useLocalScope)); }