Пример #1
0
        /// <exception cref="PSSnapInException">
        /// One or more default mshsnapins cannot be loaded because the
        /// registry is not populated correctly.
        /// </exception>
        /// <exception cref="PSArgumentNullException">
        /// fileName is null.
        /// </exception>
        /// <exception cref="PSArgumentException">
        /// fileName does not specify proper file extension.
        /// </exception>
        /// <exception cref="XmlException">
        /// Unable to load/parse the file specified by fileName.
        /// </exception>
        internal new static RunspaceConfigForSingleShell Create(string consoleFile, out PSConsoleLoadException warning)
        {
            PSConsoleLoadException warning1 = null;

            s_mshsnapinTracer.WriteLine("Creating MshConsoleInfo. consoleFile={0}", consoleFile);

            MshConsoleInfo consoleInfo = MshConsoleInfo.CreateFromConsoleFile(consoleFile, out warning1);

            if (warning1 != null)
            {
                s_mshsnapinTracer.TraceWarning("There was a warning while creating MshConsoleInfo: {0}", warning1.Message);
            }

            // At this time, consoleInfo should not be null.
            // Otherwise, an exception should have been thrown up.
            if (consoleInfo != null)
            {
                RunspaceConfigForSingleShell rspcfg   = new RunspaceConfigForSingleShell(consoleInfo);
                PSConsoleLoadException       warning2 = null;

                rspcfg.LoadConsole(out warning2);

                if (warning2 != null)
                {
                    s_mshsnapinTracer.TraceWarning("There was a warning while loading console: {0}", warning2.Message);
                }

                warning = CombinePSConsoleLoadException(warning1, warning2);

                return(rspcfg);
            }

            warning = null;
            return(null);
        }
Пример #2
0
 internal static void WriteToFile(MshConsoleInfo consoleInfo, string path)
 {
     using (PSConsoleFileElement.tracer.TraceMethod())
     {
         PSConsoleFileElement._mshsnapinTracer.WriteLine("Saving console info to file {0}.", (object)path);
         using (XmlWriter xmlWriter = XmlWriter.Create(path, new XmlWriterSettings()
         {
             Indent = true,
             Encoding = Encoding.UTF8
         }))
         {
             xmlWriter.WriteStartDocument();
             xmlWriter.WriteStartElement("PSConsoleFile");
             xmlWriter.WriteAttributeString("ConsoleSchemaVersion", "1.0");
             xmlWriter.WriteStartElement("PSVersion");
             xmlWriter.WriteString(consoleInfo.PSVersion.ToString());
             xmlWriter.WriteEndElement();
             xmlWriter.WriteStartElement("PSSnapIns");
             foreach (PSSnapInInfo externalPsSnapIn in consoleInfo.ExternalPSSnapIns)
             {
                 xmlWriter.WriteStartElement("PSSnapIn");
                 xmlWriter.WriteAttributeString("Name", externalPsSnapIn.Name);
                 xmlWriter.WriteEndElement();
             }
             xmlWriter.WriteEndElement();
             xmlWriter.WriteEndElement();
             xmlWriter.WriteEndDocument();
             xmlWriter.Close();
         }
         PSConsoleFileElement._mshsnapinTracer.WriteLine("Saving console info succeeded.", new object[0]);
     }
 }
