private PSModuleInfo ConvertCimModuleInfoToPSModuleInfo(RemoteDiscoveryHelper.CimModule cimModule, string computerName) { try { bool containedErrors = false; if (cimModule.MainManifest == null) { return(this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule)); } string temporaryModuleManifestPath = Path.Combine(RemoteDiscoveryHelper.GetModulePath(cimModule.ModuleName, null, computerName, base.Context.CurrentRunspace), Path.GetFileName(cimModule.ModuleName)); Hashtable originalManifest = null; if (!containedErrors) { originalManifest = RemoteDiscoveryHelper.ConvertCimModuleFileToManifestHashtable(cimModule.MainManifest, temporaryModuleManifestPath, this, ref containedErrors); if (originalManifest == null) { return(this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule)); } } if (!containedErrors) { originalManifest = RemoteDiscoveryHelper.RewriteManifest(originalManifest); } Hashtable localizedData = originalManifest; PSModuleInfo moduleInfoForRemoteModuleWithoutManifest = null; if (!containedErrors) { ModuleCmdletBase.ImportModuleOptions options = new ModuleCmdletBase.ImportModuleOptions(); moduleInfoForRemoteModuleWithoutManifest = base.LoadModuleManifest(temporaryModuleManifestPath, null, originalManifest, localizedData, 0, base.BaseMinimumVersion, base.BaseRequiredVersion, ref options, ref containedErrors); } if ((moduleInfoForRemoteModuleWithoutManifest == null) || containedErrors) { moduleInfoForRemoteModuleWithoutManifest = this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule); } return(moduleInfoForRemoteModuleWithoutManifest); } catch (Exception exception) { ErrorRecord errorRecordForProcessingOfCimModule = RemoteDiscoveryHelper.GetErrorRecordForProcessingOfCimModule(exception, cimModule.ModuleName); base.WriteError(errorRecordForProcessingOfCimModule); return(null); } }
private PSModuleInfo ConvertCimModuleInfoToPSModuleInfo(RemoteDiscoveryHelper.CimModule cimModule, string computerName) { try { bool containedErrors = false; if (cimModule.MainManifest == null) { return this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule); } string temporaryModuleManifestPath = Path.Combine(RemoteDiscoveryHelper.GetModulePath(cimModule.ModuleName, null, computerName, base.Context.CurrentRunspace), Path.GetFileName(cimModule.ModuleName)); Hashtable originalManifest = null; if (!containedErrors) { originalManifest = RemoteDiscoveryHelper.ConvertCimModuleFileToManifestHashtable(cimModule.MainManifest, temporaryModuleManifestPath, this, ref containedErrors); if (originalManifest == null) { return this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule); } } if (!containedErrors) { originalManifest = RemoteDiscoveryHelper.RewriteManifest(originalManifest); } Hashtable localizedData = originalManifest; PSModuleInfo moduleInfoForRemoteModuleWithoutManifest = null; if (!containedErrors) { ModuleCmdletBase.ImportModuleOptions options = new ModuleCmdletBase.ImportModuleOptions(); moduleInfoForRemoteModuleWithoutManifest = base.LoadModuleManifest(temporaryModuleManifestPath, null, originalManifest, localizedData, 0, base.BaseMinimumVersion, base.BaseRequiredVersion, ref options, ref containedErrors); } if ((moduleInfoForRemoteModuleWithoutManifest == null) || containedErrors) { moduleInfoForRemoteModuleWithoutManifest = this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule); } return moduleInfoForRemoteModuleWithoutManifest; } catch (Exception exception) { ErrorRecord errorRecordForProcessingOfCimModule = RemoteDiscoveryHelper.GetErrorRecordForProcessingOfCimModule(exception, cimModule.ModuleName); base.WriteError(errorRecordForProcessingOfCimModule); return null; } }
protected override void ProcessRecord() { ModuleCmdletBase.ImportModuleOptions importModuleOptions = new ModuleCmdletBase.ImportModuleOptions { NoClobber = (bool) this.NoClobber }; if (!string.IsNullOrEmpty(this.Scope) && this.Scope.Equals("LOCAL", StringComparison.OrdinalIgnoreCase)) { importModuleOptions.Local = true; } if (base.ParameterSetName.Equals("ModuleInfo", StringComparison.OrdinalIgnoreCase)) { PSModuleInfo[] infoArray = this._moduleInfo; for (int i = 0; i < infoArray.Length; i++) { Action localAction = null; Action<Microsoft.Management.Infrastructure.CimSession, Uri, string> cimSessionAction = null; Action<System.Management.Automation.Runspaces.PSSession> psSessionAction = null; PSModuleInfo module = infoArray[i]; if (localAction == null) { localAction = delegate { this.ImportModule_ViaLocalModuleInfo(importModuleOptions, module); this.SetModuleBaseForEngineModules(module.Name, this.Context); }; } if (cimSessionAction == null) { cimSessionAction = (cimSession, resourceUri, cimNamespace) => this.ImportModule_RemotelyViaCimSession(importModuleOptions, new string[] { module.Name }, cimSession, resourceUri, cimNamespace); } if (psSessionAction == null) { psSessionAction = psSession => this.ImportModule_RemotelyViaPsrpSession(importModuleOptions, new string[] { module.Path }, psSession); } RemoteDiscoveryHelper.DispatchModuleInfoProcessing(module, localAction, cimSessionAction, psSessionAction); } } else if (base.ParameterSetName.Equals("Assembly", StringComparison.OrdinalIgnoreCase)) { if (this.Assembly != null) { foreach (System.Reflection.Assembly assembly in this.Assembly) { this.ImportModule_ViaAssembly(importModuleOptions, assembly); } } } else if (base.ParameterSetName.Equals("Name", StringComparison.OrdinalIgnoreCase)) { foreach (string str in this.Name) { PSModuleInfo info = this.ImportModule_LocallyViaName(importModuleOptions, str); if (info != null) { this.SetModuleBaseForEngineModules(info.Name, base.Context); } } } else if (base.ParameterSetName.Equals("PSSession", StringComparison.OrdinalIgnoreCase)) { this.ImportModule_RemotelyViaPsrpSession(importModuleOptions, this.Name, this.PSSession); } else if (base.ParameterSetName.Equals("CimSession", StringComparison.OrdinalIgnoreCase)) { this.ImportModule_RemotelyViaCimSession(importModuleOptions, this.Name, this.CimSession, this.CimResourceUri, this.CimNamespace); } }