コード例 #1
0
 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);
     }
 }
コード例 #2
0
ファイル: GetModuleCommand.cs プロジェクト: nickchal/pash
 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;
     }
 }
コード例 #3
0
ファイル: ImportModuleCommand.cs プロジェクト: nickchal/pash
 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);
     }
 }