Пример #3
0
        /// <exception cref="PSSnapInException">
        /// One or more default mshsnapins cannot be loaded because the
        /// registry is not populated correctly.
        /// </exception>
        internal static RunspaceConfigForSingleShell CreateDefaultConfiguration()
        {
            s_mshsnapinTracer.WriteLine("Creating default runspace configuration.");

            MshConsoleInfo consoleInfo = MshConsoleInfo.CreateDefaultConfiguration();

            // This should not happen. If there is a failure in creating consoleInfo,
            // an exception should have been thrown up.
            if (consoleInfo != null)
            {
                RunspaceConfigForSingleShell rspcfg  = new RunspaceConfigForSingleShell(consoleInfo);
                PSConsoleLoadException       warning = null;

                rspcfg.LoadConsole(out warning);

                if (warning != null)
                {
                    s_mshsnapinTracer.TraceWarning("There was a warning while loading console: {0}", warning.Message);
                }

                return(rspcfg);
            }

            s_mshsnapinTracer.WriteLine("Default runspace configuration created.");

            return(null);
        }
 internal static RunspaceConfigForSingleShell Create(
     string consoleFile,
     out PSConsoleLoadException warning)
 {
     using (RunspaceConfigForSingleShell.tracer.TraceMethod())
     {
         PSConsoleLoadException cle = (PSConsoleLoadException)null;
         RunspaceConfigForSingleShell._mshsnapinTracer.WriteLine("Creating MshConsoleInfo. consoleFile={0}", (object)consoleFile);
         MshConsoleInfo fromConsoleFile = MshConsoleInfo.CreateFromConsoleFile(consoleFile, out cle);
         if (cle != null)
         {
             RunspaceConfigForSingleShell._mshsnapinTracer.TraceWarning("There was a warning while creating MshConsoleInfo: {0}", (object)cle.Message);
         }
         if (fromConsoleFile != null)
         {
             RunspaceConfigForSingleShell configForSingleShell = new RunspaceConfigForSingleShell(fromConsoleFile);
             PSConsoleLoadException       warning1             = (PSConsoleLoadException)null;
             configForSingleShell.LoadConsole(out warning1);
             if (warning1 != null)
             {
                 RunspaceConfigForSingleShell._mshsnapinTracer.TraceWarning("There was a warning while loading console: {0}", (object)warning1.Message);
             }
             warning = RunspaceConfigForSingleShell.CombinePSConsoleLoadException(cle, warning1);
             return(configForSingleShell);
         }
         warning = (PSConsoleLoadException)null;
         return((RunspaceConfigForSingleShell)null);
     }
 }
Пример #5
0
        /// <summary>
        /// Constructs a <see cref="System.Management.Automation.Runspaces.MshConsoleInfo"/> object for the
        /// current Monad version which is already started.
        /// </summary>
        /// <exception cref="PSSnapInException">
        /// One or more default mshsnapins cannot be loaded because the
        /// registry is not populated correctly.
        /// </exception>
        internal static MshConsoleInfo CreateDefaultConfiguration()
        {
            // Steps:
            // 1. Get the current Monad Version
            // 2. Create MshConsoleInfo object.
            // 3. Read default mshsnapins.

            MshConsoleInfo consoleInfo = new MshConsoleInfo(PSVersionInfo.PSVersion);

            try
            {
                consoleInfo._defaultPSSnapIns = PSSnapInReader.ReadEnginePSSnapIns();
            }
            catch (PSArgumentException ae)
            {
                string message = ConsoleInfoErrorStrings.CannotLoadDefaults;
                // If we were unable to load default mshsnapins throw PSSnapInException

                s_mshsnapinTracer.TraceError(message);

                throw new PSSnapInException(message, ae);
            }
            catch (System.Security.SecurityException se)
            {
                string message = ConsoleInfoErrorStrings.CannotLoadDefaults;
                // If we were unable to load default mshsnapins throw PSSnapInException

                s_mshsnapinTracer.TraceError(message);

                throw new PSSnapInException(message, se);
            }

            return(consoleInfo);
        }
Пример #6
0
        internal static RunspaceConfigForSingleShell Create(string consoleFile, out PSConsoleLoadException warning)
        {
            PSConsoleLoadException cle = null;

            _mshsnapinTracer.WriteLine("Creating MshConsoleInfo. consoleFile={0}", new object[] { consoleFile });
            MshConsoleInfo consoleInfo = MshConsoleInfo.CreateFromConsoleFile(consoleFile, out cle);

            if (cle != null)
            {
                _mshsnapinTracer.TraceWarning("There was a warning while creating MshConsoleInfo: {0}", new object[] { cle.Message });
            }
            if (consoleInfo != null)
            {
                RunspaceConfigForSingleShell shell      = new RunspaceConfigForSingleShell(consoleInfo);
                PSConsoleLoadException       exception2 = null;
                shell.LoadConsole(out exception2);
                if (exception2 != null)
                {
                    _mshsnapinTracer.TraceWarning("There was a warning while loading console: {0}", new object[] { exception2.Message });
                }
                warning = CombinePSConsoleLoadException(cle, exception2);
                return(shell);
            }
            warning = null;
            return(null);
        }
Пример #7
0
        internal static MshConsoleInfo CreateFromConsoleFile(string fileName, out PSConsoleLoadException cle)
        {
            _mshsnapinTracer.WriteLine("Creating console info from file {0}", new object[] { fileName });
            MshConsoleInfo info     = CreateDefaultConfiguration();
            string         fullPath = Path.GetFullPath(fileName);

            info.fileName = fullPath;
            info.Load(fullPath, out cle);
            _mshsnapinTracer.WriteLine("Console info created successfully", new object[0]);
            return(info);
        }
Пример #8
0
        /// <summary>
        /// Initiate an instance of PSConsoleLoadException.
        /// </summary>
        /// <param name="consoleInfo">Console info object for the exception</param>
        /// <param name="exceptions">A collection of PSSnapInExceptions.</param>
        internal PSConsoleLoadException(MshConsoleInfo consoleInfo, Collection<PSSnapInException> exceptions)
            : base()
        {
            if (!String.IsNullOrEmpty(consoleInfo.Filename))
                _consoleFileName = consoleInfo.Filename;

            if (exceptions != null)
            {
                _PSSnapInExceptions = exceptions;
            }

            CreateErrorRecord();
        }
Пример #9
0
 internal PSConsoleLoadException(MshConsoleInfo consoleInfo, Collection<PSSnapInException> exceptions)
 {
     this._consoleFileName = "";
     this._PSSnapInExceptions = new Collection<PSSnapInException>();
     if (!string.IsNullOrEmpty(consoleInfo.Filename))
     {
         this._consoleFileName = consoleInfo.Filename;
     }
     if (exceptions != null)
     {
         this._PSSnapInExceptions = exceptions;
     }
     this.CreateErrorRecord();
 }
Пример #10
0
 internal PSConsoleLoadException(MshConsoleInfo consoleInfo, Collection <PSSnapInException> exceptions)
 {
     this._consoleFileName    = "";
     this._PSSnapInExceptions = new Collection <PSSnapInException>();
     if (!string.IsNullOrEmpty(consoleInfo.Filename))
     {
         this._consoleFileName = consoleInfo.Filename;
     }
     if (exceptions != null)
     {
         this._PSSnapInExceptions = exceptions;
     }
     this.CreateErrorRecord();
 }
        /// <summary>
        /// Initiate an instance of PSConsoleLoadException.
        /// </summary>
        /// <param name="consoleInfo">Console info object for the exception</param>
        /// <param name="exceptions">A collection of PSSnapInExceptions.</param>
        internal PSConsoleLoadException(MshConsoleInfo consoleInfo, Collection <PSSnapInException> exceptions)
            : base()
        {
            if (!String.IsNullOrEmpty(consoleInfo.Filename))
            {
                _consoleFileName = consoleInfo.Filename;
            }

            if (exceptions != null)
            {
                _PSSnapInExceptions = exceptions;
            }

            CreateErrorRecord();
        }
Пример #12
0
 internal static MshConsoleInfo CreateFromConsoleFile(
     string fileName,
     out PSConsoleLoadException cle)
 {
     using (MshConsoleInfo.tracer.TraceMethod())
     {
         MshConsoleInfo._mshsnapinTracer.WriteLine("Creating console info from file {0}", (object)fileName);
         MshConsoleInfo defaultConfiguration = MshConsoleInfo.CreateDefaultConfiguration();
         string         fullPath             = Path.GetFullPath(fileName);
         defaultConfiguration.fileName = fullPath;
         defaultConfiguration.Load(fullPath, out cle);
         MshConsoleInfo._mshsnapinTracer.WriteLine("Console info created successfully", new object[0]);
         return(defaultConfiguration);
     }
 }
Пример #13
0
 internal PSConsoleLoadException(
     MshConsoleInfo consoleInfo,
     Collection <PSSnapInException> exceptions)
 {
     using (PSConsoleLoadException.tracer.TraceConstructor((object)this))
     {
         if (!string.IsNullOrEmpty(consoleInfo.Filename))
         {
             this._consoleFileName = consoleInfo.Filename;
         }
         if (exceptions != null)
         {
             this._PSSnapInExceptions = exceptions;
         }
         this.CreateErrorRecord();
     }
 }
Пример #14
0
        /// <summary>
        /// Constructs a <see cref="System.Management.Automation.Runspaces.MshConsoleInfo"/> object from a
        /// Monad console file.
        /// </summary>
        /// <param name="fileName">
        /// Monad console file name. If the filename is not absolute path. Then absolute path is
        /// constructed by using Path.GetFullPath() API.
        /// </param>
        /// <param name="cle">
        /// PSConsoleLoadException occurred while loading this console file. This object
        /// also contains specific PSSnapInExceptions that occurred while loading.
        /// </param>
        /// <exception cref="PSSnapInException">
        /// One or more default mshsnapins cannot be loaded because the
        /// registry is not populated correctly.
        /// </exception>
        /// <exception cref="PSArgumentNullException">
        /// fileName is null.
        /// </exception>
        /// <exception cref="PSArgumentException">
        /// 1. fileName does not specify proper file extension.
        /// </exception>
        /// <exception cref="ArgumentException">
        /// fileName contains one or more of the invalid characters defined in System.IO.Path.InvalidPathChars.
        /// </exception>
        /// <exception cref="XmlException">
        /// Unable to load/parse the file specified by fileName.
        /// </exception>
        internal static MshConsoleInfo CreateFromConsoleFile(string fileName, out PSConsoleLoadException cle)
        {
            s_mshsnapinTracer.WriteLine("Creating console info from file {0}", fileName);

            // Construct default mshsnapins
            MshConsoleInfo consoleInfo = CreateDefaultConfiguration();

            // Check whether the filename specified is an absolute path.
            string absolutePath = Path.GetFullPath(fileName);

            consoleInfo.Filename = absolutePath;

            // Construct externalPSSnapIns by loading file.
            consoleInfo.Load(absolutePath, out cle);

            s_mshsnapinTracer.WriteLine("Console info created successfully");

            return(consoleInfo);
        }
Пример #15
0
        internal static RunspaceConfigForSingleShell CreateDefaultConfiguration()
        {
            _mshsnapinTracer.WriteLine("Creating default runspace configuration.", new object[0]);
            MshConsoleInfo consoleInfo = MshConsoleInfo.CreateDefaultConfiguration();

            if (consoleInfo != null)
            {
                RunspaceConfigForSingleShell shell   = new RunspaceConfigForSingleShell(consoleInfo);
                PSConsoleLoadException       warning = null;
                shell.LoadConsole(out warning);
                if (warning != null)
                {
                    _mshsnapinTracer.TraceWarning("There was a warning while loading console: {0}", new object[] { warning.Message });
                }
                return(shell);
            }
            _mshsnapinTracer.WriteLine("Default runspace configuration created.", new object[0]);
            return(null);
        }
Пример #16
0
 internal static MshConsoleInfo CreateDefaultConfiguration()
 {
     MshConsoleInfo info = new MshConsoleInfo(PSVersionInfo.PSVersion);
     try
     {
         info.defaultPSSnapIns = PSSnapInReader.ReadEnginePSSnapIns();
     }
     catch (PSArgumentException exception)
     {
         string cannotLoadDefaults = ConsoleInfoErrorStrings.CannotLoadDefaults;
         _mshsnapinTracer.TraceError(cannotLoadDefaults, new object[0]);
         throw new PSSnapInException(cannotLoadDefaults, exception);
     }
     catch (SecurityException exception2)
     {
         string errorMessageFormat = ConsoleInfoErrorStrings.CannotLoadDefaults;
         _mshsnapinTracer.TraceError(errorMessageFormat, new object[0]);
         throw new PSSnapInException(errorMessageFormat, exception2);
     }
     return info;
 }
 internal static RunspaceConfigForSingleShell CreateDefaultConfiguration()
 {
     using (RunspaceConfigForSingleShell.tracer.TraceMethod())
     {
         RunspaceConfigForSingleShell._mshsnapinTracer.WriteLine("Creating default runspace configuration.", new object[0]);
         MshConsoleInfo defaultConfiguration = MshConsoleInfo.CreateDefaultConfiguration();
         if (defaultConfiguration != null)
         {
             RunspaceConfigForSingleShell configForSingleShell = new RunspaceConfigForSingleShell(defaultConfiguration);
             PSConsoleLoadException       warning = (PSConsoleLoadException)null;
             configForSingleShell.LoadConsole(out warning);
             if (warning != null)
             {
                 RunspaceConfigForSingleShell._mshsnapinTracer.TraceWarning("There was a warning while loading console: {0}", (object)warning.Message);
             }
             return(configForSingleShell);
         }
         RunspaceConfigForSingleShell._mshsnapinTracer.WriteLine("Default runspace configuration created.", new object[0]);
         return((RunspaceConfigForSingleShell)null);
     }
 }
Пример #18
0
        internal static MshConsoleInfo CreateDefaultConfiguration()
        {
            MshConsoleInfo info = new MshConsoleInfo(PSVersionInfo.PSVersion);

            try
            {
                info.defaultPSSnapIns = PSSnapInReader.ReadEnginePSSnapIns();
            }
            catch (PSArgumentException exception)
            {
                string cannotLoadDefaults = ConsoleInfoErrorStrings.CannotLoadDefaults;
                _mshsnapinTracer.TraceError(cannotLoadDefaults, new object[0]);
                throw new PSSnapInException(cannotLoadDefaults, exception);
            }
            catch (SecurityException exception2)
            {
                string errorMessageFormat = ConsoleInfoErrorStrings.CannotLoadDefaults;
                _mshsnapinTracer.TraceError(errorMessageFormat, new object[0]);
                throw new PSSnapInException(errorMessageFormat, exception2);
            }
            return(info);
        }
Пример #19
0
 internal static MshConsoleInfo CreateDefaultConfiguration()
 {
     using (MshConsoleInfo.tracer.TraceMethod())
     {
         MshConsoleInfo mshConsoleInfo = new MshConsoleInfo(PSVersionInfo.PSVersion);
         try
         {
             mshConsoleInfo.defaultPSSnapIns = PSSnapInReader.ReadEnginePSSnapIns();
         }
         catch (PSArgumentException ex)
         {
             string resourceString = ResourceManagerCache.GetResourceString("ConsoleInfoErrorStrings", "CannotLoadDefaults");
             MshConsoleInfo._mshsnapinTracer.TraceError(resourceString);
             throw new PSSnapInException(resourceString, (Exception)ex);
         }
         catch (SecurityException ex)
         {
             string resourceString = ResourceManagerCache.GetResourceString("ConsoleInfoErrorStrings", "CannotLoadDefaults");
             MshConsoleInfo._mshsnapinTracer.TraceError(resourceString);
             throw new PSSnapInException(resourceString, (Exception)ex);
         }
         return(mshConsoleInfo);
     }
 }
 private RunspaceConfigForSingleShell(MshConsoleInfo consoleInfo)
 {
     using (RunspaceConfigForSingleShell.tracer.TraceConstructor((object)this))
         this._consoleInfo = consoleInfo;
 }
Пример #21
0
 private RunspaceConfigForSingleShell(MshConsoleInfo consoleInfo)
 {
     _consoleInfo = consoleInfo;
 }
Пример #22
0
        /// <summary>
        /// Constructs a <see cref="System.Management.Automation.Runspaces.MshConsoleInfo"/> object for the
        /// current Monad version which is already started.
        /// </summary>
        /// <exception cref="PSSnapInException">
        /// One or more default mshsnapins cannot be loaded because the
        /// registry is not populated correctly.
        /// </exception>
        internal static MshConsoleInfo CreateDefaultConfiguration()
        {
            // Steps:
            // 1. Get the current Monad Version
            // 2. Create MshConsoleInfo object.
            // 3. Read default mshsnapins.

            MshConsoleInfo consoleInfo = new MshConsoleInfo(PSVersionInfo.PSVersion);
            try
            {
                consoleInfo._defaultPSSnapIns = PSSnapInReader.ReadEnginePSSnapIns();
            }
            catch (PSArgumentException ae)
            {
                string message = ConsoleInfoErrorStrings.CannotLoadDefaults;
                // If we were unable to load default mshsnapins throw PSSnapInException

                s_mshsnapinTracer.TraceError(message);

                throw new PSSnapInException(message, ae);
            }
            catch (System.Security.SecurityException se)
            {
                string message = ConsoleInfoErrorStrings.CannotLoadDefaults;
                // If we were unable to load default mshsnapins throw PSSnapInException

                s_mshsnapinTracer.TraceError(message);

                throw new PSSnapInException(message, se);
            }

            return consoleInfo;
        }
Пример #23
0
 private RunspaceConfigForSingleShell(MshConsoleInfo consoleInfo)
 {
     this._consoleInfo = consoleInfo;
 }