diff --git a/src/System.Management.Automation/engine/GetEvent_Types_Ps1Xml.cs b/src/System.Management.Automation/engine/GetEvent_Types_Ps1Xml.cs deleted file mode 100644 index 06d8d12be4..0000000000 --- a/src/System.Management.Automation/engine/GetEvent_Types_Ps1Xml.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System.Collections.Generic; -using System.Management.Automation; -using System.Reflection; - -namespace System.Management.Automation.Runspaces -{ - internal sealed class GetEvent_Types_Ps1Xml - { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - static MethodInfo GetMethodInfo(string typeName, string method) - { - var type = LanguagePrimitives.ConvertTo(typeName); - return GetMethodInfo(type, method); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - static MethodInfo GetMethodInfo(Type type, string method) - { - return type.GetMethod(method, BindingFlags.Static | BindingFlags.Public | BindingFlags.IgnoreCase); - } - - static ScriptBlock GetScriptBlock(string s) - { - var sb = ScriptBlock.CreateDelayParsedScriptBlock(s, isProductCode: true); - sb.LanguageMode = PSLanguageMode.FullLanguage; - return sb; - } - - public static IEnumerable Get() - { - var td1 = new TypeData(@"System.Diagnostics.Eventing.Reader.EventLogConfiguration", true); - td1.DefaultDisplayPropertySet = - new PropertySetData(new[] { "LogName", "MaximumSizeInBytes", "RecordCount", "LogMode" }) { Name = "DefaultDisplayPropertySet" }; - yield return td1; - - var td2 = new TypeData(@"System.Diagnostics.Eventing.Reader.EventLogRecord", true); - td2.DefaultDisplayPropertySet = - new PropertySetData(new[] { "TimeCreated", "ProviderName", "Id", "Message" }) { Name = "DefaultDisplayPropertySet" }; - yield return td2; - - var td3 = new TypeData(@"System.Diagnostics.Eventing.Reader.ProviderMetadata", true); - td3.Members.Add("ProviderName", - new AliasPropertyData("ProviderName", "Name")); - td3.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "LogLinks" }) { Name = "DefaultDisplayPropertySet" }; - yield return td3; - -#if !CORECLR - var td4 = new TypeData(@"Microsoft.PowerShell.Commands.GetCounter.CounterSet", true); - td4.Members.Add("Counter", - new AliasPropertyData("Counter", "Paths")); - yield return td4; - - var td5 = new TypeData(@"Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample", true); - td5.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Path", "InstanceName", "CookedValue" }) { Name = "DefaultDisplayPropertySet" }; - yield return td5; - - var td6 = new TypeData(@"Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet", true); - td6.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Timestamp", "Readings" }) { Name = "DefaultDisplayPropertySet" }; - yield return td6; - - var td7 = new TypeData(@"Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet", true); - td7.Members.Add("Readings", - new ScriptPropertyData(@"Readings", GetScriptBlock(@"$strPaths = """" - foreach ($ctr in $this.CounterSamples) - { - $strPaths += ($ctr.Path + "" :"" + ""`n"") - $strPaths += ($ctr.CookedValue.ToString() + ""`n`n"") - } - - return $strPaths"), null)); - yield return td7; -#endif - } - } -} diff --git a/src/System.Management.Automation/engine/InitialSessionState.cs b/src/System.Management.Automation/engine/InitialSessionState.cs index dfc98ed6f8..5ede8b411e 100644 --- a/src/System.Management.Automation/engine/InitialSessionState.cs +++ b/src/System.Management.Automation/engine/InitialSessionState.cs @@ -1211,26 +1211,6 @@ namespace System.Management.Automation.Runspaces } } - /// - /// Special add for TypeTable type entries that removes redundant file entries. - /// - internal void AddTypeTableTypesInfo(IEnumerable items) - { - if (typeof(T) != typeof(SessionStateTypeEntry)) { throw new PSInvalidOperationException(); } - - lock (_syncObject) - { - foreach (var element in items) - { - if (element is SessionStateTypeEntry typeEntry && typeEntry.TypeData != null) - { - // Skip type file entries. - _internalCollection.Add(element); - } - } - } - } - /// /// Get enumerator for this collection. /// @@ -3460,12 +3440,7 @@ namespace System.Management.Automation.Runspaces context.TypeTable = typeTable; Types.Clear(); - - // A TypeTable contains types info along with type file references used to create the types info, - // which is redundant information. When resused in a runspace the ISS unpacks the file types again - // resulting in duplicate types and duplication errors when processed. - // So use this special Add method to filter all types files found in the TypeTable. - Types.AddTypeTableTypesInfo(typeTable.typesInfo); + Types.Add(typeTable.typesInfo); return; } @@ -3482,7 +3457,6 @@ namespace System.Management.Automation.Runspaces ConcurrentDictionary filesProcessed = new ConcurrentDictionary(/*concurrencyLevel*/3, /*capacity*/3, StringComparer.OrdinalIgnoreCase); Parallel.ForEach(Types, sste => - // foreach (var sste in Types) { if (sste.FileName != null) { @@ -3510,7 +3484,6 @@ namespace System.Management.Automation.Runspaces context.TypeTable.Update(sste.TypeData, errors, sste.IsRemove); } }); - // } context.TypeTable.ClearConsolidatedMembers(); diff --git a/src/System.Management.Automation/engine/MshMemberInfo.cs b/src/System.Management.Automation/engine/MshMemberInfo.cs index eb95306340..0c2042c76b 100644 --- a/src/System.Management.Automation/engine/MshMemberInfo.cs +++ b/src/System.Management.Automation/engine/MshMemberInfo.cs @@ -3060,7 +3060,7 @@ namespace System.Management.Automation { if (string.IsNullOrEmpty(name)) { - throw PSTraceSource.NewArgumentException("name"); + throw PSTraceSource.NewArgumentException(nameof(name)); } this.name = name; @@ -3080,13 +3080,13 @@ namespace System.Management.Automation { if (string.IsNullOrEmpty(name)) { - throw PSTraceSource.NewArgumentException("name"); + throw PSTraceSource.NewArgumentException(nameof(name)); } this.name = name; if (members == null) { - throw PSTraceSource.NewArgumentNullException("members"); + throw PSTraceSource.NewArgumentNullException(nameof(members)); } this.internalMembers = new PSMemberInfoInternalCollection(); @@ -3094,7 +3094,7 @@ namespace System.Management.Automation { if (member == null) { - throw PSTraceSource.NewArgumentNullException("members"); + throw PSTraceSource.NewArgumentNullException(nameof(members)); } this.internalMembers.Add(member.Copy()); @@ -3105,6 +3105,26 @@ namespace System.Management.Automation _methods = new PSMemberInfoIntegratingCollection(this, s_emptyMethodCollection); } + /// + /// Initializes a new instance of PSMemberSet with all the initial members in . + /// This constructor is supposed to be used in TypeTable to reuse the passed-in member collection. + /// Null-argument check is skipped here, so callers need to check arguments before passing in. + /// + /// Name for the member set. + /// Members in the member set. + internal PSMemberSet(string name, PSMemberInfoInternalCollection members) + { + Diagnostics.Assert(!string.IsNullOrEmpty(name), "Caller needs to guarantee not null or empty."); + Diagnostics.Assert(members != null, "Caller needs to guarantee not null."); + + this.name = name; + this.internalMembers = members; + + _members = new PSMemberInfoIntegratingCollection(this, s_emptyMemberCollection); + _properties = new PSMemberInfoIntegratingCollection(this, s_emptyPropertyCollection); + _methods = new PSMemberInfoIntegratingCollection(this, s_emptyMethodCollection); + } + private static readonly Collection> s_typeMemberCollection = GetTypeMemberCollection(); private static readonly Collection> s_typeMethodCollection = GetTypeMethodCollection(); private static readonly Collection> s_typePropertyCollection = GetTypePropertyCollection(); @@ -3434,13 +3454,13 @@ namespace System.Management.Automation { if (string.IsNullOrEmpty(name)) { - throw PSTraceSource.NewArgumentException("name"); + throw PSTraceSource.NewArgumentException(nameof(name)); } this.name = name; if (referencedPropertyNames == null) { - throw PSTraceSource.NewArgumentNullException("referencedPropertyNames"); + throw PSTraceSource.NewArgumentNullException(nameof(referencedPropertyNames)); } ReferencedPropertyNames = new Collection(); @@ -3448,13 +3468,31 @@ namespace System.Management.Automation { if (string.IsNullOrEmpty(referencedPropertyName)) { - throw PSTraceSource.NewArgumentException("referencedPropertyNames"); + throw PSTraceSource.NewArgumentException(nameof(referencedPropertyNames)); } ReferencedPropertyNames.Add(referencedPropertyName); } } + /// + /// Initializes a new instance of PSPropertySet with a name and list of property names. + /// This constructor is supposed to be used in TypeTable to reuse the passed-in property name list. + /// Null-argument check is skipped here, so callers need to check arguments before passing in. + /// + /// Name of the set. + /// Name of the properties in the set. + internal PSPropertySet(string name, List referencedPropertyNameList) + { + Diagnostics.Assert(!string.IsNullOrEmpty(name), "Caller needs to guarantee not null or empty."); + Diagnostics.Assert(referencedPropertyNameList != null, "Caller needs to guarantee not null."); + + // We use the constructor 'public Collection(IList list)' to create the collection, + // so that the passed-in list is directly used as the backing store of the collection. + this.name = name; + ReferencedPropertyNames = new Collection(referencedPropertyNameList); + } + /// /// Gets the property names in this property set. /// diff --git a/src/System.Management.Automation/engine/TypeTable.cs b/src/System.Management.Automation/engine/TypeTable.cs index eea285c9bc..e10800eac1 100644 --- a/src/System.Management.Automation/engine/TypeTable.cs +++ b/src/System.Management.Automation/engine/TypeTable.cs @@ -2405,7 +2405,6 @@ namespace System.Management.Automation.Runspaces /// ScriptMethodData represents a ScriptMethod definition. /// [DebuggerDisplay(@"ScriptMethod: {Name,nq}")] - public sealed class ScriptMethodData : TypeMemberData { /// @@ -2495,11 +2494,7 @@ namespace System.Management.Automation.Runspaces throw PSTraceSource.NewArgumentNullException("referencedProperties"); } - ReferencedProperties = new Collection(); - foreach (string property in referencedProperties) - { - ReferencedProperties.Add(property); - } + ReferencedProperties = new Collection(new List(referencedProperties)); } /// @@ -2591,7 +2586,7 @@ namespace System.Management.Automation.Runspaces /// /// A class that keeps the information from types.ps1xml files in a cache table. /// - public sealed class TypeTable + public sealed partial class TypeTable { #region private @@ -2681,6 +2676,11 @@ namespace System.Management.Automation.Runspaces TargetTypeForDeserialization }; + // Built-in type file paths. + internal static readonly string TypesFilePath; + internal static readonly string TypesV3FilePath; + internal static readonly string GetEventTypesFilePath; + #endregion #region Update @@ -3135,7 +3135,7 @@ namespace System.Management.Automation.Runspaces } // the node cardinality is OneToMany - Collection referencedProperties = new Collection(); + var referencedProperties = new List(propertySetData.ReferencedProperties.Count); foreach (string name in propertySetData.ReferencedProperties) { if (string.IsNullOrEmpty(name)) @@ -3161,7 +3161,7 @@ namespace System.Management.Automation.Runspaces internal static void ProcessMemberSetData(ConcurrentBag errors, string typeName, MemberSetData memberSetData, PSMemberInfoInternalCollection membersCollection, bool isOverride) { - var memberSetMembers = new PSMemberInfoInternalCollection(); + var memberSetMembers = new PSMemberInfoInternalCollection(memberSetData.Members.Count); foreach (var m in memberSetData.Members) { m.Process(errors, typeName, memberSetMembers, isOverride); @@ -3175,12 +3175,19 @@ namespace System.Management.Automation.Runspaces AddMember(errors, typeName, memberSet, membersCollection, isOverride); } - private static void ProcessStandardMembers(ConcurrentBag errors, string typeName, IEnumerable standardMembers, IEnumerable propertySets, PSMemberInfoInternalCollection membersCollection, bool isOverride) + private static void ProcessStandardMembers( + ConcurrentBag errors, + string typeName, + IEnumerable standardMembers, + IEnumerable propertySets, + PSMemberInfoInternalCollection membersCollection, + bool isOverride) { + int newMemberCount = standardMembers.Count() + propertySets.Count(); // If StandardMembers do not exists, we follow the original logic to create the StandardMembers if (membersCollection[PSStandardMembers] == null) { - var memberSetMembers = new PSMemberInfoInternalCollection(); + var memberSetMembers = new PSMemberInfoInternalCollection(newMemberCount); ProcessMembersData(errors, typeName, standardMembers, memberSetMembers, false); foreach (PropertySetData propertySet in propertySets) @@ -3203,8 +3210,9 @@ namespace System.Management.Automation.Runspaces var psStandardMemberSet = (PSMemberSet)membersCollection[PSStandardMembers]; // Copy existing internal PSStandard members - var existingMembers = new PSMemberInfoInternalCollection(); - var oldMembersCopy = new PSMemberInfoInternalCollection(); + int totalMemberCount = psStandardMemberSet.InternalMembers.Count + newMemberCount; + var existingMembers = new PSMemberInfoInternalCollection(totalMemberCount); + var oldMembersCopy = new PSMemberInfoInternalCollection(totalMemberCount); foreach (var existingMember in psStandardMemberSet.InternalMembers) { existingMembers.Add(existingMember.Copy()); @@ -3251,6 +3259,149 @@ namespace System.Management.Automation.Runspaces } } + private static void ProcessStandardMembers( + ConcurrentBag errors, + string typeName, + PSMemberInfoInternalCollection memberSetMembers, + PSMemberInfoInternalCollection typeMemberCollection, + bool isOverride) + { + // If StandardMembers do not exists, we follow the original logic to create the StandardMembers + if (typeMemberCollection[PSStandardMembers] == null) + { + CheckStandardMembers(errors, typeName, memberSetMembers); + PSMemberSet standardMemberSet = new PSMemberSet(PSStandardMembers, memberSetMembers) + { + inheritMembers = true, + IsHidden = true, + ShouldSerialize = false + }; + AddMember(errors, typeName, standardMemberSet, typeMemberCollection, false); + return; + } + + // StandardMembers exist + var psStandardMemberSet = (PSMemberSet)typeMemberCollection[PSStandardMembers]; + + // Copy existing internal PSStandard members + int totalMemberCount = psStandardMemberSet.InternalMembers.Count + memberSetMembers.Count; + var existingMembers = new PSMemberInfoInternalCollection(totalMemberCount); + var oldMembersCopy = new PSMemberInfoInternalCollection(totalMemberCount); + foreach (var existingMember in psStandardMemberSet.InternalMembers) + { + existingMembers.Add(existingMember.Copy()); + oldMembersCopy.Add(existingMember.Copy()); + } + + // Process the Members directly into the 'existingMembers' collection + foreach (PSMemberInfo member in memberSetMembers) + { + AddMember(errors, typeName, member, existingMembers, isOverride); + } + + if (CheckStandardMembers(errors, typeName, existingMembers)) + { + // No conflict in serialization settings, replace the old StandardMembers with the new one + PSMemberSet standardMemberSet = new PSMemberSet(PSStandardMembers, existingMembers) + { + inheritMembers = true, + IsHidden = true, + ShouldSerialize = false + }; + AddMember(errors, typeName, standardMemberSet, typeMemberCollection, isOverride: true); + } + else + { + // There are conflicts in serialization settings, add non-serializationSetting configurations + // into the original member collection. Replace the old StandardMembers with the new one + foreach (PSMemberInfo member in existingMembers) + { + if (oldMembersCopy[member.name] == null) + { + oldMembersCopy.Add(member); + } + } + + PSMemberSet standardMemberSet = new PSMemberSet(PSStandardMembers, oldMembersCopy) + { + inheritMembers = true, + IsHidden = true, + ShouldSerialize = false + }; + AddMember(errors, typeName, standardMemberSet, typeMemberCollection, isOverride: true); + } + } + + private static void ProcessTypeConverter( + ConcurrentBag errors, + string typeName, + Type converterType, + ConcurrentDictionary typeConverters, + bool isOverride) + { + if (CreateInstance(errors, typeName, converterType, TypesXmlStrings.UnableToInstantiateTypeConverter, out object instance)) + { + if ((instance is TypeConverter) || (instance is PSTypeConverter)) + { + LanguagePrimitives.UpdateTypeConvertFromTypeTable(typeName); + } + else + { + AddError(errors, typeName, TypesXmlStrings.TypeIsNotTypeConverter, converterType.FullName); + } + } + + if (instance != null && !typeConverters.TryAdd(typeName, instance)) + { + if (!isOverride) + { + AddError(errors, typeName, TypesXmlStrings.TypeConverterAlreadyPresent); + } + + // If IsOverride == true, eat the TypeConverterAlreadyPresent failure. + } + } + + private static void ProcessTypeAdapter( + ConcurrentBag errors, + string typeName, + Type adapterType, + ConcurrentDictionary typeAdapters, + bool isOverride) + { + PSObject.AdapterSet adapterSet = null; + if (CreateInstance(errors, typeName, adapterType, TypesXmlStrings.UnableToInstantiateTypeAdapter, out object instance)) + { + PSPropertyAdapter psPropertyAdapter = instance as PSPropertyAdapter; + + if (psPropertyAdapter == null) + { + AddError(errors, typeName, TypesXmlStrings.TypeIsNotTypeAdapter, adapterType.FullName); + } + else + { + if (LanguagePrimitives.TryConvertTo(typeName, out Type adaptedType)) + { + adapterSet = PSObject.CreateThirdPartyAdapterSet(adaptedType, psPropertyAdapter); + } + else + { + AddError(errors, typeName, TypesXmlStrings.InvalidAdaptedType, typeName); + } + } + } + + if (adapterSet != null && !typeAdapters.TryAdd(typeName, adapterSet)) + { + if (!isOverride) + { + AddError(errors, typeName, TypesXmlStrings.TypeAdapterAlreadyPresent); + } + + // If IsOverride == true, eat the TypeConverterAlreadyPresent failure. + } + } + private void ProcessTypeDataToAdd(ConcurrentBag errors, TypeData typeData) { string typeName = typeData.TypeName; @@ -3281,9 +3432,12 @@ namespace System.Management.Automation.Runspaces } PSMemberInfoInternalCollection typeMembers = null; + bool hasStandardMembers = typeData.StandardMembers.Count > 0 || propertySets.Count > 0; + int collectionSize = typeData.Members.Count + (hasStandardMembers ? 1 : 0); + if (typeData.Members.Count > 0) { - typeMembers = _extendedMembers.GetOrAdd(typeName, k => new PSMemberInfoInternalCollection()); + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(collectionSize)); ProcessMembersData(errors, typeName, typeData.Members.Values, typeMembers, typeData.IsOverride); foreach (var memberName in typeData.Members.Keys) @@ -3292,11 +3446,11 @@ namespace System.Management.Automation.Runspaces } } - if (typeData.StandardMembers.Count > 0 || propertySets.Count > 0) + if (hasStandardMembers) { if (typeMembers == null) { - typeMembers = _extendedMembers.GetOrAdd(typeName, k => new PSMemberInfoInternalCollection()); + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); } ProcessStandardMembers(errors, typeName, typeData.StandardMembers.Values, propertySets, typeMembers, typeData.IsOverride); @@ -3304,67 +3458,17 @@ namespace System.Management.Automation.Runspaces if (typeData.TypeConverter != null) { - object instance = null; - if (CreateInstance(errors, typeName, typeData.TypeConverter, TypesXmlStrings.UnableToInstantiateTypeConverter, out instance)) - { - if ((instance is TypeConverter) || (instance is PSTypeConverter)) - { - LanguagePrimitives.UpdateTypeConvertFromTypeTable(typeName); - } - else - { - AddError(errors, typeName, TypesXmlStrings.TypeIsNotTypeConverter, typeData.TypeConverter.FullName); - } - } - - if (instance != null && !_typeConverters.TryAdd(typeName, instance)) - { - if (!typeData.IsOverride) - { - AddError(errors, typeName, TypesXmlStrings.TypeConverterAlreadyPresent); - } - // If IsOverride == true, eat the TypeConverterAlreadyPresent failure. - } + ProcessTypeConverter(errors, typeName, typeData.TypeConverter, _typeConverters, typeData.IsOverride); } if (typeData.TypeAdapter != null) { - object instance; - PSObject.AdapterSet adapterSet = null; - if (CreateInstance(errors, typeName, typeData.TypeAdapter, TypesXmlStrings.UnableToInstantiateTypeAdapter, out instance)) - { - PSPropertyAdapter psPropertyAdapter = instance as PSPropertyAdapter; - - if (psPropertyAdapter == null) - { - AddError(errors, typeName, TypesXmlStrings.TypeIsNotTypeAdapter, typeData.TypeAdapter.FullName); - } - else - { - Type adaptedType = null; - if (LanguagePrimitives.TryConvertTo(typeName, out adaptedType)) - { - adapterSet = PSObject.CreateThirdPartyAdapterSet(adaptedType, psPropertyAdapter); - } - else - { - AddError(errors, typeName, TypesXmlStrings.InvalidAdaptedType, typeName); - } - } - } - - if (adapterSet != null && !_typeAdapters.TryAdd(typeName, adapterSet)) - { - if (!typeData.IsOverride) - { - AddError(errors, typeName, TypesXmlStrings.TypeAdapterAlreadyPresent); - } - // If IsOverride == true, eat the TypeConverterAlreadyPresent failure. - } + ProcessTypeAdapter(errors, typeName, typeData.TypeAdapter, _typeAdapters, typeData.IsOverride); } + // Record the information that this typedata was removed from the typetable // The next time the typetable is updated, we will need to exclude this typedata from the typetable - typesInfo.Add(new SessionStateTypeEntry(typeData, false)); + typesInfo.Add(new SessionStateTypeEntry(typeData, isRemove: false)); } #endregion add members from TypeData @@ -3389,15 +3493,13 @@ namespace System.Management.Automation.Runspaces } } - object unused1; - if (_typeConverters.TryRemove(typeName, out unused1)) + if (_typeConverters.TryRemove(typeName, out _)) { typeExist = true; LanguagePrimitives.UpdateTypeConvertFromTypeTable(typeName); } - PSObject.AdapterSet unused2; - if (_typeAdapters.TryRemove(typeName, out unused2)) + if (_typeAdapters.TryRemove(typeName, out _)) { typeExist = true; } @@ -3456,6 +3558,8 @@ namespace System.Management.Automation.Runspaces static TypeTable() { + s_valueFactoryCache = new Func>[ValueFactoryCacheCount]; + // Rather than set these members every time we process the standard members, do it // just once at startup. foreach (var sm in s_standardMembers) @@ -3464,6 +3568,12 @@ namespace System.Management.Automation.Runspaces } PSGetMemberBinder.TypeTableMemberAdded(PSStandardMembers); + + // Set the built-in type file paths. + var psHome = Utils.DefaultPowerShellAppBase; + TypesFilePath = Path.Combine(psHome, "types.ps1xml"); + TypesV3FilePath = Path.Combine(psHome, "typesv3.ps1xml"); + GetEventTypesFilePath = Path.Combine(psHome, "GetEvent.types.ps1xml"); } /// @@ -3514,17 +3624,7 @@ namespace System.Management.Automation.Runspaces /// List of type files. public static List GetDefaultTypeFiles() { - string typesFilePath = string.Empty; - string typesV3FilePath = string.Empty; - - var psHome = Utils.DefaultPowerShellAppBase; - if (!string.IsNullOrEmpty(psHome)) - { - typesFilePath = Path.Combine(psHome, "types.ps1xml"); - typesV3FilePath = Path.Combine(psHome, "typesv3.ps1xml"); - } - - return new List() { typesFilePath, typesV3FilePath }; + return new List() { TypesFilePath, TypesV3FilePath }; } /// @@ -4256,7 +4356,6 @@ namespace System.Management.Automation.Runspaces bool isProductCode, ConcurrentBag errors) { - typesInfo.Add(new SessionStateTypeEntry(fileToLoad)); LoadContext loadContext = new LoadContext(moduleName, fileToLoad, errors) { IsFullyTrusted = isFullyTrusted, @@ -4272,20 +4371,6 @@ namespace System.Management.Automation.Runspaces } } - /// - /// Removes the from the current TypeTable's type file list. - /// The TypeTable will not reflect the change until Update is called. - /// - /// - internal void Remove(string typeFile) - { - lock (_typeFileList) - { - _typeFileList.Remove(typeFile); - typesInfo.Remove(typeFile, null); - } - } - /// /// Update the TypeTable by adding a TypeData instance. /// @@ -4337,79 +4422,6 @@ namespace System.Management.Automation.Runspaces FormatAndTypeDataHelper.ThrowExceptionOnError("ErrorsUpdatingTypes", errors, FormatAndTypeDataHelper.Category.Types); } - /// - /// Update typetable from psSnapinTypes, this method will always rebuild the typetable. - /// The psSnapinTypes contain files and strong type data. - /// - /// - /// - /// Authorization manager to perform signature checks before reading ps1xml files (or null of no checks are needed) - /// - /// - /// Host passed to . Can be null if no interactive questions should be asked. - /// - /// - /// 1. The TypeTable cannot be updated because the TypeTable might have - /// been created outside of the Runspace. - /// - internal void Update( - Collection psSnapinTypes, - AuthorizationManager authorizationManager, - PSHost host - ) - { - if (isShared) - { - throw PSTraceSource.NewInvalidOperationException(TypesXmlStrings.SharedTypeTableCannotBeUpdated); - } - - // Always rebuild the whole TypeTable - Clear(); - - foreach (PSSnapInTypeAndFormatErrors snapin in psSnapinTypes) - { - // FullPath is not null, then it is a type xml file - if (snapin.FullPath != null) - { - Initialize(snapin.PSSnapinName, snapin.FullPath, snapin.Errors, authorizationManager, host, - out snapin.FailToLoadFile); - } - // FullPath is null, then it is a TypeData - else - { - Update(snapin.Errors, snapin.TypeData, snapin.IsRemove); - } - } - } - - /// - /// Entry created to make reflection-based test suites happy. DO NOT USE THIS ENTRY. - /// - /// The path to the file to load. - /// A place to put the errors... - /// If true, reset the table to empty... - /// - /// Authorization manager to perform signature checks before reading ps1xml files (or null of no checks are needed) - /// - /// - /// Host passed to . Can be null if no interactive questions should be asked. - /// - /// Indicate if the file cannot be loaded due to the security reason. - /// - /// 1. The TypeTable cannot be updated because the TypeTable might have - /// been created outside of the Runspace. - /// - internal void Update( - string filePath, - ConcurrentBag errors, - bool clearTable, - AuthorizationManager authorizationManager, - PSHost host, - out bool failToLoadFile) - { - Update(filePath, filePath, errors, authorizationManager, host, out failToLoadFile); - } - /// /// Update type data from a specific file... /// @@ -4467,38 +4479,24 @@ namespace System.Management.Automation.Runspaces if (etwEnabled) RunspaceEventSource.Log.ProcessTypeFileStop(filePath); } - private void ProcessTypeData(string filePath, ConcurrentBag errors, IEnumerable types) - { - typesInfo.Add(new SessionStateTypeEntry(filePath)); - - // TODO - use parallel foreach without causing any contention - // Parallel.ForEach(types, typeData => - foreach (var typeData in types) - { - ProcessTypeDataToAdd(errors, typeData); - } - // }); - } - private bool ProcessIsBuiltIn(string filePath, ConcurrentBag errors, out bool failToLoadFile) { var result = false; var errorCount = errors.Count; - var psHome = Utils.DefaultPowerShellAppBase; - if (string.Equals(Path.Combine(psHome, "types.ps1xml"), filePath, StringComparison.OrdinalIgnoreCase)) + if (string.Equals(TypesFilePath, filePath, StringComparison.OrdinalIgnoreCase)) { - ProcessTypeData(filePath, errors, Types_Ps1Xml.Get()); + Process_Types_Ps1Xml(filePath, errors); result = true; } - else if (string.Equals(Path.Combine(psHome, "typesv3.ps1xml"), filePath, StringComparison.OrdinalIgnoreCase)) + else if (string.Equals(TypesV3FilePath, filePath, StringComparison.OrdinalIgnoreCase)) { - ProcessTypeData(filePath, errors, TypesV3_Ps1Xml.Get()); + Process_TypesV3_Ps1Xml(filePath, errors); result = true; } - else if (string.Equals(Path.Combine(psHome, "GetEvent.types.ps1xml"), filePath, StringComparison.OrdinalIgnoreCase)) + else if (string.Equals(GetEventTypesFilePath, filePath, StringComparison.OrdinalIgnoreCase)) { - ProcessTypeData(filePath, errors, GetEvent_Types_Ps1Xml.Get()); + Process_GetEvent_Types_Ps1Xml(filePath, errors); result = true; } diff --git a/src/System.Management.Automation/engine/TypeTable_GetEvent_Types_Ps1Xml.cs b/src/System.Management.Automation/engine/TypeTable_GetEvent_Types_Ps1Xml.cs new file mode 100644 index 0000000000..35e7e77c4f --- /dev/null +++ b/src/System.Management.Automation/engine/TypeTable_GetEvent_Types_Ps1Xml.cs @@ -0,0 +1,201 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Management.Automation.Language; +using System.Reflection; + +namespace System.Management.Automation.Runspaces +{ + public sealed partial class TypeTable + { + private void Process_GetEvent_Types_Ps1Xml(string filePath, ConcurrentBag errors) + { + typesInfo.Add(new SessionStateTypeEntry(filePath)); + + string typeName = null; + PSMemberInfoInternalCollection typeMembers = null; + PSMemberInfoInternalCollection memberSetMembers = null; + HashSet newMembers = new HashSet(StringComparer.OrdinalIgnoreCase); + + #region System.Diagnostics.Eventing.Reader.EventLogConfiguration + + typeName = @"System.Diagnostics.Eventing.Reader.EventLogConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "LogName", "MaximumSizeInBytes", "RecordCount", "LogMode" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Diagnostics.Eventing.Reader.EventLogConfiguration + + #region System.Diagnostics.Eventing.Reader.EventLogRecord + + typeName = @"System.Diagnostics.Eventing.Reader.EventLogRecord"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "TimeCreated", "ProviderName", "Id", "Message" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Diagnostics.Eventing.Reader.EventLogRecord + + #region System.Diagnostics.Eventing.Reader.ProviderMetadata + + typeName = @"System.Diagnostics.Eventing.Reader.ProviderMetadata"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"ProviderName"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"ProviderName", @"Name", conversionType: null), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "LogLinks" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Diagnostics.Eventing.Reader.ProviderMetadata + +#if !CORECLR + #region Microsoft.PowerShell.Commands.GetCounter.CounterSet + + typeName = @"Microsoft.PowerShell.Commands.GetCounter.CounterSet"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"Counter"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Counter", @"Paths", conversionType: null), + typeMembers, + isOverride: false); + + #endregion Microsoft.PowerShell.Commands.GetCounter.CounterSet + + #region Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample + + typeName = @"Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Path", "InstanceName", "CookedValue" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample + + #region Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet + + typeName = @"Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"Readings"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Readings", + GetScriptBlock(@"$strPaths = """" + foreach ($ctr in $this.CounterSamples) + { + $strPaths += ($ctr.Path + "" :"" + ""`n"") + $strPaths += ($ctr.CookedValue.ToString() + ""`n`n"") + } + + return $strPaths"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Timestamp", "Readings" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet +#endif + + // Update binder version for newly added members. + foreach (string memberName in newMembers) + { + PSGetMemberBinder.TypeTableMemberAdded(memberName); + } + } + } +} diff --git a/src/System.Management.Automation/engine/TypeTable_TypesV3_Ps1Xml.cs b/src/System.Management.Automation/engine/TypeTable_TypesV3_Ps1Xml.cs new file mode 100644 index 0000000000..a2038b8a4e --- /dev/null +++ b/src/System.Management.Automation/engine/TypeTable_TypesV3_Ps1Xml.cs @@ -0,0 +1,436 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Management.Automation.Language; +using System.Reflection; + +namespace System.Management.Automation.Runspaces +{ + public sealed partial class TypeTable + { + private void Process_TypesV3_Ps1Xml(string filePath, ConcurrentBag errors) + { + typesInfo.Add(new SessionStateTypeEntry(filePath)); + + string typeName = null; + PSMemberInfoInternalCollection typeMembers = null; + PSMemberInfoInternalCollection memberSetMembers = null; + HashSet newMembers = new HashSet(StringComparer.OrdinalIgnoreCase); + + #region System.Security.Cryptography.X509Certificates.X509Certificate2 + + typeName = @"System.Security.Cryptography.X509Certificates.X509Certificate2"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"EnhancedKeyUsageList"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"EnhancedKeyUsageList", + GetScriptBlock(@",(new-object Microsoft.Powershell.Commands.EnhancedKeyUsageProperty -argumentlist $this).EnhancedKeyUsageList;"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"DnsNameList"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"DnsNameList", + GetScriptBlock(@",(new-object Microsoft.Powershell.Commands.DnsNameProperty -argumentlist $this).DnsNameList;"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"SendAsTrustedIssuer"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"SendAsTrustedIssuer", + GetScriptBlock(@"[Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::ReadSendAsTrustedIssuerProperty($this)"), + GetScriptBlock(@"$sendAsTrustedIssuer = $args[0] + [Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::WriteSendAsTrustedIssuerProperty($this,$this.PsPath,$sendAsTrustedIssuer)"), + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Security.Cryptography.X509Certificates.X509Certificate2 + + #region System.Management.Automation.Remoting.PSSenderInfo + + typeName = @"System.Management.Automation.Remoting.PSSenderInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"ConnectedUser"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"ConnectedUser", + GetScriptBlock(@"$this.UserInfo.Identity.Name"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"RunAsUser"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"RunAsUser", + GetScriptBlock(@"if($null -ne $this.UserInfo.WindowsIdentity) + { + $this.UserInfo.WindowsIdentity.Name + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.Remoting.PSSenderInfo + + #region System.Management.Automation.CompletionResult + + typeName = @"System.Management.Automation.CompletionResult"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.CompletionResult + + #region Deserialized.System.Management.Automation.CompletionResult + + typeName = @"Deserialized.System.Management.Automation.CompletionResult"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.CompletionResult + + #region System.Management.Automation.CommandCompletion + + typeName = @"System.Management.Automation.CommandCompletion"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.CommandCompletion + + #region Deserialized.System.Management.Automation.CommandCompletion + + typeName = @"Deserialized.System.Management.Automation.CommandCompletion"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.CommandCompletion + + #region Microsoft.PowerShell.Commands.ModuleSpecification + + typeName = @"Microsoft.PowerShell.Commands.ModuleSpecification"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.PowerShell.Commands.ModuleSpecification + + #region Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification + + typeName = @"Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification + + #region System.Management.Automation.JobStateEventArgs + + typeName = @"System.Management.Automation.JobStateEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.JobStateEventArgs + + #region Deserialized.System.Management.Automation.JobStateEventArgs + + typeName = @"Deserialized.System.Management.Automation.JobStateEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.JobStateEventArgs + + #region System.Exception + + typeName = @"System.Exception"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Exception + + #region System.Management.Automation.Remoting.PSSessionOption + + typeName = @"System.Management.Automation.Remoting.PSSessionOption"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.Remoting.PSSessionOption + + #region Deserialized.System.Management.Automation.Remoting.PSSessionOption + + typeName = @"Deserialized.System.Management.Automation.Remoting.PSSessionOption"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.Remoting.PSSessionOption + + #region System.Management.Automation.DebuggerStopEventArgs + + typeName = @"System.Management.Automation.DebuggerStopEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"SerializedInvocationInfo"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"SerializedInvocationInfo", + GetMethodInfo(typeof(Microsoft.PowerShell.DeserializingTypeConverter), @"GetInvocationInfo"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 3); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "Breakpoints", "ResumeAction", "SerializedInvocationInfo" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.DebuggerStopEventArgs + + #region Deserialized.System.Management.Automation.DebuggerStopEventArgs + + typeName = @"Deserialized.System.Management.Automation.DebuggerStopEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.DebuggerStopEventArgs + + // Update binder version for newly added members. + foreach (string memberName in newMembers) + { + PSGetMemberBinder.TypeTableMemberAdded(memberName); + } + } + } +} diff --git a/src/System.Management.Automation/engine/TypeTable_Types_Ps1Xml.cs b/src/System.Management.Automation/engine/TypeTable_Types_Ps1Xml.cs new file mode 100644 index 0000000000..257a9b79d3 --- /dev/null +++ b/src/System.Management.Automation/engine/TypeTable_Types_Ps1Xml.cs @@ -0,0 +1,9208 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Management.Automation.Language; +using System.Reflection; +using System.Threading; + +namespace System.Management.Automation.Runspaces +{ + public sealed partial class TypeTable + { + private const int ValueFactoryCacheCount = 6; + private static readonly Func>[] s_valueFactoryCache; + + private static Func> GetValueFactoryBasedOnInitCapacity(int capacity) + { + if (capacity <= 0) + { + throw new ArgumentOutOfRangeException(nameof(capacity)); + } + + if (capacity > ValueFactoryCacheCount) + { + return CreateValueFactory(capacity); + } + + int cacheIndex = capacity - 1; + if (s_valueFactoryCache[cacheIndex] == null) + { + Interlocked.CompareExchange( + ref s_valueFactoryCache[cacheIndex], + CreateValueFactory(capacity), + comparand: null); + } + + return s_valueFactoryCache[cacheIndex]; + + + // Local helper function to avoid creating an instance of the generated delegate helper class + // every time 'GetValueFactoryBasedOnInitCapacity' is invoked. + static Func> CreateValueFactory(int capacity) + { + return key => new PSMemberInfoInternalCollection(capacity); + } + } + + private static MethodInfo GetMethodInfo(Type type, string method) + { + return type.GetMethod(method, BindingFlags.Static | BindingFlags.Public | BindingFlags.IgnoreCase); + } + + private static ScriptBlock GetScriptBlock(string s) + { + var sb = ScriptBlock.CreateDelayParsedScriptBlock(s, isProductCode: true); + sb.LanguageMode = PSLanguageMode.FullLanguage; + return sb; + } + + private void Process_Types_Ps1Xml(string filePath, ConcurrentBag errors) + { + typesInfo.Add(new SessionStateTypeEntry(filePath)); + + string typeName = null; + PSMemberInfoInternalCollection typeMembers = null; + PSMemberInfoInternalCollection memberSetMembers = null; + HashSet newMembers = new HashSet(StringComparer.OrdinalIgnoreCase); + + #region System.Xml.XmlNode + + typeName = @"System.Xml.XmlNode"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"ToString"); + AddMember( + errors, + typeName, + new PSCodeMethod( + @"ToString", + GetMethodInfo(typeof(Microsoft.PowerShell.ToStringCodeMethods), @"XmlNode")), + typeMembers, + isOverride: false); + + #endregion System.Xml.XmlNode + + #region System.Xml.XmlNodeList + + typeName = @"System.Xml.XmlNodeList"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"ToString"); + AddMember( + errors, + typeName, + new PSCodeMethod( + @"ToString", + GetMethodInfo(typeof(Microsoft.PowerShell.ToStringCodeMethods), @"XmlNodeList")), + typeMembers, + isOverride: false); + + #endregion System.Xml.XmlNodeList + + #region System.Management.Automation.PSDriveInfo + + typeName = @"System.Management.Automation.PSDriveInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"Used"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Used", + GetScriptBlock(@"## Ensure that this is a FileSystem drive + if($this.Provider.ImplementingType -eq + [Microsoft.PowerShell.Commands.FileSystemProvider]) + { + $driveInfo = [System.IO.DriveInfo]::New($this.Root) + if ( $driveInfo.IsReady ) { $driveInfo.TotalSize - $driveInfo.AvailableFreeSpace } + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Free"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Free", + GetScriptBlock(@"## Ensure that this is a FileSystem drive + if($this.Provider.ImplementingType -eq + [Microsoft.PowerShell.Commands.FileSystemProvider]) + { + [System.IO.DriveInfo]::New($this.Root).AvailableFreeSpace + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSDriveInfo + + #region System.DirectoryServices.PropertyValueCollection +#if !UNIX + typeName = @"System.DirectoryServices.PropertyValueCollection"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"ToString"); + AddMember( + errors, + typeName, + new PSCodeMethod( + @"ToString", + GetMethodInfo(typeof(Microsoft.PowerShell.ToStringCodeMethods), @"PropertyValueCollection")), + typeMembers, + isOverride: false); +#endif + #endregion System.DirectoryServices.PropertyValueCollection + + #region System.Drawing.Printing.PrintDocument + + typeName = @"System.Drawing.Printing.PrintDocument"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"Name"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Name", + GetScriptBlock(@"$this.PrinterSettings.PrinterName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Color"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Color", + GetScriptBlock(@"$this.PrinterSettings.SupportsColor"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Duplex"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Duplex", + GetScriptBlock(@"$this.PrinterSettings.Duplex"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Drawing.Printing.PrintDocument + + #region System.Management.Automation.ApplicationInfo + + typeName = @"System.Management.Automation.ApplicationInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"FileVersionInfo"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"FileVersionInfo", + GetScriptBlock(@"[System.Diagnostics.FileVersionInfo]::getversioninfo( $this.Path )"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.ApplicationInfo + + #region System.DateTime + + typeName = @"System.DateTime"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"DateTime"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"DateTime", + GetScriptBlock(@"if ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq ""Date"") + { + ""{0}"" -f $this.ToLongDateString() + } + elseif ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq ""Time"") + { + ""{0}"" -f $this.ToLongTimeString() + } + else + { + ""{0} {1}"" -f $this.ToLongDateString(), $this.ToLongTimeString() + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.DateTime + + #region System.Net.IPAddress + + typeName = @"System.Net.IPAddress"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"IPAddressToString"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"IPAddressToString", + GetScriptBlock(@"$this.Tostring()"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 2); + AddMember( + errors, + typeName, + new PSNoteProperty(@"DefaultDisplayProperty", @"IPAddressToString"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Net.IPAddress + + #region Deserialized.System.Net.IPAddress + + typeName = @"Deserialized.System.Net.IPAddress"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Net.IPAddress + + #region System.Diagnostics.ProcessModule + + typeName = @"System.Diagnostics.ProcessModule"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 6)); + + // Process regular members. + newMembers.Add(@"Size"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Size", + GetScriptBlock(@"$this.ModuleMemorySize / 1024"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Company"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Company", + GetScriptBlock(@"$this.FileVersionInfo.CompanyName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"FileVersion"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"FileVersion", + GetScriptBlock(@"$this.FileVersionInfo.FileVersion"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"ProductVersion"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"ProductVersion", + GetScriptBlock(@"$this.FileVersionInfo.ProductVersion"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Description"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Description", + GetScriptBlock(@"$this.FileVersionInfo.FileDescription"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Product"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Product", + GetScriptBlock(@"$this.FileVersionInfo.ProductName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Diagnostics.ProcessModule + + #region System.Collections.DictionaryEntry + + typeName = @"System.Collections.DictionaryEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"Name"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Name", @"Key", conversionType: null), + typeMembers, + isOverride: false); + + #endregion System.Collections.DictionaryEntry + + #region System.Management.Automation.PSModuleInfo + + typeName = @"System.Management.Automation.PSModuleInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "Path", "Description", "Guid", "Version", "ModuleBase", "ModuleType", "PrivateData", "AccessMode", "ExportedAliases", "ExportedCmdlets", "ExportedFunctions", "ExportedVariables", "NestedModules" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSModuleInfo + + #region System.ServiceProcess.ServiceController + + typeName = @"System.ServiceProcess.ServiceController"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 4)); + + // Process regular members. + newMembers.Add(@"Name"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Name", @"ServiceName", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"RequiredServices"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"RequiredServices", @"ServicesDependedOn", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"ToString"); + AddMember( + errors, + typeName, + new PSScriptMethod( + @"ToString", + GetScriptBlock(@"$this.ServiceName"), + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Status", "Name", "DisplayName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.ServiceProcess.ServiceController + + #region Deserialized.System.ServiceProcess.ServiceController + + typeName = @"Deserialized.System.ServiceProcess.ServiceController"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Status", "Name", "DisplayName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.ServiceProcess.ServiceController + + #region System.Management.Automation.CmdletInfo + + typeName = @"System.Management.Automation.CmdletInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"DLL"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"DLL", + GetScriptBlock(@"$this.ImplementingType.Assembly.Location"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.CmdletInfo + + #region System.Management.Automation.AliasInfo + + typeName = @"System.Management.Automation.AliasInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"ResolvedCommandName"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"ResolvedCommandName", + GetScriptBlock(@"$this.ResolvedCommand.Name"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"DisplayName"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"DisplayName", + GetScriptBlock(@"if ($this.Name.IndexOf('-') -lt 0) + { + if ($null -ne $this.ResolvedCommand) + { + $this.Name + "" -> "" + $this.ResolvedCommand.Name + } + else + { + $this.Name + "" -> "" + $this.Definition + } + } + else + { + $this.Name + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.AliasInfo + + #region System.DirectoryServices.DirectoryEntry +#if !UNIX + typeName = @"System.DirectoryServices.DirectoryEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"ConvertLargeIntegerToInt64"); + AddMember( + errors, + typeName, + new PSCodeMethod( + @"ConvertLargeIntegerToInt64", + GetMethodInfo(typeof(Microsoft.PowerShell.AdapterCodeMethods), @"ConvertLargeIntegerToInt64")), + typeMembers, + isOverride: false); + + newMembers.Add(@"ConvertDNWithBinaryToString"); + AddMember( + errors, + typeName, + new PSCodeMethod( + @"ConvertDNWithBinaryToString", + GetMethodInfo(typeof(Microsoft.PowerShell.AdapterCodeMethods), @"ConvertDNWithBinaryToString")), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "distinguishedName", "Path" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); +#endif + #endregion System.DirectoryServices.DirectoryEntry + + #region System.IO.DirectoryInfo + + typeName = @"System.IO.DirectoryInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, key => new PSMemberInfoInternalCollection(capacity: 9)); + + // Process regular members. + newMembers.Add(@"Mode"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Mode", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"Mode"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"ModeWithoutHardLink"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"ModeWithoutHardLink", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"ModeWithoutHardLink"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"BaseName"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"BaseName", + GetScriptBlock(@"$this.Name"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Target"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Target", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), @"GetTarget"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"LinkType"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"LinkType", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), @"GetLinkType"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"NameString"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"NameString", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"NameString"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + newMembers.Add(@"LengthString"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"LengthString", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"LengthString"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + newMembers.Add(@"LastWriteTimeString"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"LastWriteTimeString", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"LastWriteTimeString"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"DefaultDisplayProperty", @"Name"), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.IO.DirectoryInfo + + #region System.IO.FileInfo + + typeName = @"System.IO.FileInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, key => new PSMemberInfoInternalCollection(capacity: 10)); + + // Process regular members. + newMembers.Add(@"Mode"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Mode", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"Mode"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"ModeWithoutHardLink"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"ModeWithoutHardLink", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"ModeWithoutHardLink"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"VersionInfo"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"VersionInfo", + GetScriptBlock(@"[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"BaseName"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"BaseName", + GetScriptBlock(@"if ($this.Extension.Length -gt 0){$this.Name.Remove($this.Name.Length - $this.Extension.Length)}else{$this.Name}"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Target"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Target", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), @"GetTarget"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"LinkType"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"LinkType", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), @"GetLinkType"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"NameString"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"NameString", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"NameString"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + newMembers.Add(@"LengthString"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"LengthString", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"LengthString"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + newMembers.Add(@"LastWriteTimeString"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"LastWriteTimeString", + GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), @"LastWriteTimeString"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "LastWriteTime", "Length", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.IO.FileInfo + + #region System.Diagnostics.FileVersionInfo + + typeName = @"System.Diagnostics.FileVersionInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"FileVersionRaw"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"FileVersionRaw", + GetScriptBlock(@"New-Object System.Version -ArgumentList @( + $this.FileMajorPart + $this.FileMinorPart + $this.FileBuildPart + $this.FilePrivatePart)"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"ProductVersionRaw"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"ProductVersionRaw", + GetScriptBlock(@"New-Object System.Version -ArgumentList @( + $this.ProductMajorPart + $this.ProductMinorPart + $this.ProductBuildPart + $this.ProductPrivatePart)"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Diagnostics.FileVersionInfo + + #region System.Diagnostics.EventLogEntry + + typeName = @"System.Diagnostics.EventLogEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"EventID"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"EventID", + GetScriptBlock(@"$this.get_EventID() -band 0xFFFF"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Diagnostics.EventLogEntry + + #region System.Management.ManagementBaseObject + + typeName = @"System.Management.ManagementBaseObject"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"PSComputerName"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"PSComputerName", @"__SERVER", conversionType: null), + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementBaseObject + + #region System.Management.ManagementObject#root\cimv2\Win32_PingStatus + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PingStatus"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"IPV4Address"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"IPV4Address", + GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) + $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } | Select-Object -first 1"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"IPV6Address"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"IPV6Address", + GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) + $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetworkV6 } | Select-Object -first 1"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PingStatus + + #region System.Management.ManagementObject#root\cimv2\Win32_Process + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Process"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 5)); + + // Process regular members. + newMembers.Add(@"ProcessName"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"ProcessName", @"Name", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Handles"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Handles", @"Handlecount", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"VM"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"VM", @"VirtualSize", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"WS"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"WS", @"WorkingSetSize", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Path"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Path", + GetScriptBlock(@"$this.ExecutablePath"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Process + + #region System.Diagnostics.Process + + typeName = @"System.Diagnostics.Process"; + typeMembers = _extendedMembers.GetOrAdd(typeName, key => new PSMemberInfoInternalCollection(capacity: 19)); + + // Process regular members. + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "Name", "Id", "PriorityClass", "FileVersion" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSResources"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSResources", + new List { "Name", "Id", "Handlecount", "WorkingSet", "NonPagedMemorySize", "PagedMemorySize", "PrivateMemorySize", "VirtualMemorySize", "Threads.Count", "TotalProcessorTime" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"Name"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Name", @"ProcessName", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"SI"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"SI", @"SessionId", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Handles"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Handles", @"Handlecount", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"VM"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"VM", @"VirtualMemorySize64", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"WS"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"WS", @"WorkingSet64", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"PM"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"PM", @"PagedMemorySize64", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"NPM"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"NPM", @"NonpagedSystemMemorySize64", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Path"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Path", + GetScriptBlock(@"$this.Mainmodule.FileName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Parent"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Parent", + GetMethodInfo(typeof(Microsoft.PowerShell.ProcessCodeMethods), @"GetParentProcess"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Company"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Company", + GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.CompanyName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"CPU"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"CPU", + GetScriptBlock(@"$this.TotalProcessorTime.TotalSeconds"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"FileVersion"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"FileVersion", + GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.FileVersion"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"ProductVersion"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"ProductVersion", + GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.ProductVersion"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Description"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Description", + GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.FileDescription"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Product"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Product", + GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.ProductName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"__NounName"); + AddMember( + errors, + typeName, + new PSNoteProperty(@"__NounName", @"Process"), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Id", "Handles", "CPU", "SI", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Diagnostics.Process + + #region Deserialized.System.Diagnostics.Process + + typeName = @"Deserialized.System.Diagnostics.Process"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "Name", "Id", "PriorityClass", "FileVersion" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSResources"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSResources", + new List { "Name", "Id", "Handlecount", "WorkingSet", "NonPagedMemorySize", "PagedMemorySize", "PrivateMemorySize", "VirtualMemorySize", "Threads.Count", "TotalProcessorTime" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Id", "Handles", "CPU", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Diagnostics.Process + + #region System.Management.ManagementObject#root\cli\Msft_CliAlias + + typeName = @"System.Management.ManagementObject#root\cli\Msft_CliAlias"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "FriendlyName", "PWhere", "Target" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cli\Msft_CliAlias + + #region System.Management.ManagementObject#root\cimv2\Win32_BaseBoard + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_BaseBoard"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "PoweredOn" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Model", "Name", "SerialNumber", "SKU", "Product" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_BaseBoard + + #region System.Management.ManagementObject#root\cimv2\Win32_BIOS + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_BIOS"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "Caption", "SMBIOSPresent" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "SMBIOSBIOSVersion", "Manufacturer", "Name", "SerialNumber", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_BIOS + + #region System.Management.ManagementObject#root\cimv2\Win32_BootConfiguration + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_BootConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "SettingID", "ConfigurationPath" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "BootDirectory", "Name", "SettingID", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_BootConfiguration + + #region System.Management.ManagementObject#root\cimv2\Win32_CDROMDrive + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_CDROMDrive"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "Drive", "ErrorCleared", "MediaLoaded", "NeedsCleaning", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Drive", "Manufacturer", "VolumeName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_CDROMDrive + + #region System.Management.ManagementObject#root\cimv2\Win32_ComputerSystem + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_ComputerSystem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "AdminPasswordStatus", "BootupState", "ChassisBootupState", "KeyboardPasswordStatus", "PowerOnPasswordStatus", "PowerSupplyState", "PowerState", "FrontPanelResetStatus", "ThermalState", "Status", "Name" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"POWER"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"POWER", + new List { "Name", "PowerManagementCapabilities", "PowerManagementSupported", "PowerOnPasswordStatus", "PowerState", "PowerSupplyState" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Domain", "Manufacturer", "Model", "Name", "PrimaryOwnerName", "TotalPhysicalMemory" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_ComputerSystem + + #region System.Management.ManagementObject#root\cimv2\WIN32_PROCESSOR + + typeName = @"System.Management.ManagementObject#root\cimv2\WIN32_PROCESSOR"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "CpuStatus", "CurrentVoltage", "DeviceID", "ErrorCleared", "ErrorDescription", "LastErrorCode", "LoadPercentage", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "AddressWidth", "DataWidth", "DeviceID", "ExtClock", "L2CacheSize", "L2CacheSpeed", "MaxClockSpeed", "PowerManagementSupported", "ProcessorType", "Revision", "SocketDesignation", "Version", "VoltageCaps" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "DeviceID", "Manufacturer", "MaxClockSpeed", "Name", "SocketDesignation" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\WIN32_PROCESSOR + + #region System.Management.ManagementObject#root\cimv2\Win32_ComputerSystemProduct + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_ComputerSystemProduct"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Version" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_ComputerSystemProduct + + #region System.Management.ManagementObject#root\cimv2\CIM_DataFile + + typeName = @"System.Management.ManagementObject#root\cimv2\CIM_DataFile"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Compressed", "Encrypted", "Size", "Hidden", "Name", "Readable", "System", "Version", "Writeable" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\CIM_DataFile + + #region System.Management.ManagementObject#root\cimv2\WIN32_DCOMApplication + + typeName = @"System.Management.ManagementObject#root\cimv2\WIN32_DCOMApplication"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AppID", "InstallDate", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\WIN32_DCOMApplication + + #region System.Management.ManagementObject#root\cimv2\WIN32_DESKTOP + + typeName = @"System.Management.ManagementObject#root\cimv2\WIN32_DESKTOP"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "ScreenSaverActive" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "ScreenSaverActive", "ScreenSaverSecure", "ScreenSaverTimeout", "SettingID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\WIN32_DESKTOP + + #region System.Management.ManagementObject#root\cimv2\WIN32_DESKTOPMONITOR + + typeName = @"System.Management.ManagementObject#root\cimv2\WIN32_DESKTOPMONITOR"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "DeviceID", "Name", "PixelsPerXLogicalInch", "PixelsPerYLogicalInch", "ScreenHeight", "ScreenWidth" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "DeviceID", "IsLocked", "LastErrorCode", "Name", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "DisplayType", "MonitorManufacturer", "Name", "ScreenHeight", "ScreenWidth" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\WIN32_DESKTOPMONITOR + + #region System.Management.ManagementObject#root\cimv2\Win32_DeviceMemoryAddress + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_DeviceMemoryAddress"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "MemoryType" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "MemoryType", "Name", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_DeviceMemoryAddress + + #region System.Management.ManagementObject#root\cimv2\Win32_DiskDrive + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_DiskDrive"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "ConfigManagerErrorCode", "LastErrorCode", "NeedsCleaning", "Status", "DeviceID", "StatusInfo", "Partitions" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "BytesPerSector", "ConfigManagerUserConfig", "DefaultBlockSize", "DeviceID", "Index", "InstallDate", "InterfaceType", "MaxBlockSize", "MaxMediaSize", "MinBlockSize", "NumberOfMediaSupported", "Partitions", "SectorsPerTrack", "Size", "TotalCylinders", "TotalHeads", "TotalSectors", "TotalTracks", "TracksPerCylinder" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Partitions", "DeviceID", "Model", "Size", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_DiskDrive + + #region System.Management.ManagementObject#root\cimv2\Win32_DiskQuota + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_DiskQuota"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "__PATH", "Status" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DiskSpaceUsed", "Limit", "QuotaVolume", "User" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_DiskQuota + + #region System.Management.ManagementObject#root\cimv2\Win32_DMAChannel + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_DMAChannel"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AddressSize", "DMAChannel", "MaxTransferSize", "Name", "Port" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_DMAChannel + + #region System.Management.ManagementObject#root\cimv2\Win32_Environment + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Environment"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "SystemVariable" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "VariableValue", "Name", "UserName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Environment + + #region System.Management.ManagementObject#root\cimv2\Win32_Directory + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Directory"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Compressed", "Encrypted", "Name", "Readable", "Writeable" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Hidden", "Archive", "EightDotThreeFileName", "FileSize", "Name", "Compressed", "Encrypted", "Readable" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Directory + + #region System.Management.ManagementObject#root\cimv2\Win32_Group + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Group"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Domain", "Name", "SID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Group + + #region System.Management.ManagementObject#root\cimv2\Win32_IDEController + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_IDEController"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_IDEController + + #region System.Management.ManagementObject#root\cimv2\Win32_IRQResource + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_IRQResource"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Caption", "Availability" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Hardware", "IRQNumber", "Name", "Shareable", "TriggerLevel", "TriggerType" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_IRQResource + + #region System.Management.ManagementObject#root\cimv2\Win32_ScheduledJob + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_ScheduledJob"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "JobId", "JobStatus", "ElapsedTime", "StartTime", "Owner" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "JobId", "Name", "Owner", "Priority", "Command" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_ScheduledJob + + #region System.Management.ManagementObject#root\cimv2\Win32_LoadOrderGroup + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_LoadOrderGroup"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "GroupOrder", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_LoadOrderGroup + + #region System.Management.ManagementObject#root\cimv2\Win32_LogicalDisk + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_LogicalDisk"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Availability", "DeviceID", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "DriveType", "ProviderName", "FreeSpace", "Size", "VolumeName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_LogicalDisk + + #region System.Management.ManagementObject#root\cimv2\Win32_LogonSession + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_LogonSession"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "__PATH", "Status" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AuthenticationPackage", "LogonId", "LogonType", "Name", "StartTime", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_LogonSession + + #region System.Management.ManagementObject#root\cimv2\WIN32_CACHEMEMORY + + typeName = @"System.Management.ManagementObject#root\cimv2\WIN32_CACHEMEMORY"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 4)); + + // Process regular members. + newMembers.Add(@"ERROR"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"ERROR", + new List { "DeviceID", "ErrorCorrectType" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "DeviceID", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status", "WritePolicy" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\WIN32_CACHEMEMORY + + #region System.Management.ManagementObject#root\cimv2\Win32_LogicalMemoryConfiguration + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_LogicalMemoryConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "AvailableVirtualMemory", "Name", "TotalVirtualMemory" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "TotalVirtualMemory", "TotalPhysicalMemory", "TotalPageFileSpace" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_LogicalMemoryConfiguration + + #region System.Management.ManagementObject#root\cimv2\Win32_PhysicalMemoryArray + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PhysicalMemoryArray"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "Replaceable", "Location" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Model", "Name", "MaxCapacity", "MemoryDevices" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PhysicalMemoryArray + + #region System.Management.ManagementObject#root\cimv2\WIN32_NetworkClient + + typeName = @"System.Management.ManagementObject#root\cimv2\WIN32_NetworkClient"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "InstallDate", "Manufacturer", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\WIN32_NetworkClient + + #region System.Management.ManagementObject#root\cimv2\Win32_NetworkLoginProfile + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NetworkLoginProfile"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Privileges", "Profile", "UserId", "UserType", "Workstations" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NetworkLoginProfile + + #region System.Management.ManagementObject#root\cimv2\Win32_NetworkProtocol + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NetworkProtocol"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"FULLXXX"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"FULLXXX", + new List { "ConnectionlessService", "Description", "GuaranteesDelivery", "GuaranteesSequencing", "InstallDate", "MaximumAddressSize", "MaximumMessageSize", "MessageOriented", "MinimumAddressSize", "Name", "PseudoStreamOriented", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "GuaranteesDelivery", "GuaranteesSequencing", "ConnectionlessService", "Status", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NetworkProtocol + + #region System.Management.ManagementObject#root\cimv2\Win32_NetworkConnection + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NetworkConnection"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "ConnectionState", "Persistent", "LocalName", "RemoteName" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "LocalName", "RemoteName", "ConnectionState", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NetworkConnection + + #region System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapter + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapter"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "Name", "Status", "StatusInfo", "DeviceID" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ServiceName", "MACAddress", "AdapterType", "DeviceID", "Name", "NetworkAddresses", "Speed" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapter + + #region System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapterConfiguration + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapterConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 6)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "DHCPLeaseExpires", "Index", "Description" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"DHCP"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DHCP", + new List { "Description", "DHCPEnabled", "DHCPLeaseExpires", "DHCPLeaseObtained", "DHCPServer", "Index" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"DNS"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DNS", + new List { "Description", "DNSDomain", "DNSDomainSuffixSearchOrder", "DNSEnabledForWINSResolution", "DNSHostName", "DNSServerSearchOrder", "DomainDNSRegistrationEnabled", "FullDNSRegistrationEnabled", "Index" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"IP"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"IP", + new List { "Description", "Index", "IPAddress", "IPConnectionMetric", "IPEnabled", "IPFilterSecurityEnabled" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"WINS"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"WINS", + new List { "Description", "Index", "WINSEnableLMHostsLookup", "WINSHostLookupFile", "WINSPrimaryServer", "WINSScopeID", "WINSSecondaryServer" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DHCPEnabled", "IPAddress", "DefaultIPGateway", "DNSDomain", "ServiceName", "Description", "Index" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapterConfiguration + + #region System.Management.ManagementObject#root\cimv2\Win32_NTDomain + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NTDomain"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "DomainName" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"GUID"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"GUID", + new List { "DomainName", "DomainGuid" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ClientSiteName", "DcSiteName", "Description", "DnsForestName", "DomainControllerAddress", "DomainControllerName", "DomainName", "Roles", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NTDomain + + #region System.Management.ManagementObject#root\cimv2\Win32_NTLogEvent + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NTLogEvent"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Category", "CategoryString", "EventCode", "EventIdentifier", "TypeEvent", "InsertionStrings", "LogFile", "Message", "RecordNumber", "SourceName", "TimeGenerated", "TimeWritten", "Type", "UserName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NTLogEvent + + #region System.Management.ManagementObject#root\cimv2\Win32_NTEventlogFile + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_NTEventlogFile"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "LogfileName", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "FileSize", "LogfileName", "Name", "NumberOfRecords" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_NTEventlogFile + + #region System.Management.ManagementObject#root\cimv2\Win32_OnBoardDevice + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_OnBoardDevice"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Description" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceType", "SerialNumber", "Enabled", "Description" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_OnBoardDevice + + #region System.Management.ManagementObject#root\cimv2\Win32_OperatingSystem + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_OperatingSystem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"FREE"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"FREE", + new List { "FreePhysicalMemory", "FreeSpaceInPagingFiles", "FreeVirtualMemory", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "SystemDirectory", "Organization", "BuildNumber", "RegisteredUser", "SerialNumber", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_OperatingSystem + + #region System.Management.ManagementObject#root\cimv2\Win32_PageFileUsage + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PageFileUsage"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "CurrentUsage" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Name", "PeakUsage" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PageFileUsage + + #region System.Management.ManagementObject#root\cimv2\Win32_PageFileSetting + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PageFileSetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "MaximumSize", "Name", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PageFileSetting + + #region System.Management.ManagementObject#root\cimv2\Win32_DiskPartition + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_DiskPartition"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Index", "Status", "StatusInfo", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "NumberOfBlocks", "BootPartition", "Name", "PrimaryPartition", "Size", "Index" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_DiskPartition + + #region System.Management.ManagementObject#root\cimv2\Win32_PortResource + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PortResource"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "NetConnectionStatus", "Status", "Name", "StartingAddress", "EndingAddress" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Name", "Alias" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PortResource + + #region System.Management.ManagementObject#root\cimv2\Win32_PortConnector + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PortConnector"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "ExternalReferenceDesignator" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Tag", "ConnectorType", "SerialNumber", "ExternalReferenceDesignator", "PortType" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PortConnector + + #region System.Management.ManagementObject#root\cimv2\Win32_Printer + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Printer"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Location", "Name", "PrinterState", "PrinterStatus", "ShareName", "SystemName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Printer + + #region System.Management.ManagementObject#root\cimv2\Win32_PrinterConfiguration + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PrinterConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "DriverVersion", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "PrintQuality", "DriverVersion", "Name", "PaperSize", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PrinterConfiguration + + #region System.Management.ManagementObject#root\cimv2\Win32_PrintJob + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PrintJob"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Document", "JobId", "JobStatus", "Name", "PagesPrinted", "Status", "JobIdCopy", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Document", "JobId", "JobStatus", "Owner", "Priority", "Size", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PrintJob + + #region System.Management.ManagementObject#root\cimv2\Win32_ProcessXXX + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_ProcessXXX"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 5)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "ProcessId" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"MEMORY"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"MEMORY", + new List { "Handle", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "Name", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "VirtualSize", "WorkingSetSize" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"IO"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"IO", + new List { "Name", "ProcessId", "ReadOperationCount", "ReadTransferCount", "WriteOperationCount", "WriteTransferCount" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"STATISTICS"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"STATISTICS", + new List { "HandleCount", "Name", "KernelModeTime", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "OtherOperationCount", "OtherTransferCount", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "ProcessId", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "ReadOperationCount", "ReadTransferCount", "ThreadCount", "UserModeTime", "VirtualSize", "WorkingSetSize", "WriteOperationCount", "WriteTransferCount" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ThreadCount", "HandleCount", "Name", "Priority", "ProcessId", "WorkingSetSize" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_ProcessXXX + + #region System.Management.ManagementObject#root\cimv2\Win32_Product + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Product"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Version", "InstallState" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Product + + #region System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"InstalledOn"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"InstalledOn", + GetScriptBlock(@"if ([environment]::osversion.version.build -ge 7000) + { + # WMI team fixed the formatting issue related to InstalledOn + # property in Windows7 (to return string)..so returning the WMI's + # version directly + [DateTime]::Parse($this.psBase.properties[""InstalledOn""].Value, [System.Globalization.DateTimeFormatInfo]::new()) + } + else + { + $orig = $this.psBase.properties[""InstalledOn""].Value + $date = [datetime]::FromFileTimeUTC($(""0x"" + $orig)) + if ($date -lt ""1/1/1980"") + { + if ($orig -match ""([0-9]{4})([01][0-9])([012][0-9])"") + { + new-object datetime @([int]$matches[1], [int]$matches[2], [int]$matches[3]) + } + } + else + { + $date + } + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "__PATH", "Status" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Description", "FixComments", "HotFixID", "InstallDate", "InstalledBy", "InstalledOn", "Name", "ServicePackInEffect", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering + + #region System.Management.ManagementObject#root\cimv2\Win32_QuotaSetting + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_QuotaSetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "State", "VolumePath", "Caption" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "DefaultLimit", "SettingID", "State", "VolumePath", "DefaultWarningLimit" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_QuotaSetting + + #region System.Management.ManagementObject#root\cimv2\Win32_OSRecoveryConfiguration + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_OSRecoveryConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DebugFilePath", "Name", "SettingID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_OSRecoveryConfiguration + + #region System.Management.ManagementObject#root\cimv2\Win32_Registry + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Registry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "CurrentSize", "MaximumSize", "ProposedSize" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "CurrentSize", "MaximumSize", "Name", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Registry + + #region System.Management.ManagementObject#root\cimv2\Win32_SCSIController + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_SCSIController"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DriverName", "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_SCSIController + + #region System.Management.ManagementObject#root\cimv2\Win32_PerfRawData_PerfNet_Server + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_PerfRawData_PerfNet_Server"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "LogonPerSec", "LogonTotal", "Name", "ServerSessions", "WorkItemShortages" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_PerfRawData_PerfNet_Server + + #region System.Management.ManagementObject#root\cimv2\Win32_Service + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Service"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status", "ExitCode" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "DesktopInteract", "ErrorControl", "Name", "PathName", "ServiceType", "StartMode" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ExitCode", "Name", "ProcessId", "StartMode", "State", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Service + + #region System.Management.ManagementObject#root\cimv2\Win32_Share + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_Share"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Type", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "Path", "Description" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_Share + + #region System.Management.ManagementObject#root\cimv2\Win32_SoftwareElement + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_SoftwareElement"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "SoftwareElementState", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Name", "Path", "SerialNumber", "SoftwareElementID", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_SoftwareElement + + #region System.Management.ManagementObject#root\cimv2\Win32_SoftwareFeature + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_SoftwareFeature"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "InstallState", "LastUse" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "IdentifyingNumber", "ProductName", "Vendor", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_SoftwareFeature + + #region System.Management.ManagementObject#root\cimv2\WIN32_SoundDevice + + typeName = @"System.Management.ManagementObject#root\cimv2\WIN32_SoundDevice"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "ConfigManagerUserConfig", "Name", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Name", "Status", "StatusInfo" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\WIN32_SoundDevice + + #region System.Management.ManagementObject#root\cimv2\Win32_StartupCommand + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_StartupCommand"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Command", "User", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_StartupCommand + + #region System.Management.ManagementObject#root\cimv2\Win32_SystemAccount + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_SystemAccount"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "SIDType", "Name", "Domain" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Domain", "Name", "SID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_SystemAccount + + #region System.Management.ManagementObject#root\cimv2\Win32_SystemDriver + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_SystemDriver"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "State", "ExitCode", "Started", "ServiceSpecificExitCode" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DisplayName", "Name", "State", "Status", "Started" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_SystemDriver + + #region System.Management.ManagementObject#root\cimv2\Win32_SystemEnclosure + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_SystemEnclosure"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Tag", "Status", "Name", "SecurityStatus" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Model", "LockPresent", "SerialNumber", "SMBIOSAssetTag", "SecurityStatus" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_SystemEnclosure + + #region System.Management.ManagementObject#root\cimv2\Win32_SystemSlot + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_SystemSlot"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "SlotDesignation" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "SlotDesignation", "Tag", "SupportsHotPlug", "Status", "Shared", "PMESignal", "MaxDataWidth" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_SystemSlot + + #region System.Management.ManagementObject#root\cimv2\Win32_TapeDrive + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_TapeDrive"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Availability", "DeviceID", "NeedsCleaning", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "Id", "Manufacturer", "Name", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_TapeDrive + + #region System.Management.ManagementObject#root\cimv2\Win32_TemperatureProbe + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_TemperatureProbe"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "CurrentReading", "DeviceID", "Name", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "CurrentReading", "Name", "Description", "MinReadable", "MaxReadable", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_TemperatureProbe + + #region System.Management.ManagementObject#root\cimv2\Win32_TimeZone + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_TimeZone"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Bias", "SettingID", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_TimeZone + + #region System.Management.ManagementObject#root\cimv2\Win32_UninterruptiblePowerSupply + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_UninterruptiblePowerSupply"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "DeviceID", "EstimatedChargeRemaining", "EstimatedRunTime", "Name", "StatusInfo", "TimeOnBackup" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "EstimatedRunTime", "Name", "TimeOnBackup", "UPSPort", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_UninterruptiblePowerSupply + + #region System.Management.ManagementObject#root\cimv2\Win32_UserAccount + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_UserAccount"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Caption", "PasswordExpires" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AccountType", "Caption", "Domain", "SID", "FullName", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_UserAccount + + #region System.Management.ManagementObject#root\cimv2\Win32_VoltageProbe + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_VoltageProbe"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "DeviceID", "Name", "NominalReading", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Status", "Description", "CurrentReading", "MaxReadable", "MinReadable" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_VoltageProbe + + #region System.Management.ManagementObject#root\cimv2\Win32_VolumeQuotaSetting + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_VolumeQuotaSetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Element", "Setting" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_VolumeQuotaSetting + + #region System.Management.ManagementObject#root\cimv2\Win32_WMISetting + + typeName = @"System.Management.ManagementObject#root\cimv2\Win32_WMISetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "BuildVersion", "Caption", "DatabaseDirectory", "EnableEvents", "LoggingLevel", "SettingID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject#root\cimv2\Win32_WMISetting + + #region System.Management.ManagementObject + + typeName = @"System.Management.ManagementObject"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"ConvertToDateTime"); + AddMember( + errors, + typeName, + new PSScriptMethod( + @"ConvertToDateTime", + GetScriptBlock(@"[System.Management.ManagementDateTimeConverter]::ToDateTime($args[0])"), + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"ConvertFromDateTime"); + AddMember( + errors, + typeName, + new PSScriptMethod( + @"ConvertFromDateTime", + GetScriptBlock(@"[System.Management.ManagementDateTimeConverter]::ToDmtfDateTime($args[0])"), + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementObject + + #region System.Security.AccessControl.ObjectSecurity + + typeName = @"System.Security.AccessControl.ObjectSecurity"; + typeMembers = _extendedMembers.GetOrAdd(typeName, key => new PSMemberInfoInternalCollection(capacity: 7)); + Type securityDescriptorCommandsBaseType = TypeResolver.ResolveType("Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase", exception: out _); + + // Process regular members. + newMembers.Add(@"Path"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Path", + GetMethodInfo(securityDescriptorCommandsBaseType, @"GetPath"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Owner"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Owner", + GetMethodInfo(securityDescriptorCommandsBaseType, @"GetOwner"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Group"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Group", + GetMethodInfo(securityDescriptorCommandsBaseType, @"GetGroup"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Access"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Access", + GetMethodInfo(securityDescriptorCommandsBaseType, @"GetAccess"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Sddl"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Sddl", + GetMethodInfo(securityDescriptorCommandsBaseType, @"GetSddl"), + setterCodeReference: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"AccessToString"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"AccessToString", + GetScriptBlock(@"$toString = """"; + $first = $true; + if ( ! $this.Access ) { return """" } + + foreach($ace in $this.Access) + { + if($first) + { + $first = $false; + } + else + { + $tostring += ""`n""; + } + + $toString += $ace.IdentityReference.ToString(); + $toString += "" ""; + $toString += $ace.AccessControlType.ToString(); + $toString += "" ""; + if($ace -is [System.Security.AccessControl.FileSystemAccessRule]) + { + $toString += $ace.FileSystemRights.ToString(); + } + elseif($ace -is [System.Security.AccessControl.RegistryAccessRule]) + { + $toString += $ace.RegistryRights.ToString(); + } + } + + return $toString;"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"AuditToString"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"AuditToString", + GetScriptBlock(@"$toString = """"; + $first = $true; + if ( ! (& { Set-StrictMode -Version 1; $this.audit }) ) { return """" } + + foreach($ace in (& { Set-StrictMode -Version 1; $this.audit })) + { + if($first) + { + $first = $false; + } + else + { + $tostring += ""`n""; + } + + $toString += $ace.IdentityReference.ToString(); + $toString += "" ""; + $toString += $ace.AuditFlags.ToString(); + $toString += "" ""; + if($ace -is [System.Security.AccessControl.FileSystemAuditRule]) + { + $toString += $ace.FileSystemRights.ToString(); + } + elseif($ace -is [System.Security.AccessControl.RegistryAuditRule]) + { + $toString += $ace.RegistryRights.ToString(); + } + } + + return $toString;"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Security.AccessControl.ObjectSecurity + + #region Microsoft.PowerShell.Commands.HistoryInfo + + typeName = @"Microsoft.PowerShell.Commands.HistoryInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultKeyPropertySet", + new List { "Id" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.PowerShell.Commands.HistoryInfo + + #region System.Management.ManagementClass + + typeName = @"System.Management.ManagementClass"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"Name"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Name", @"__Class", conversionType: null), + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementClass + + #region System.Management.Automation.Runspaces.PSSession + + typeName = @"System.Management.Automation.Runspaces.PSSession"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 5)); + + // Process regular members. + newMembers.Add(@"State"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"State", + GetScriptBlock(@"$this.Runspace.RunspaceStateInfo.State"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"IdleTimeout"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"IdleTimeout", + GetScriptBlock(@"$this.Runspace.ConnectionInfo.IdleTimeout"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"OutputBufferingMode"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"OutputBufferingMode", + GetScriptBlock(@"$this.Runspace.ConnectionInfo.OutputBufferingMode"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"DisconnectedOn"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"DisconnectedOn", + GetScriptBlock(@"$this.Runspace.DisconnectedOn"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"ExpiresOn"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"ExpiresOn", + GetScriptBlock(@"$this.Runspace.ExpiresOn"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.Runspaces.PSSession + + #region System.Guid + + typeName = @"System.Guid"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"Guid"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Guid", + GetScriptBlock(@"$this.ToString()"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Guid + + #region System.Management.Automation.Signature + + typeName = @"System.Management.Automation.Signature"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.Signature + + #region System.Management.Automation.Job + + typeName = @"System.Management.Automation.Job"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"State"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"State", + GetScriptBlock(@"$this.JobStateInfo.State.ToString()"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 3); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "HasMoreData", "StatusMessage", "Location", "Command", "JobStateInfo", "InstanceId", "Id", "Name", "State", "ChildJobs", "PSJobTypeName", "PSBeginTime", "PSEndTime" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.Job + + #region System.Management.Automation.JobStateInfo + + typeName = @"System.Management.Automation.JobStateInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.JobStateInfo + + #region Deserialized.System.Management.Automation.JobStateInfo + + typeName = @"Deserialized.System.Management.Automation.JobStateInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.JobStateInfo + + #region Microsoft.PowerShell.DeserializingTypeConverter + + typeName = @"Microsoft.PowerShell.DeserializingTypeConverter"; + + // Process type converter. + ProcessTypeConverter( + errors, + typeName, + typeof(Microsoft.PowerShell.DeserializingTypeConverter), + _typeConverters, + isOverride: false); + + #endregion Microsoft.PowerShell.DeserializingTypeConverter + + #region System.Net.Mail.MailAddress + + typeName = @"System.Net.Mail.MailAddress"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Net.Mail.MailAddress + + #region Deserialized.System.Net.Mail.MailAddress + + typeName = @"Deserialized.System.Net.Mail.MailAddress"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Net.Mail.MailAddress + + #region System.Globalization.CultureInfo + + typeName = @"System.Globalization.CultureInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 3); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "LCID", "Name", "DisplayName", "IetfLanguageTag", "ThreeLetterISOLanguageName", "ThreeLetterWindowsLanguageName", "TwoLetterISOLanguageName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Globalization.CultureInfo + + #region Deserialized.System.Globalization.CultureInfo + + typeName = @"Deserialized.System.Globalization.CultureInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Globalization.CultureInfo + + #region System.Management.Automation.PSCredential + + typeName = @"System.Management.Automation.PSCredential"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSCredential + + #region Deserialized.System.Management.Automation.PSCredential + + typeName = @"Deserialized.System.Management.Automation.PSCredential"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.PSCredential + + #region System.Management.Automation.PSPrimitiveDictionary + + typeName = @"System.Management.Automation.PSPrimitiveDictionary"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSPrimitiveDictionary + + #region Deserialized.System.Management.Automation.PSPrimitiveDictionary + + typeName = @"Deserialized.System.Management.Automation.PSPrimitiveDictionary"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.PSPrimitiveDictionary + + #region System.Management.Automation.SwitchParameter + + typeName = @"System.Management.Automation.SwitchParameter"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.SwitchParameter + + #region Deserialized.System.Management.Automation.SwitchParameter + + typeName = @"Deserialized.System.Management.Automation.SwitchParameter"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.SwitchParameter + + #region System.Management.Automation.PSListModifier + + typeName = @"System.Management.Automation.PSListModifier"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSListModifier + + #region Deserialized.System.Management.Automation.PSListModifier + + typeName = @"Deserialized.System.Management.Automation.PSListModifier"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.PSListModifier + + #region System.Security.Cryptography.X509Certificates.X509Certificate2 + + typeName = @"System.Security.Cryptography.X509Certificates.X509Certificate2"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 3); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "RawData" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Security.Cryptography.X509Certificates.X509Certificate2 + + #region Deserialized.System.Security.Cryptography.X509Certificates.X509Certificate2 + + typeName = @"Deserialized.System.Security.Cryptography.X509Certificates.X509Certificate2"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Security.Cryptography.X509Certificates.X509Certificate2 + + #region System.Security.Cryptography.X509Certificates.X500DistinguishedName + + typeName = @"System.Security.Cryptography.X509Certificates.X500DistinguishedName"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 3); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "RawData" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Security.Cryptography.X509Certificates.X500DistinguishedName + + #region Deserialized.System.Security.Cryptography.X509Certificates.X500DistinguishedName + + typeName = @"Deserialized.System.Security.Cryptography.X509Certificates.X500DistinguishedName"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Security.Cryptography.X509Certificates.X500DistinguishedName + + #region System.Security.AccessControl.RegistrySecurity + + typeName = @"System.Security.AccessControl.RegistrySecurity"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Security.AccessControl.RegistrySecurity + + #region Deserialized.System.Security.AccessControl.RegistrySecurity + + typeName = @"Deserialized.System.Security.AccessControl.RegistrySecurity"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Security.AccessControl.RegistrySecurity + + #region System.Security.AccessControl.FileSystemSecurity + + typeName = @"System.Security.AccessControl.FileSystemSecurity"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Security.AccessControl.FileSystemSecurity + + #region Deserialized.System.Security.AccessControl.FileSystemSecurity + + typeName = @"Deserialized.System.Security.AccessControl.FileSystemSecurity"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Security.AccessControl.FileSystemSecurity + + #region HelpInfo + + typeName = @"HelpInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion HelpInfo + + #region System.Management.Automation.PSTypeName + + typeName = @"System.Management.Automation.PSTypeName"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 2); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"String"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSAliasProperty(@"StringSerializationSource", @"Name", conversionType: null), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSTypeName + + #region System.Management.Automation.ParameterMetadata + + typeName = @"System.Management.Automation.ParameterMetadata"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 2); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "Name", "ParameterType", "Aliases", "IsDynamic", "SwitchParameter" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.ParameterMetadata + + #region System.Management.Automation.CommandInfo + + typeName = @"System.Management.Automation.CommandInfo"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"Namespace"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Namespace", @"ModuleName", conversionType: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + newMembers.Add(@"HelpUri"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"HelpUri", + GetScriptBlock(@"$oldProgressPreference = $ProgressPreference + $ProgressPreference = 'SilentlyContinue' + try + { + [Microsoft.PowerShell.Commands.GetHelpCodeMethods]::GetHelpUri($this) + } + catch {} + finally + { + $ProgressPreference = $oldProgressPreference + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.CommandInfo + + #region System.Management.Automation.ParameterSetMetadata + + typeName = @"System.Management.Automation.ParameterSetMetadata"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"Flags"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"Flags", + GetMethodInfo(typeof(Microsoft.PowerShell.DeserializingTypeConverter), @"GetParameterSetMetadataFlags"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 2); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "Position", "Flags", "HelpMessage" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.ParameterSetMetadata + + #region Deserialized.System.Management.Automation.ParameterSetMetadata + + typeName = @"Deserialized.System.Management.Automation.ParameterSetMetadata"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.ParameterSetMetadata + + #region Deserialized.System.Management.Automation.ExtendedTypeDefinition + + typeName = @"Deserialized.System.Management.Automation.ExtendedTypeDefinition"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.ExtendedTypeDefinition + + #region System.Management.Automation.ExtendedTypeDefinition + + typeName = @"System.Management.Automation.ExtendedTypeDefinition"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 4); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "TypeNames", "FormatViewDefinition" }), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "TypeName", "TypeNames", "FormatViewDefinition" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.ExtendedTypeDefinition + + #region Deserialized.System.Management.Automation.FormatViewDefinition + + typeName = @"Deserialized.System.Management.Automation.FormatViewDefinition"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.FormatViewDefinition + + #region System.Management.Automation.FormatViewDefinition + + typeName = @"System.Management.Automation.FormatViewDefinition"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"InstanceId"); + AddMember( + errors, + typeName, + new PSCodeProperty( + @"InstanceId", + GetMethodInfo(typeof(Microsoft.PowerShell.DeserializingTypeConverter), @"GetFormatViewDefinitionInstanceId"), + setterCodeReference: null) { IsHidden = true }, + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.FormatViewDefinition + + #region Deserialized.System.Management.Automation.PSControl + + typeName = @"Deserialized.System.Management.Automation.PSControl"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.PSControl + + #region System.Management.Automation.PSControl + + typeName = @"System.Management.Automation.PSControl"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSControl + + #region Deserialized.System.Management.Automation.PSControlGroupBy + + typeName = @"Deserialized.System.Management.Automation.PSControlGroupBy"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.PSControlGroupBy + + #region System.Management.Automation.PSControlGroupBy + + typeName = @"System.Management.Automation.PSControlGroupBy"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.PSControlGroupBy + + #region Deserialized.System.Management.Automation.EntrySelectedBy + + typeName = @"Deserialized.System.Management.Automation.EntrySelectedBy"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.EntrySelectedBy + + #region System.Management.Automation.EntrySelectedBy + + typeName = @"System.Management.Automation.EntrySelectedBy"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.EntrySelectedBy + + #region Deserialized.System.Management.Automation.DisplayEntry + + typeName = @"Deserialized.System.Management.Automation.DisplayEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.DisplayEntry + + #region System.Management.Automation.DisplayEntry + + typeName = @"System.Management.Automation.DisplayEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.DisplayEntry + + #region Deserialized.System.Management.Automation.TableControlColumnHeader + + typeName = @"Deserialized.System.Management.Automation.TableControlColumnHeader"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.TableControlColumnHeader + + #region System.Management.Automation.TableControlColumnHeader + + typeName = @"System.Management.Automation.TableControlColumnHeader"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.TableControlColumnHeader + + #region Deserialized.System.Management.Automation.TableControlRow + + typeName = @"Deserialized.System.Management.Automation.TableControlRow"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.TableControlRow + + #region System.Management.Automation.TableControlRow + + typeName = @"System.Management.Automation.TableControlRow"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.TableControlRow + + #region Deserialized.System.Management.Automation.TableControlColumn + + typeName = @"Deserialized.System.Management.Automation.TableControlColumn"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.TableControlColumn + + #region System.Management.Automation.TableControlColumn + + typeName = @"System.Management.Automation.TableControlColumn"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.TableControlColumn + + #region Deserialized.System.Management.Automation.ListControlEntry + + typeName = @"Deserialized.System.Management.Automation.ListControlEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.ListControlEntry + + #region System.Management.Automation.ListControlEntry + + typeName = @"System.Management.Automation.ListControlEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 4); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Items", "EntrySelectedBy" }), + memberSetMembers, + isOverride: false); + + AddMember( + errors, + typeName, + new PSPropertySet( + @"PropertySerializationSet", + new List { "Items", "SelectedBy", "EntrySelectedBy" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.ListControlEntry + + #region Deserialized.System.Management.Automation.ListControlEntryItem + + typeName = @"Deserialized.System.Management.Automation.ListControlEntryItem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.ListControlEntryItem + + #region System.Management.Automation.ListControlEntryItem + + typeName = @"System.Management.Automation.ListControlEntryItem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.ListControlEntryItem + + #region Deserialized.System.Management.Automation.WideControlEntryItem + + typeName = @"Deserialized.System.Management.Automation.WideControlEntryItem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.WideControlEntryItem + + #region System.Management.Automation.WideControlEntryItem + + typeName = @"System.Management.Automation.WideControlEntryItem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.WideControlEntryItem + + #region Deserialized.System.Management.Automation.CustomControlEntry + + typeName = @"Deserialized.System.Management.Automation.CustomControlEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.CustomControlEntry + + #region System.Management.Automation.CustomControlEntry + + typeName = @"System.Management.Automation.CustomControlEntry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.CustomControlEntry + + #region Deserialized.System.Management.Automation.CustomItemBase + + typeName = @"Deserialized.System.Management.Automation.CustomItemBase"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.CustomItemBase + + #region System.Management.Automation.CustomItemBase + + typeName = @"System.Management.Automation.CustomItemBase"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.CustomItemBase + + #region System.Web.Services.Protocols.SoapException + + typeName = @"System.Web.Services.Protocols.SoapException"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"PSMessageDetails"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"PSMessageDetails", + GetScriptBlock(@"$this.Detail.""#text"""), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Web.Services.Protocols.SoapException + + #region System.Management.Automation.ErrorRecord + + typeName = @"System.Management.Automation.ErrorRecord"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"PSMessageDetails"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"PSMessageDetails", + GetScriptBlock(@"& { Set-StrictMode -Version 1; $this.Exception.InnerException.PSMessageDetails }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.ErrorRecord + + #region Deserialized.System.Enum + + typeName = @"Deserialized.System.Enum"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"Value"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Value", + GetScriptBlock(@"$this.ToString()"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Enum + + #region Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData + + typeName = @"Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData + + #region Deserialized.Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData + + typeName = @"Deserialized.Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData + + #region System.Management.ManagementEventArgs + + typeName = @"System.Management.ManagementEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.ManagementEventArgs + + #region Deserialized.System.Management.ManagementEventArgs + + typeName = @"Deserialized.System.Management.ManagementEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.ManagementEventArgs + + #region System.Management.Automation.CallStackFrame + + typeName = @"System.Management.Automation.CallStackFrame"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"Command"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Command", + GetScriptBlock(@"if ($null -eq $this.InvocationInfo) { return $this.FunctionName } + + $commandInfo = $this.InvocationInfo.MyCommand + if ($null -eq $commandInfo) { return $this.InvocationInfo.InvocationName } + + if ($commandInfo.Name -ne """") { return $commandInfo.Name } + + return $this.FunctionName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Location"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Location", + GetScriptBlock(@"$this.GetScriptLocation()"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"Arguments"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Arguments", + GetScriptBlock(@"$argumentsBuilder = new-object System.Text.StringBuilder + + $null = $( + $argumentsBuilder.Append(""{"") + foreach ($entry in $this.InvocationInfo.BoundParameters.GetEnumerator()) + { + if ($argumentsBuilder.Length -gt 1) + { + $argumentsBuilder.Append(string.Empty, string.Empty); + } + + $argumentsBuilder.Append($entry.Key).Append(""="") + + if ($entry.Value) + { + $argumentsBuilder.Append([string]$entry.Value) + } + } + + foreach ($arg in $this.InvocationInfo.UnboundArguments.GetEnumerator()) + { + if ($argumentsBuilder.Length -gt 1) + { + $argumentsBuilder.Append(string.Empty, string.Empty) + } + + if ($arg) + { + $argumentsBuilder.Append([string]$arg) + } + else + { + $argumentsBuilder.Append('$null') + } + } + + $argumentsBuilder.Append('}'); + ) + + return $argumentsBuilder.ToString();"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.CallStackFrame + + #region Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration + + typeName = @"Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"Permission"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Permission", + GetScriptBlock(@"trap { continue; } + + $private:sd = $null + $private:sd = new-object System.Security.AccessControl.CommonSecurityDescriptor $false,$false,$this.SecurityDescriptorSddl + if ($private:sd) + { + # reset trap + trap { } + + $private:dacls = """"; + $private:first = $true + $private:sd.DiscretionaryAcl | ForEach-Object { + trap { } + + if ($private:first) + { + $private:first = $false; + } + else + { + $private:dacls += "", "" + } + + $private:dacls += $_.SecurityIdentifier.Translate([System.Security.Principal.NTAccount]).ToString() + "" "" + $_.AceType + } # end of foreach + + return $private:dacls + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PingStatus + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PingStatus"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"IPV4Address"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"IPV4Address", + GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) + $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } | Select-Object -first 1"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + newMembers.Add(@"IPV6Address"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"IPV6Address", + GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) + $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetworkV6 } | Select-Object -first 1"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PingStatus + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Process + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Process"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 6)); + + // Process regular members. + newMembers.Add(@"ProcessName"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"ProcessName", @"Name", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Handles"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"Handles", @"Handlecount", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"VM"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"VM", @"VirtualSize", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"WS"); + AddMember( + errors, + typeName, + new PSAliasProperty(@"WS", @"WorkingSetSize", conversionType: null), + typeMembers, + isOverride: false); + + newMembers.Add(@"Path"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"Path", + GetScriptBlock(@"$this.ExecutablePath"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ProcessId", "Name", "HandleCount", "WorkingSetSize", "VirtualSize" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Process + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Msft_CliAlias + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Msft_CliAlias"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "FriendlyName", "PWhere", "Target" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Msft_CliAlias + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BaseBoard + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BaseBoard"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "PoweredOn" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Model", "Name", "SerialNumber", "SKU", "Product" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BaseBoard + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BIOS + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BIOS"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "Caption", "SMBIOSPresent" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "SMBIOSBIOSVersion", "Manufacturer", "Name", "SerialNumber", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BIOS + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BootConfiguration + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BootConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "SettingID", "ConfigurationPath" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "BootDirectory", "Name", "SettingID", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BootConfiguration + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_CDROMDrive + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_CDROMDrive"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "Drive", "ErrorCleared", "MediaLoaded", "NeedsCleaning", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Drive", "Manufacturer", "VolumeName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_CDROMDrive + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystem + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "AdminPasswordStatus", "BootupState", "ChassisBootupState", "KeyboardPasswordStatus", "PowerOnPasswordStatus", "PowerSupplyState", "PowerState", "FrontPanelResetStatus", "ThermalState", "Status", "Name" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"POWER"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"POWER", + new List { "Name", "PowerManagementCapabilities", "PowerManagementSupported", "PowerOnPasswordStatus", "PowerState", "PowerSupplyState" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Domain", "Manufacturer", "Model", "Name", "PrimaryOwnerName", "TotalPhysicalMemory" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystem + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_PROCESSOR + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_PROCESSOR"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "CpuStatus", "CurrentVoltage", "DeviceID", "ErrorCleared", "ErrorDescription", "LastErrorCode", "LoadPercentage", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "AddressWidth", "DataWidth", "DeviceID", "ExtClock", "L2CacheSize", "L2CacheSpeed", "MaxClockSpeed", "PowerManagementSupported", "ProcessorType", "Revision", "SocketDesignation", "Version", "VoltageCaps" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "DeviceID", "Manufacturer", "MaxClockSpeed", "Name", "SocketDesignation" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_PROCESSOR + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystemProduct + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystemProduct"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Version" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystemProduct + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/CIM_DataFile + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/CIM_DataFile"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Compressed", "Encrypted", "Size", "Hidden", "Name", "Readable", "System", "Version", "Writeable" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/CIM_DataFile + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DCOMApplication + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DCOMApplication"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AppID", "InstallDate", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DCOMApplication + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOP + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOP"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "ScreenSaverActive" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "ScreenSaverActive", "ScreenSaverSecure", "ScreenSaverTimeout", "SettingID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOP + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOPMONITOR + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOPMONITOR"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "DeviceID", "Name", "PixelsPerXLogicalInch", "PixelsPerYLogicalInch", "ScreenHeight", "ScreenWidth" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "DeviceID", "IsLocked", "LastErrorCode", "Name", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "DisplayType", "MonitorManufacturer", "Name", "ScreenHeight", "ScreenWidth" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOPMONITOR + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DeviceMemoryAddress + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DeviceMemoryAddress"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "MemoryType" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "MemoryType", "Name", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DeviceMemoryAddress + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskDrive + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskDrive"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "ConfigManagerErrorCode", "LastErrorCode", "NeedsCleaning", "Status", "DeviceID", "StatusInfo", "Partitions" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "BytesPerSector", "ConfigManagerUserConfig", "DefaultBlockSize", "DeviceID", "Index", "InstallDate", "InterfaceType", "MaxBlockSize", "MaxMediaSize", "MinBlockSize", "NumberOfMediaSupported", "Partitions", "SectorsPerTrack", "Size", "TotalCylinders", "TotalHeads", "TotalSectors", "TotalTracks", "TracksPerCylinder" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Partitions", "DeviceID", "Model", "Size", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskDrive + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskQuota + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskQuota"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DiskSpaceUsed", "Limit", "QuotaVolume", "User" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskQuota + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DMAChannel + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DMAChannel"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AddressSize", "DMAChannel", "MaxTransferSize", "Name", "Port" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DMAChannel + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Environment + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Environment"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "SystemVariable" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "VariableValue", "Name", "UserName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Environment + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Directory + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Directory"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Compressed", "Encrypted", "Name", "Readable", "Writeable" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Hidden", "Archive", "EightDotThreeFileName", "FileSize", "Name", "Compressed", "Encrypted", "Readable" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Directory + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Group + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Group"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Domain", "Name", "SID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Group + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IDEController + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IDEController"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IDEController + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IRQResource + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IRQResource"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Caption", "Availability" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Hardware", "IRQNumber", "Name", "Shareable", "TriggerLevel", "TriggerType" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IRQResource + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ScheduledJob + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ScheduledJob"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "JobId", "JobStatus", "ElapsedTime", "StartTime", "Owner" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "JobId", "Name", "Owner", "Priority", "Command" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ScheduledJob + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LoadOrderGroup + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LoadOrderGroup"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "GroupOrder", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LoadOrderGroup + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalDisk + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalDisk"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Availability", "DeviceID", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "DriveType", "ProviderName", "FreeSpace", "Size", "VolumeName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalDisk + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogonSession + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogonSession"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AuthenticationPackage", "LogonId", "LogonType", "Name", "StartTime", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogonSession + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_CACHEMEMORY + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_CACHEMEMORY"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 4)); + + // Process regular members. + newMembers.Add(@"ERROR"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"ERROR", + new List { "DeviceID", "ErrorCorrectType" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "DeviceID", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status", "WritePolicy" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_CACHEMEMORY + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalMemoryConfiguration + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalMemoryConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "AvailableVirtualMemory", "Name", "TotalVirtualMemory" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "TotalVirtualMemory", "TotalPhysicalMemory", "TotalPageFileSpace" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalMemoryConfiguration + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PhysicalMemoryArray + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PhysicalMemoryArray"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "Replaceable", "Location" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Model", "Name", "MaxCapacity", "MemoryDevices" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PhysicalMemoryArray + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_NetworkClient + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_NetworkClient"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "InstallDate", "Manufacturer", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_NetworkClient + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkLoginProfile + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkLoginProfile"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Privileges", "Profile", "UserId", "UserType", "Workstations" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkLoginProfile + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkProtocol + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkProtocol"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"FULLXXX"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"FULLXXX", + new List { "ConnectionlessService", "Description", "GuaranteesDelivery", "GuaranteesSequencing", "InstallDate", "MaximumAddressSize", "MaximumMessageSize", "MessageOriented", "MinimumAddressSize", "Name", "PseudoStreamOriented", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "GuaranteesDelivery", "GuaranteesSequencing", "ConnectionlessService", "Status", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkProtocol + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkConnection + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkConnection"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "ConnectionState", "Persistent", "LocalName", "RemoteName" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "LocalName", "RemoteName", "ConnectionState", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkConnection + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapter + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapter"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Availability", "Name", "Status", "StatusInfo", "DeviceID" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ServiceName", "MACAddress", "AdapterType", "DeviceID", "Name", "NetworkAddresses", "Speed" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapter + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 6)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "DHCPLeaseExpires", "Index", "Description" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"DHCP"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DHCP", + new List { "Description", "DHCPEnabled", "DHCPLeaseExpires", "DHCPLeaseObtained", "DHCPServer", "Index" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"DNS"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DNS", + new List { "Description", "DNSDomain", "DNSDomainSuffixSearchOrder", "DNSEnabledForWINSResolution", "DNSHostName", "DNSServerSearchOrder", "DomainDNSRegistrationEnabled", "FullDNSRegistrationEnabled", "Index" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"IP"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"IP", + new List { "Description", "Index", "IPAddress", "IPConnectionMetric", "IPEnabled", "IPFilterSecurityEnabled" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"WINS"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"WINS", + new List { "Description", "Index", "WINSEnableLMHostsLookup", "WINSHostLookupFile", "WINSPrimaryServer", "WINSScopeID", "WINSSecondaryServer" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DHCPEnabled", "IPAddress", "DefaultIPGateway", "DNSDomain", "ServiceName", "Description", "Index" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTDomain + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTDomain"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "DomainName" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"GUID"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"GUID", + new List { "DomainName", "DomainGuid" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ClientSiteName", "DcSiteName", "Description", "DnsForestName", "DomainControllerAddress", "DomainControllerName", "DomainName", "Roles", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTDomain + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTLogEvent + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTLogEvent"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Category", "CategoryString", "EventCode", "EventIdentifier", "TypeEvent", "InsertionStrings", "LogFile", "Message", "RecordNumber", "SourceName", "TimeGenerated", "TimeWritten", "Type", "UserName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTLogEvent + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTEventlogFile + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTEventlogFile"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "LogfileName", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "FileSize", "LogfileName", "Name", "NumberOfRecords" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTEventlogFile + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OnBoardDevice + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OnBoardDevice"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Description" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceType", "SerialNumber", "Enabled", "Description" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OnBoardDevice + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"FREE"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"FREE", + new List { "FreePhysicalMemory", "FreeSpaceInPagingFiles", "FreeVirtualMemory", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "SystemDirectory", "Organization", "BuildNumber", "RegisteredUser", "SerialNumber", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileUsage + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileUsage"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "CurrentUsage" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Name", "PeakUsage" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileUsage + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileSetting + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileSetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "MaximumSize", "Name", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileSetting + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskPartition + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskPartition"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Index", "Status", "StatusInfo", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "NumberOfBlocks", "BootPartition", "Name", "PrimaryPartition", "Size", "Index" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskPartition + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortResource + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortResource"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "NetConnectionStatus", "Status", "Name", "StartingAddress", "EndingAddress" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Name", "Alias" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortResource + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortConnector + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortConnector"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "ExternalReferenceDesignator" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Tag", "ConnectorType", "SerialNumber", "ExternalReferenceDesignator", "PortType" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortConnector + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Printer + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Printer"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Location", "Name", "PrinterState", "PrinterStatus", "ShareName", "SystemName" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Printer + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrinterConfiguration + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrinterConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "DriverVersion", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "PrintQuality", "DriverVersion", "Name", "PaperSize", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrinterConfiguration + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrintJob + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrintJob"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Document", "JobId", "JobStatus", "Name", "PagesPrinted", "Status", "JobIdCopy", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Document", "JobId", "JobStatus", "Owner", "Priority", "Size", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrintJob + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ProcessXXX + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ProcessXXX"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 5)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "ProcessId" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"MEMORY"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"MEMORY", + new List { "Handle", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "Name", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "VirtualSize", "WorkingSetSize" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"IO"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"IO", + new List { "Name", "ProcessId", "ReadOperationCount", "ReadTransferCount", "WriteOperationCount", "WriteTransferCount" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"STATISTICS"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"STATISTICS", + new List { "HandleCount", "Name", "KernelModeTime", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "OtherOperationCount", "OtherTransferCount", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "ProcessId", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "ReadOperationCount", "ReadTransferCount", "ThreadCount", "UserModeTime", "VirtualSize", "WorkingSetSize", "WriteOperationCount", "WriteTransferCount" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ThreadCount", "HandleCount", "Name", "Priority", "ProcessId", "WorkingSetSize" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ProcessXXX + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Product + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Product"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Version", "InstallState" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Product + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuickFixEngineering + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuickFixEngineering"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"InstalledOn"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"InstalledOn", + GetScriptBlock(@"if ([environment]::osversion.version.build -ge 7000) + { + # WMI team fixed the formatting issue related to InstalledOn + # property in Windows7 (to return string)..so returning the WMI's + # version directly + [DateTime]::Parse($this.psBase.CimInstanceProperties[""InstalledOn""].Value, [System.Globalization.DateTimeFormatInfo]::new()) + } + else + { + $orig = $this.psBase.CimInstanceProperties[""InstalledOn""].Value + $date = [datetime]::FromFileTimeUTC($(""0x"" + $orig)) + if ($date -lt ""1/1/1980"") + { + if ($orig -match ""([0-9]{4})([01][0-9])([012][0-9])"") + { + new-object datetime @([int]$matches[1], [int]$matches[2], [int]$matches[3]) + } + } + else + { + $date + } + }"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Description", "FixComments", "HotFixID", "InstallDate", "InstalledBy", "InstalledOn", "Name", "ServicePackInEffect", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuickFixEngineering + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuotaSetting + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuotaSetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "State", "VolumePath", "Caption" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "DefaultLimit", "SettingID", "State", "VolumePath", "DefaultWarningLimit" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuotaSetting + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OSRecoveryConfiguration + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OSRecoveryConfiguration"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DebugFilePath", "Name", "SettingID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OSRecoveryConfiguration + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Registry + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Registry"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "CurrentSize", "MaximumSize", "ProposedSize" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "CurrentSize", "MaximumSize", "Name", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Registry + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SCSIController + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SCSIController"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DriverName", "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SCSIController + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PerfRawData_PerfNet_Server + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PerfRawData_PerfNet_Server"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "LogonPerSec", "LogonTotal", "Name", "ServerSessions", "WorkItemShortages" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PerfRawData_PerfNet_Server + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Service + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Service"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Name", "Status", "ExitCode" }), + typeMembers, + isOverride: false); + + newMembers.Add(@"PSConfiguration"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSConfiguration", + new List { "DesktopInteract", "ErrorControl", "Name", "PathName", "ServiceType", "StartMode" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "ExitCode", "Name", "ProcessId", "StartMode", "State", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Service + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Share + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Share"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Type", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Name", "Path", "Description" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Share + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareElement + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareElement"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "SoftwareElementState", "Name" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Name", "Path", "SerialNumber", "SoftwareElementID", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareElement + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareFeature + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareFeature"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "InstallState", "LastUse" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "IdentifyingNumber", "ProductName", "Vendor", "Version" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareFeature + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_SoundDevice + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_SoundDevice"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "ConfigManagerUserConfig", "Name", "Status", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Name", "Status", "StatusInfo" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_SoundDevice + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_StartupCommand + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_StartupCommand"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Command", "User", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_StartupCommand + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemAccount + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemAccount"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "SIDType", "Name", "Domain" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Caption", "Domain", "Name", "SID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemAccount + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemDriver + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemDriver"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Name", "State", "ExitCode", "Started", "ServiceSpecificExitCode" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DisplayName", "Name", "State", "Status", "Started" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemDriver + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemEnclosure + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemEnclosure"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Tag", "Status", "Name", "SecurityStatus" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Manufacturer", "Model", "LockPresent", "SerialNumber", "SMBIOSAssetTag", "SecurityStatus" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemEnclosure + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemSlot + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemSlot"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "SlotDesignation" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "SlotDesignation", "Tag", "SupportsHotPlug", "Status", "Shared", "PMESignal", "MaxDataWidth" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemSlot + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TapeDrive + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TapeDrive"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Availability", "DeviceID", "NeedsCleaning", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "Id", "Manufacturer", "Name", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TapeDrive + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TemperatureProbe + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TemperatureProbe"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "CurrentReading", "DeviceID", "Name", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "CurrentReading", "Name", "Description", "MinReadable", "MaxReadable", "Status" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TemperatureProbe + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TimeZone + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TimeZone"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Bias", "SettingID", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TimeZone + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UninterruptiblePowerSupply + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UninterruptiblePowerSupply"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "DeviceID", "EstimatedChargeRemaining", "EstimatedRunTime", "Name", "StatusInfo", "TimeOnBackup" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "DeviceID", "EstimatedRunTime", "Name", "TimeOnBackup", "UPSPort", "Caption" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UninterruptiblePowerSupply + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UserAccount + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UserAccount"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "Caption", "PasswordExpires" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "AccountType", "Caption", "Domain", "SID", "FullName", "Name" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UserAccount + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VoltageProbe + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VoltageProbe"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); + + // Process regular members. + newMembers.Add(@"PSStatus"); + AddMember( + errors, + typeName, + new PSPropertySet( + @"PSStatus", + new List { "Status", "DeviceID", "Name", "NominalReading", "StatusInfo" }), + typeMembers, + isOverride: false); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Status", "Description", "CurrentReading", "MaxReadable", "MinReadable" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VoltageProbe + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VolumeQuotaSetting + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VolumeQuotaSetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "Element", "Setting" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VolumeQuotaSetting + + #region Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_WMISetting + + typeName = @"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_WMISetting"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSPropertySet( + @"DefaultDisplayPropertySet", + new List { "BuildVersion", "Caption", "DatabaseDirectory", "EnableEvents", "LoggingLevel", "SettingID" }), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_WMISetting + + #region Microsoft.Management.Infrastructure.CimClass + + typeName = @"Microsoft.Management.Infrastructure.CimClass"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"CimClassName"); + AddMember( + errors, + typeName, + new PSScriptProperty( + @"CimClassName", + GetScriptBlock(@"[OutputType([string])] + param() + $this.PSBase.CimSystemProperties.ClassName"), + setterScript: null, + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimClass + + #region Microsoft.Management.Infrastructure.CimCmdlets.CimIndicationEventInstanceEventArgs + + typeName = @"Microsoft.Management.Infrastructure.CimCmdlets.CimIndicationEventInstanceEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Microsoft.Management.Infrastructure.CimCmdlets.CimIndicationEventInstanceEventArgs + + #region System.Management.Automation.Breakpoint + + typeName = @"System.Management.Automation.Breakpoint"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.Breakpoint + + #region Deserialized.System.Management.Automation.Breakpoint + + typeName = @"Deserialized.System.Management.Automation.Breakpoint"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.Breakpoint + + #region System.Management.Automation.BreakpointUpdatedEventArgs + + typeName = @"System.Management.Automation.BreakpointUpdatedEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 2), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.BreakpointUpdatedEventArgs + + #region Deserialized.System.Management.Automation.BreakpointUpdatedEventArgs + + typeName = @"Deserialized.System.Management.Automation.BreakpointUpdatedEventArgs"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.BreakpointUpdatedEventArgs + + #region System.Management.Automation.DebuggerCommand + + typeName = @"System.Management.Automation.DebuggerCommand"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.DebuggerCommand + + #region Deserialized.System.Management.Automation.DebuggerCommand + + typeName = @"Deserialized.System.Management.Automation.DebuggerCommand"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.DebuggerCommand + + #region System.Management.Automation.DebuggerCommandResults + + typeName = @"System.Management.Automation.DebuggerCommandResults"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"SerializationDepth", 1), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion System.Management.Automation.DebuggerCommandResults + + #region Deserialized.System.Management.Automation.DebuggerCommandResults + + typeName = @"Deserialized.System.Management.Automation.DebuggerCommandResults"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process standard members. + memberSetMembers = new PSMemberInfoInternalCollection(capacity: 1); + AddMember( + errors, + typeName, + new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), + memberSetMembers, + isOverride: false); + + ProcessStandardMembers( + errors, + typeName, + memberSetMembers, + typeMembers, + isOverride: false); + + #endregion Deserialized.System.Management.Automation.DebuggerCommandResults + + #region System.Version#IncludeLabel + + typeName = @"System.Version#IncludeLabel"; + typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); + + // Process regular members. + newMembers.Add(@"ToString"); + AddMember( + errors, + typeName, + new PSScriptMethod( + @"ToString", + GetScriptBlock(@" + $suffix = """" + if (![String]::IsNullOrEmpty($this.PSSemVerPreReleaseLabel)) + { + $suffix = ""-""+$this.PSSemVerPreReleaseLabel + } + + if (![String]::IsNullOrEmpty($this.PSSemVerBuildLabel)) + { + $suffix += ""+""+$this.PSSemVerBuildLabel + } + ""$($this.Major).$($this.Minor).$($this.Build)""+$suffix + "), + shouldCloneOnAccess: true), + typeMembers, + isOverride: false); + + #endregion System.Version#IncludeLabel + + // Update binder version for newly added members. + foreach (string memberName in newMembers) + { + PSGetMemberBinder.TypeTableMemberAdded(memberName); + } + } + } +} diff --git a/src/System.Management.Automation/engine/TypesV3_Ps1Xml.cs b/src/System.Management.Automation/engine/TypesV3_Ps1Xml.cs deleted file mode 100644 index 071c4e1791..0000000000 --- a/src/System.Management.Automation/engine/TypesV3_Ps1Xml.cs +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System.Collections.Generic; -using System.Management.Automation; -using System.Reflection; - -namespace System.Management.Automation.Runspaces -{ - internal sealed class TypesV3_Ps1Xml - { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - static MethodInfo GetMethodInfo(string typeName, string method) - { - var type = LanguagePrimitives.ConvertTo(typeName); - return GetMethodInfo(type, method); - } - - static MethodInfo GetMethodInfo(Type type, string method) - { - return type.GetMethod(method, BindingFlags.Static | BindingFlags.Public | BindingFlags.IgnoreCase); - } - - static ScriptBlock GetScriptBlock(string s) - { - var sb = ScriptBlock.CreateDelayParsedScriptBlock(s, isProductCode: true); - sb.LanguageMode = PSLanguageMode.FullLanguage; - return sb; - } - - public static IEnumerable Get() - { - var td1 = new TypeData(@"System.Security.Cryptography.X509Certificates.X509Certificate2", true); - td1.Members.Add("EnhancedKeyUsageList", - new ScriptPropertyData(@"EnhancedKeyUsageList", GetScriptBlock(@",(new-object Microsoft.Powershell.Commands.EnhancedKeyUsageProperty -argumentlist $this).EnhancedKeyUsageList;"), null)); - td1.Members.Add("DnsNameList", - new ScriptPropertyData(@"DnsNameList", GetScriptBlock(@",(new-object Microsoft.Powershell.Commands.DnsNameProperty -argumentlist $this).DnsNameList;"), null)); - td1.Members.Add("SendAsTrustedIssuer", - new ScriptPropertyData(@"SendAsTrustedIssuer", GetScriptBlock(@"[Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::ReadSendAsTrustedIssuerProperty($this)"), GetScriptBlock(@"$sendAsTrustedIssuer = $args[0] - [Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::WriteSendAsTrustedIssuerProperty($this,$this.PsPath,$sendAsTrustedIssuer)"))); - yield return td1; - - var td2 = new TypeData(@"System.Management.Automation.Remoting.PSSenderInfo", true); - td2.Members.Add("ConnectedUser", - new ScriptPropertyData(@"ConnectedUser", GetScriptBlock(@"$this.UserInfo.Identity.Name"), null)); - td2.Members.Add("RunAsUser", - new ScriptPropertyData(@"RunAsUser", GetScriptBlock(@"if($null -ne $this.UserInfo.WindowsIdentity) - { - $this.UserInfo.WindowsIdentity.Name - }"), null)); - yield return td2; - - var td3 = new TypeData(@"System.Management.Automation.CompletionResult", true); - td3.SerializationDepth = 1; - yield return td3; - - var td4 = new TypeData(@"Deserialized.System.Management.Automation.CompletionResult", true); - td4.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td4; - - var td5 = new TypeData(@"System.Management.Automation.CommandCompletion", true); - td5.SerializationDepth = 1; - yield return td5; - - var td6 = new TypeData(@"Deserialized.System.Management.Automation.CommandCompletion", true); - td6.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td6; - - var td7 = new TypeData(@"Microsoft.PowerShell.Commands.ModuleSpecification", true); - td7.SerializationDepth = 1; - yield return td7; - - var td8 = new TypeData(@"Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification", true); - td8.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td8; - - var td9 = new TypeData(@"System.Management.Automation.JobStateEventArgs", true); - td9.SerializationDepth = 2; - yield return td9; - - var td10 = new TypeData(@"Deserialized.System.Management.Automation.JobStateEventArgs", true); - td10.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td10; - - var td11 = new TypeData(@"System.Exception", true); - td11.SerializationDepth = 1; - yield return td11; - - var td12 = new TypeData(@"System.Management.Automation.Remoting.PSSessionOption", true); - td12.SerializationDepth = 1; - yield return td12; - - var td13 = new TypeData(@"Deserialized.System.Management.Automation.Remoting.PSSessionOption", true); - td13.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td13; - - var td14 = new TypeData(@"System.Management.Automation.DebuggerStopEventArgs", true); - td14.Members.Add("SerializedInvocationInfo", - new CodePropertyData("SerializedInvocationInfo", GetMethodInfo(typeof(Microsoft.PowerShell.DeserializingTypeConverter), "GetInvocationInfo"), null) { IsHidden = true }); - td14.SerializationMethod = "SpecificProperties"; - td14.SerializationDepth = 2; - td14.PropertySerializationSet = - new PropertySetData(new[] { "Breakpoints", "ResumeAction", "SerializedInvocationInfo" }) { Name = "PropertySerializationSet" }; - yield return td14; - - var td15 = new TypeData(@"Deserialized.System.Management.Automation.DebuggerStopEventArgs", true); - td15.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td15; - } - } -} diff --git a/src/System.Management.Automation/engine/Types_Ps1Xml.cs b/src/System.Management.Automation/engine/Types_Ps1Xml.cs deleted file mode 100644 index 3bebaed7a3..0000000000 --- a/src/System.Management.Automation/engine/Types_Ps1Xml.cs +++ /dev/null @@ -1,2014 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Management.Automation; -using System.Reflection; - -namespace System.Management.Automation.Runspaces -{ - internal sealed class Types_Ps1Xml - { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - static MethodInfo GetMethodInfo(Type type, string method) - { - return type.GetMethod(method, BindingFlags.Static | BindingFlags.Public | BindingFlags.IgnoreCase); - } - - static ScriptBlock GetScriptBlock(string s) - { - var sb = ScriptBlock.CreateDelayParsedScriptBlock(s, isProductCode: true); - sb.LanguageMode = PSLanguageMode.FullLanguage; - return sb; - } - - public static IEnumerable Get() - { - TypeData td; - - var td2 = new TypeData(@"System.Xml.XmlNode", true); - td2.Members.Add("ToString", - new CodeMethodData("ToString", GetMethodInfo(typeof(Microsoft.PowerShell.ToStringCodeMethods), @"XmlNode"))); - yield return td2; - - var td3 = new TypeData(@"System.Xml.XmlNodeList", true); - td3.Members.Add("ToString", - new CodeMethodData("ToString", GetMethodInfo(typeof(Microsoft.PowerShell.ToStringCodeMethods), @"XmlNodeList"))); - yield return td3; - - var td4 = new TypeData(@"System.Management.Automation.PSDriveInfo", true); - td4.Members.Add("Used", - new ScriptPropertyData(@"Used", GetScriptBlock(@"## Ensure that this is a FileSystem drive - if($this.Provider.ImplementingType -eq - [Microsoft.PowerShell.Commands.FileSystemProvider]) - { - $driveInfo = [System.IO.DriveInfo]::New($this.Root) - if ( $driveInfo.IsReady ) { $driveInfo.TotalSize - $driveInfo.AvailableFreeSpace } - }"), null)); - td4.Members.Add("Free", - new ScriptPropertyData(@"Free", GetScriptBlock(@"## Ensure that this is a FileSystem drive - if($this.Provider.ImplementingType -eq - [Microsoft.PowerShell.Commands.FileSystemProvider]) - { - [System.IO.DriveInfo]::New($this.Root).AvailableFreeSpace - }"), null)); - yield return td4; - -#if !UNIX - var td5 = new TypeData(@"System.DirectoryServices.PropertyValueCollection", true); - td5.Members.Add("ToString", - new CodeMethodData("ToString", GetMethodInfo(typeof(Microsoft.PowerShell.ToStringCodeMethods), @"PropertyValueCollection"))); - yield return td5; -#endif - - var td6 = new TypeData(@"System.Drawing.Printing.PrintDocument", true); - td6.Members.Add("Name", - new ScriptPropertyData(@"Name", GetScriptBlock(@"$this.PrinterSettings.PrinterName"), null)); - td6.Members.Add("Color", - new ScriptPropertyData(@"Color", GetScriptBlock(@"$this.PrinterSettings.SupportsColor"), null)); - td6.Members.Add("Duplex", - new ScriptPropertyData(@"Duplex", GetScriptBlock(@"$this.PrinterSettings.Duplex"), null)); - yield return td6; - - var td7 = new TypeData(@"System.Management.Automation.ApplicationInfo", true); - td7.Members.Add("FileVersionInfo", - new ScriptPropertyData(@"FileVersionInfo", GetScriptBlock(@"[System.Diagnostics.FileVersionInfo]::getversioninfo( $this.Path )"), null)); - yield return td7; - - var td8 = new TypeData(@"System.DateTime", true); - td8.Members.Add("DateTime", - new ScriptPropertyData(@"DateTime", GetScriptBlock(@"if ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq ""Date"") - { - ""{0}"" -f $this.ToLongDateString() - } - elseif ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq ""Time"") - { - ""{0}"" -f $this.ToLongTimeString() - } - else - { - ""{0} {1}"" -f $this.ToLongDateString(), $this.ToLongTimeString() - }"), null)); - yield return td8; - - var td9 = new TypeData(@"System.Net.IPAddress", true); - td9.Members.Add("IPAddressToString", - new ScriptPropertyData(@"IPAddressToString", GetScriptBlock(@"$this.Tostring()"), null)); - td9.DefaultDisplayProperty = @"IPAddressToString"; - td9.SerializationDepth = 1; - yield return td9; - - var td10 = new TypeData(@"Deserialized.System.Net.IPAddress", true); - td10.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td10; - - var td11 = new TypeData(@"System.Diagnostics.ProcessModule", true); - td11.Members.Add("Size", - new ScriptPropertyData(@"Size", GetScriptBlock(@"$this.ModuleMemorySize / 1024"), null)); - td11.Members.Add("Company", - new ScriptPropertyData(@"Company", GetScriptBlock(@"$this.FileVersionInfo.CompanyName"), null)); - td11.Members.Add("FileVersion", - new ScriptPropertyData(@"FileVersion", GetScriptBlock(@"$this.FileVersionInfo.FileVersion"), null)); - td11.Members.Add("ProductVersion", - new ScriptPropertyData(@"ProductVersion", GetScriptBlock(@"$this.FileVersionInfo.ProductVersion"), null)); - td11.Members.Add("Description", - new ScriptPropertyData(@"Description", GetScriptBlock(@"$this.FileVersionInfo.FileDescription"), null)); - td11.Members.Add("Product", - new ScriptPropertyData(@"Product", GetScriptBlock(@"$this.FileVersionInfo.ProductName"), null)); - yield return td11; - - var td12 = new TypeData(@"System.Collections.DictionaryEntry", true); - td12.Members.Add("Name", - new AliasPropertyData("Name", "Key")); - yield return td12; - - var td13 = new TypeData(@"System.Management.Automation.PSModuleInfo", true); - td13.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "Path", "Description", "Guid", "Version", "ModuleBase", "ModuleType", "PrivateData", "AccessMode", "ExportedAliases", "ExportedCmdlets", "ExportedFunctions", "ExportedVariables", "NestedModules" }) { Name = "DefaultDisplayPropertySet" }; - yield return td13; - - var td14 = new TypeData(@"System.ServiceProcess.ServiceController", true); - td14.Members.Add("Name", - new AliasPropertyData("Name", "ServiceName")); - td14.Members.Add("RequiredServices", - new AliasPropertyData("RequiredServices", "ServicesDependedOn")); - td14.Members.Add("ToString", - new ScriptMethodData(@"ToString", GetScriptBlock(@"$this.ServiceName"))); - td14.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Status", "Name", "DisplayName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td14; - - var td15 = new TypeData(@"Deserialized.System.ServiceProcess.ServiceController", true); - td15.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Status", "Name", "DisplayName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td15; - - var td16 = new TypeData(@"System.Management.Automation.CmdletInfo", true); - td16.Members.Add("DLL", - new ScriptPropertyData(@"DLL", GetScriptBlock(@"$this.ImplementingType.Assembly.Location"), null)); - yield return td16; - - var td17 = new TypeData(@"System.Management.Automation.AliasInfo", true); - td17.Members.Add("ResolvedCommandName", - new ScriptPropertyData(@"ResolvedCommandName", GetScriptBlock(@"$this.ResolvedCommand.Name"), null)); - td17.Members.Add("DisplayName", - new ScriptPropertyData(@"DisplayName", GetScriptBlock(@"if ($this.Name.IndexOf('-') -lt 0) - { - if ($null -ne $this.ResolvedCommand) - { - $this.Name + "" -> "" + $this.ResolvedCommand.Name - } - else - { - $this.Name + "" -> "" + $this.Definition - } - } - else - { - $this.Name - }"), null)); - yield return td17; - -#if !UNIX - var td18 = new TypeData(@"System.DirectoryServices.DirectoryEntry", true); - td18.Members.Add("ConvertLargeIntegerToInt64", - new CodeMethodData("ConvertLargeIntegerToInt64", GetMethodInfo(typeof(Microsoft.PowerShell.AdapterCodeMethods), @"ConvertLargeIntegerToInt64"))); - td18.Members.Add("ConvertDNWithBinaryToString", - new CodeMethodData("ConvertDNWithBinaryToString", GetMethodInfo(typeof(Microsoft.PowerShell.AdapterCodeMethods), @"ConvertDNWithBinaryToString"))); - td18.DefaultDisplayPropertySet = - new PropertySetData(new[] { "distinguishedName", "Path" }) { Name = "DefaultDisplayPropertySet" }; - yield return td18; -#endif - - var td19 = new TypeData(@"System.IO.DirectoryInfo", true); - td19.Members.Add("Mode", - new CodePropertyData("Mode", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "Mode"), null)); - td19.Members.Add("ModeWithoutHardLink", - new CodePropertyData("ModeWithoutHardLink", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "ModeWithoutHardLink"), null)); - td19.Members.Add("BaseName", - new ScriptPropertyData(@"BaseName", GetScriptBlock(@"$this.Name"), null)); - td19.Members.Add("Target", - new CodePropertyData("Target", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), "GetTarget"), null)); - td19.Members.Add("LinkType", - new CodePropertyData("LinkType", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), "GetLinkType"), null)); - td19.Members.Add("NameString", - new CodePropertyData("NameString", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "NameString"), null) { IsHidden = true }); - td19.Members.Add("LengthString", - new CodePropertyData("LengthString", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "LengthString"), null) { IsHidden = true }); - td19.Members.Add("LastWriteTimeString", - new CodePropertyData("LastWriteTimeString", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "LastWriteTimeString"), null) { IsHidden = true }); - td19.DefaultDisplayProperty = @"Name"; - yield return td19; - - var td20 = new TypeData(@"System.IO.FileInfo", true); - td20.Members.Add("Mode", - new CodePropertyData("Mode", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "Mode"), null)); - td20.Members.Add("ModeWithoutHardLink", - new CodePropertyData("ModeWithoutHardLink", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "ModeWithoutHardLink"), null)); - td20.Members.Add("VersionInfo", - new ScriptPropertyData(@"VersionInfo", GetScriptBlock(@"[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)"), null)); - td20.Members.Add("BaseName", - new ScriptPropertyData(@"BaseName", GetScriptBlock(@"if ($this.Extension.Length -gt 0){$this.Name.Remove($this.Name.Length - $this.Extension.Length)}else{$this.Name}"), null)); - td20.Members.Add("Target", - new CodePropertyData("Target", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), "GetTarget"), null)); - td20.Members.Add("LinkType", - new CodePropertyData("LinkType", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods), "GetLinkType"), null)); - td20.Members.Add("NameString", - new CodePropertyData("NameString", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "NameString"), null) { IsHidden = true }); - td20.Members.Add("LengthString", - new CodePropertyData("LengthString", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "LengthString"), null) { IsHidden = true }); - td20.Members.Add("LastWriteTimeString", - new CodePropertyData("LastWriteTimeString", GetMethodInfo(typeof(Microsoft.PowerShell.Commands.FileSystemProvider), "LastWriteTimeString"), null) { IsHidden = true }); - td20.DefaultDisplayPropertySet = - new PropertySetData(new[] { "LastWriteTime", "Length", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td20; - - var td21 = new TypeData(@"System.Diagnostics.FileVersionInfo", true); - td21.Members.Add("FileVersionRaw", - new ScriptPropertyData(@"FileVersionRaw", GetScriptBlock(@"New-Object System.Version -ArgumentList @( - $this.FileMajorPart - $this.FileMinorPart - $this.FileBuildPart - $this.FilePrivatePart)"), null)); - td21.Members.Add("ProductVersionRaw", - new ScriptPropertyData(@"ProductVersionRaw", GetScriptBlock(@"New-Object System.Version -ArgumentList @( - $this.ProductMajorPart - $this.ProductMinorPart - $this.ProductBuildPart - $this.ProductPrivatePart)"), null)); - yield return td21; - - var td22 = new TypeData(@"System.Diagnostics.EventLogEntry", true); - td22.Members.Add("EventID", - new ScriptPropertyData(@"EventID", GetScriptBlock(@"$this.get_EventID() -band 0xFFFF"), null)); - yield return td22; - - var td23 = new TypeData(@"System.Management.ManagementBaseObject", true); - td23.Members.Add("PSComputerName", - new AliasPropertyData("PSComputerName", "__SERVER")); - yield return td23; - - var td24 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PingStatus", true); - td24.Members.Add("IPV4Address", - new ScriptPropertyData(@"IPV4Address", GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } | Select-Object -first 1"), null)); - td24.Members.Add("IPV6Address", - new ScriptPropertyData(@"IPV6Address", GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetworkV6 } | Select-Object -first 1"), null)); - yield return td24; - - var td25 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Process", true); - td25.Members.Add("ProcessName", - new AliasPropertyData("ProcessName", "Name")); - td25.Members.Add("Handles", - new AliasPropertyData("Handles", "Handlecount")); - td25.Members.Add("VM", - new AliasPropertyData("VM", "VirtualSize")); - td25.Members.Add("WS", - new AliasPropertyData("WS", "WorkingSetSize")); - td25.Members.Add("Path", - new ScriptPropertyData(@"Path", GetScriptBlock(@"$this.ExecutablePath"), null)); - yield return td25; - - var td26 = new TypeData(@"System.Diagnostics.Process", true); - td26.Members.Add("PSConfiguration", - new PropertySetData(new[] { "Name", "Id", "PriorityClass", "FileVersion" }) { Name = "PSConfiguration" }); - td26.Members.Add("PSResources", - new PropertySetData(new[] { "Name", "Id", "Handlecount", "WorkingSet", "NonPagedMemorySize", "PagedMemorySize", "PrivateMemorySize", "VirtualMemorySize", "Threads.Count", "TotalProcessorTime" }) { Name = "PSResources" }); - td26.Members.Add("Name", - new AliasPropertyData("Name", "ProcessName")); - td26.Members.Add("SI", - new AliasPropertyData("SI", "SessionId")); - td26.Members.Add("Handles", - new AliasPropertyData("Handles", "Handlecount")); - td26.Members.Add("VM", - new AliasPropertyData("VM", "VirtualMemorySize64")); - td26.Members.Add("WS", - new AliasPropertyData("WS", "WorkingSet64")); - td26.Members.Add("PM", - new AliasPropertyData("PM", "PagedMemorySize64")); - td26.Members.Add("NPM", - new AliasPropertyData("NPM", "NonpagedSystemMemorySize64")); - td26.Members.Add("Path", - new ScriptPropertyData(@"Path", GetScriptBlock(@"$this.Mainmodule.FileName"), null)); - td26.Members.Add("Parent", - new CodePropertyData("Parent", GetMethodInfo(typeof(Microsoft.PowerShell.ProcessCodeMethods), @"GetParentProcess"))); - td26.Members.Add("Company", - new ScriptPropertyData(@"Company", GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.CompanyName"), null)); - td26.Members.Add("CPU", - new ScriptPropertyData(@"CPU", GetScriptBlock(@"$this.TotalProcessorTime.TotalSeconds"), null)); - td26.Members.Add("FileVersion", - new ScriptPropertyData(@"FileVersion", GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.FileVersion"), null)); - td26.Members.Add("ProductVersion", - new ScriptPropertyData(@"ProductVersion", GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.ProductVersion"), null)); - td26.Members.Add("Description", - new ScriptPropertyData(@"Description", GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.FileDescription"), null)); - td26.Members.Add("Product", - new ScriptPropertyData(@"Product", GetScriptBlock(@"$this.Mainmodule.FileVersionInfo.ProductName"), null)); - td26.Members.Add("__NounName", - new NotePropertyData(@"__NounName", @"Process")); - td26.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Id", "Handles", "CPU", "SI", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td26; - - var td27 = new TypeData(@"Deserialized.System.Diagnostics.Process", true); - td27.Members.Add("PSConfiguration", - new PropertySetData(new[] { "Name", "Id", "PriorityClass", "FileVersion" }) { Name = "PSConfiguration" }); - td27.Members.Add("PSResources", - new PropertySetData(new[] { "Name", "Id", "Handlecount", "WorkingSet", "NonPagedMemorySize", "PagedMemorySize", "PrivateMemorySize", "VirtualMemorySize", "Threads.Count", "TotalProcessorTime" }) { Name = "PSResources" }); - td27.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Id", "Handles", "CPU", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td27; - - var td28 = new TypeData(@"System.Management.ManagementObject#root\cli\Msft_CliAlias", true); - td28.DefaultDisplayPropertySet = - new PropertySetData(new[] { "FriendlyName", "PWhere", "Target" }) { Name = "DefaultDisplayPropertySet" }; - yield return td28; - - var td29 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_BaseBoard", true); - td29.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "PoweredOn" }) { Name = "PSStatus" }); - td29.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Model", "Name", "SerialNumber", "SKU", "Product" }) { Name = "DefaultDisplayPropertySet" }; - yield return td29; - - var td30 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_BIOS", true); - td30.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "Caption", "SMBIOSPresent" }) { Name = "PSStatus" }); - td30.DefaultDisplayPropertySet = - new PropertySetData(new[] { "SMBIOSBIOSVersion", "Manufacturer", "Name", "SerialNumber", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td30; - - var td31 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_BootConfiguration", true); - td31.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "SettingID", "ConfigurationPath" }) { Name = "PSStatus" }); - td31.DefaultDisplayPropertySet = - new PropertySetData(new[] { "BootDirectory", "Name", "SettingID", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td31; - - var td32 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_CDROMDrive", true); - td32.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "Drive", "ErrorCleared", "MediaLoaded", "NeedsCleaning", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td32.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Drive", "Manufacturer", "VolumeName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td32; - - var td33 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_ComputerSystem", true); - td33.Members.Add("PSStatus", - new PropertySetData(new[] { "AdminPasswordStatus", "BootupState", "ChassisBootupState", "KeyboardPasswordStatus", "PowerOnPasswordStatus", "PowerSupplyState", "PowerState", "FrontPanelResetStatus", "ThermalState", "Status", "Name" }) { Name = "PSStatus" }); - td33.Members.Add("POWER", - new PropertySetData(new[] { "Name", "PowerManagementCapabilities", "PowerManagementSupported", "PowerOnPasswordStatus", "PowerState", "PowerSupplyState" }) { Name = "POWER" }); - td33.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Domain", "Manufacturer", "Model", "Name", "PrimaryOwnerName", "TotalPhysicalMemory" }) { Name = "DefaultDisplayPropertySet" }; - yield return td33; - - var td34 = new TypeData(@"System.Management.ManagementObject#root\cimv2\WIN32_PROCESSOR", true); - td34.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "CpuStatus", "CurrentVoltage", "DeviceID", "ErrorCleared", "ErrorDescription", "LastErrorCode", "LoadPercentage", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td34.Members.Add("PSConfiguration", - new PropertySetData(new[] { "AddressWidth", "DataWidth", "DeviceID", "ExtClock", "L2CacheSize", "L2CacheSpeed", "MaxClockSpeed", "PowerManagementSupported", "ProcessorType", "Revision", "SocketDesignation", "Version", "VoltageCaps" }) { Name = "PSConfiguration" }); - td34.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "DeviceID", "Manufacturer", "MaxClockSpeed", "Name", "SocketDesignation" }) { Name = "DefaultDisplayPropertySet" }; - yield return td34; - - var td35 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_ComputerSystemProduct", true); - td35.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Version" }) { Name = "PSStatus" }); - td35.DefaultDisplayPropertySet = - new PropertySetData(new[] { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td35; - - var td36 = new TypeData(@"System.Management.ManagementObject#root\cimv2\CIM_DataFile", true); - td36.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td36.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Compressed", "Encrypted", "Size", "Hidden", "Name", "Readable", "System", "Version", "Writeable" }) { Name = "DefaultDisplayPropertySet" }; - yield return td36; - - var td37 = new TypeData(@"System.Management.ManagementObject#root\cimv2\WIN32_DCOMApplication", true); - td37.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status" }) { Name = "PSStatus" }); - td37.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AppID", "InstallDate", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td37; - - var td38 = new TypeData(@"System.Management.ManagementObject#root\cimv2\WIN32_DESKTOP", true); - td38.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "ScreenSaverActive" }) { Name = "PSStatus" }); - td38.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "ScreenSaverActive", "ScreenSaverSecure", "ScreenSaverTimeout", "SettingID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td38; - - var td39 = new TypeData(@"System.Management.ManagementObject#root\cimv2\WIN32_DESKTOPMONITOR", true); - td39.Members.Add("PSConfiguration", - new PropertySetData(new[] { "DeviceID", "Name", "PixelsPerXLogicalInch", "PixelsPerYLogicalInch", "ScreenHeight", "ScreenWidth" }) { Name = "PSConfiguration" }); - td39.Members.Add("PSStatus", - new PropertySetData(new[] { "DeviceID", "IsLocked", "LastErrorCode", "Name", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td39.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "DisplayType", "MonitorManufacturer", "Name", "ScreenHeight", "ScreenWidth" }) { Name = "DefaultDisplayPropertySet" }; - yield return td39; - - var td40 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_DeviceMemoryAddress", true); - td40.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "MemoryType" }) { Name = "PSStatus" }); - td40.DefaultDisplayPropertySet = - new PropertySetData(new[] { "MemoryType", "Name", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td40; - - var td41 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_DiskDrive", true); - td41.Members.Add("PSStatus", - new PropertySetData(new[] { "ConfigManagerErrorCode", "LastErrorCode", "NeedsCleaning", "Status", "DeviceID", "StatusInfo", "Partitions" }) { Name = "PSStatus" }); - td41.Members.Add("PSConfiguration", - new PropertySetData(new[] { "BytesPerSector", "ConfigManagerUserConfig", "DefaultBlockSize", "DeviceID", "Index", "InstallDate", "InterfaceType", "MaxBlockSize", "MaxMediaSize", "MinBlockSize", "NumberOfMediaSupported", "Partitions", "SectorsPerTrack", "Size", "TotalCylinders", "TotalHeads", "TotalSectors", "TotalTracks", "TracksPerCylinder" }) { Name = "PSConfiguration" }); - td41.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Partitions", "DeviceID", "Model", "Size", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td41; - - var td42 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_DiskQuota", true); - td42.Members.Add("PSStatus", - new PropertySetData(new[] { "__PATH", "Status" }) { Name = "PSStatus" }); - td42.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DiskSpaceUsed", "Limit", "QuotaVolume", "User" }) { Name = "DefaultDisplayPropertySet" }; - yield return td42; - - var td43 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_DMAChannel", true); - td43.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td43.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AddressSize", "DMAChannel", "MaxTransferSize", "Name", "Port" }) { Name = "DefaultDisplayPropertySet" }; - yield return td43; - - var td44 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Environment", true); - td44.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "SystemVariable" }) { Name = "PSStatus" }); - td44.DefaultDisplayPropertySet = - new PropertySetData(new[] { "VariableValue", "Name", "UserName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td44; - - var td45 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Directory", true); - td45.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Compressed", "Encrypted", "Name", "Readable", "Writeable" }) { Name = "PSStatus" }); - td45.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Hidden", "Archive", "EightDotThreeFileName", "FileSize", "Name", "Compressed", "Encrypted", "Readable" }) { Name = "DefaultDisplayPropertySet" }; - yield return td45; - - var td46 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Group", true); - td46.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td46.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Domain", "Name", "SID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td46; - - var td47 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_IDEController", true); - td47.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td47.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }) { Name = "DefaultDisplayPropertySet" }; - yield return td47; - - var td48 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_IRQResource", true); - td48.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Caption", "Availability" }) { Name = "PSStatus" }); - td48.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Hardware", "IRQNumber", "Name", "Shareable", "TriggerLevel", "TriggerType" }) { Name = "DefaultDisplayPropertySet" }; - yield return td48; - - var td49 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_ScheduledJob", true); - td49.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "JobId", "JobStatus", "ElapsedTime", "StartTime", "Owner" }) { Name = "PSStatus" }); - td49.DefaultDisplayPropertySet = - new PropertySetData(new[] { "JobId", "Name", "Owner", "Priority", "Command" }) { Name = "DefaultDisplayPropertySet" }; - yield return td49; - - var td50 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_LoadOrderGroup", true); - td50.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td50.DefaultDisplayPropertySet = - new PropertySetData(new[] { "GroupOrder", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td50; - - var td51 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_LogicalDisk", true); - td51.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Availability", "DeviceID", "StatusInfo" }) { Name = "PSStatus" }); - td51.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "DriveType", "ProviderName", "FreeSpace", "Size", "VolumeName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td51; - - var td52 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_LogonSession", true); - td52.Members.Add("PSStatus", - new PropertySetData(new[] { "__PATH", "Status" }) { Name = "PSStatus" }); - td52.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AuthenticationPackage", "LogonId", "LogonType", "Name", "StartTime", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td52; - - var td53 = new TypeData(@"System.Management.ManagementObject#root\cimv2\WIN32_CACHEMEMORY", true); - td53.Members.Add("ERROR", - new PropertySetData(new[] { "DeviceID", "ErrorCorrectType" }) { Name = "ERROR" }); - td53.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "DeviceID", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td53.Members.Add("PSConfiguration", - new PropertySetData(new[] { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status", "WritePolicy" }) { Name = "PSConfiguration" }); - td53.DefaultDisplayPropertySet = - new PropertySetData(new[] { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td53; - - var td54 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_LogicalMemoryConfiguration", true); - td54.Members.Add("PSStatus", - new PropertySetData(new[] { "AvailableVirtualMemory", "Name", "TotalVirtualMemory" }) { Name = "PSStatus" }); - td54.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "TotalVirtualMemory", "TotalPhysicalMemory", "TotalPageFileSpace" }) { Name = "DefaultDisplayPropertySet" }; - yield return td54; - - var td55 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PhysicalMemoryArray", true); - td55.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "Replaceable", "Location" }) { Name = "PSStatus" }); - td55.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Model", "Name", "MaxCapacity", "MemoryDevices" }) { Name = "DefaultDisplayPropertySet" }; - yield return td55; - - var td56 = new TypeData(@"System.Management.ManagementObject#root\cimv2\WIN32_NetworkClient", true); - td56.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status" }) { Name = "PSStatus" }); - td56.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "InstallDate", "Manufacturer", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td56; - - var td57 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NetworkLoginProfile", true); - td57.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Privileges", "Profile", "UserId", "UserType", "Workstations" }) { Name = "DefaultDisplayPropertySet" }; - yield return td57; - - var td58 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NetworkProtocol", true); - td58.Members.Add("FULLXXX", - new PropertySetData(new[] { "ConnectionlessService", "Description", "GuaranteesDelivery", "GuaranteesSequencing", "InstallDate", "MaximumAddressSize", "MaximumMessageSize", "MessageOriented", "MinimumAddressSize", "Name", "PseudoStreamOriented", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }) { Name = "FULLXXX" }); - td58.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }) { Name = "PSStatus" }); - td58.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "GuaranteesDelivery", "GuaranteesSequencing", "ConnectionlessService", "Status", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td58; - - var td59 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NetworkConnection", true); - td59.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "ConnectionState", "Persistent", "LocalName", "RemoteName" }) { Name = "PSStatus" }); - td59.DefaultDisplayPropertySet = - new PropertySetData(new[] { "LocalName", "RemoteName", "ConnectionState", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td59; - - var td60 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapter", true); - td60.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "Name", "Status", "StatusInfo", "DeviceID" }) { Name = "PSStatus" }); - td60.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ServiceName", "MACAddress", "AdapterType", "DeviceID", "Name", "NetworkAddresses", "Speed" }) { Name = "DefaultDisplayPropertySet" }; - yield return td60; - - var td61 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapterConfiguration", true); - td61.Members.Add("PSStatus", - new PropertySetData(new[] { "DHCPLeaseExpires", "Index", "Description" }) { Name = "PSStatus" }); - td61.Members.Add("DHCP", - new PropertySetData(new[] { "Description", "DHCPEnabled", "DHCPLeaseExpires", "DHCPLeaseObtained", "DHCPServer", "Index" }) { Name = "DHCP" }); - td61.Members.Add("DNS", - new PropertySetData(new[] { "Description", "DNSDomain", "DNSDomainSuffixSearchOrder", "DNSEnabledForWINSResolution", "DNSHostName", "DNSServerSearchOrder", "DomainDNSRegistrationEnabled", "FullDNSRegistrationEnabled", "Index" }) { Name = "DNS" }); - td61.Members.Add("IP", - new PropertySetData(new[] { "Description", "Index", "IPAddress", "IPConnectionMetric", "IPEnabled", "IPFilterSecurityEnabled" }) { Name = "IP" }); - td61.Members.Add("WINS", - new PropertySetData(new[] { "Description", "Index", "WINSEnableLMHostsLookup", "WINSHostLookupFile", "WINSPrimaryServer", "WINSScopeID", "WINSSecondaryServer" }) { Name = "WINS" }); - td61.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DHCPEnabled", "IPAddress", "DefaultIPGateway", "DNSDomain", "ServiceName", "Description", "Index" }) { Name = "DefaultDisplayPropertySet" }; - yield return td61; - - var td62 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NTDomain", true); - td62.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "DomainName" }) { Name = "PSStatus" }); - td62.Members.Add("GUID", - new PropertySetData(new[] { "DomainName", "DomainGuid" }) { Name = "GUID" }); - td62.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ClientSiteName", "DcSiteName", "Description", "DnsForestName", "DomainControllerAddress", "DomainControllerName", "DomainName", "Roles", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td62; - - var td63 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NTLogEvent", true); - td63.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Category", "CategoryString", "EventCode", "EventIdentifier", "TypeEvent", "InsertionStrings", "LogFile", "Message", "RecordNumber", "SourceName", "TimeGenerated", "TimeWritten", "Type", "UserName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td63; - - var td64 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_NTEventlogFile", true); - td64.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "LogfileName", "Name" }) { Name = "PSStatus" }); - td64.DefaultDisplayPropertySet = - new PropertySetData(new[] { "FileSize", "LogfileName", "Name", "NumberOfRecords" }) { Name = "DefaultDisplayPropertySet" }; - yield return td64; - - var td65 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_OnBoardDevice", true); - td65.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Description" }) { Name = "PSStatus" }); - td65.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceType", "SerialNumber", "Enabled", "Description" }) { Name = "DefaultDisplayPropertySet" }; - yield return td65; - - var td66 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_OperatingSystem", true); - td66.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td66.Members.Add("FREE", - new PropertySetData(new[] { "FreePhysicalMemory", "FreeSpaceInPagingFiles", "FreeVirtualMemory", "Name" }) { Name = "FREE" }); - td66.DefaultDisplayPropertySet = - new PropertySetData(new[] { "SystemDirectory", "Organization", "BuildNumber", "RegisteredUser", "SerialNumber", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td66; - - var td67 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PageFileUsage", true); - td67.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "CurrentUsage" }) { Name = "PSStatus" }); - td67.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Name", "PeakUsage" }) { Name = "DefaultDisplayPropertySet" }; - yield return td67; - - var td68 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PageFileSetting", true); - td68.DefaultDisplayPropertySet = - new PropertySetData(new[] { "MaximumSize", "Name", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td68; - - var td69 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_DiskPartition", true); - td69.Members.Add("PSStatus", - new PropertySetData(new[] { "Index", "Status", "StatusInfo", "Name" }) { Name = "PSStatus" }); - td69.DefaultDisplayPropertySet = - new PropertySetData(new[] { "NumberOfBlocks", "BootPartition", "Name", "PrimaryPartition", "Size", "Index" }) { Name = "DefaultDisplayPropertySet" }; - yield return td69; - - var td70 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PortResource", true); - td70.Members.Add("PSStatus", - new PropertySetData(new[] { "NetConnectionStatus", "Status", "Name", "StartingAddress", "EndingAddress" }) { Name = "PSStatus" }); - td70.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Name", "Alias" }) { Name = "DefaultDisplayPropertySet" }; - yield return td70; - - var td71 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PortConnector", true); - td71.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "ExternalReferenceDesignator" }) { Name = "PSStatus" }); - td71.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Tag", "ConnectorType", "SerialNumber", "ExternalReferenceDesignator", "PortType" }) { Name = "DefaultDisplayPropertySet" }; - yield return td71; - - var td72 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Printer", true); - td72.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td72.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Location", "Name", "PrinterState", "PrinterStatus", "ShareName", "SystemName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td72; - - var td73 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PrinterConfiguration", true); - td73.Members.Add("PSStatus", - new PropertySetData(new[] { "DriverVersion", "Name" }) { Name = "PSStatus" }); - td73.DefaultDisplayPropertySet = - new PropertySetData(new[] { "PrintQuality", "DriverVersion", "Name", "PaperSize", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td73; - - var td74 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PrintJob", true); - td74.Members.Add("PSStatus", - new PropertySetData(new[] { "Document", "JobId", "JobStatus", "Name", "PagesPrinted", "Status", "JobIdCopy", "Name" }) { Name = "PSStatus" }); - td74.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Document", "JobId", "JobStatus", "Owner", "Priority", "Size", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td74; - - var td75 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_ProcessXXX", true); - td75.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "ProcessId" }) { Name = "PSStatus" }); - td75.Members.Add("MEMORY", - new PropertySetData(new[] { "Handle", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "Name", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "VirtualSize", "WorkingSetSize" }) { Name = "MEMORY" }); - td75.Members.Add("IO", - new PropertySetData(new[] { "Name", "ProcessId", "ReadOperationCount", "ReadTransferCount", "WriteOperationCount", "WriteTransferCount" }) { Name = "IO" }); - td75.Members.Add("STATISTICS", - new PropertySetData(new[] { "HandleCount", "Name", "KernelModeTime", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "OtherOperationCount", "OtherTransferCount", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "ProcessId", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "ReadOperationCount", "ReadTransferCount", "ThreadCount", "UserModeTime", "VirtualSize", "WorkingSetSize", "WriteOperationCount", "WriteTransferCount" }) { Name = "STATISTICS" }); - td75.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ThreadCount", "HandleCount", "Name", "Priority", "ProcessId", "WorkingSetSize" }) { Name = "DefaultDisplayPropertySet" }; - yield return td75; - - var td76 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Product", true); - td76.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Version", "InstallState" }) { Name = "PSStatus" }); - td76.DefaultDisplayPropertySet = - new PropertySetData(new[] { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td76; - - var td77 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering", true); - td77.Members.Add("InstalledOn", - new ScriptPropertyData(@"InstalledOn", GetScriptBlock(@"if ([environment]::osversion.version.build -ge 7000) - { - # WMI team fixed the formatting issue related to InstalledOn - # property in Windows7 (to return string)..so returning the WMI's - # version directly - [DateTime]::Parse($this.psBase.properties[""InstalledOn""].Value, [System.Globalization.DateTimeFormatInfo]::new()) - } - else - { - $orig = $this.psBase.properties[""InstalledOn""].Value - $date = [datetime]::FromFileTimeUTC($(""0x"" + $orig)) - if ($date -lt ""1/1/1980"") - { - if ($orig -match ""([0-9]{4})([01][0-9])([012][0-9])"") - { - new-object datetime @([int]$matches[1], [int]$matches[2], [int]$matches[3]) - } - } - else - { - $date - } - }"), null)); - td77.Members.Add("PSStatus", - new PropertySetData(new[] { "__PATH", "Status" }) { Name = "PSStatus" }); - td77.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Description", "FixComments", "HotFixID", "InstallDate", "InstalledBy", "InstalledOn", "Name", "ServicePackInEffect", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td77; - - var td78 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_QuotaSetting", true); - td78.Members.Add("PSStatus", - new PropertySetData(new[] { "State", "VolumePath", "Caption" }) { Name = "PSStatus" }); - td78.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "DefaultLimit", "SettingID", "State", "VolumePath", "DefaultWarningLimit" }) { Name = "DefaultDisplayPropertySet" }; - yield return td78; - - var td79 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_OSRecoveryConfiguration", true); - td79.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DebugFilePath", "Name", "SettingID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td79; - - var td80 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Registry", true); - td80.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "CurrentSize", "MaximumSize", "ProposedSize" }) { Name = "PSStatus" }); - td80.DefaultDisplayPropertySet = - new PropertySetData(new[] { "CurrentSize", "MaximumSize", "Name", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td80; - - var td81 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_SCSIController", true); - td81.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "StatusInfo" }) { Name = "PSStatus" }); - td81.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DriverName", "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }) { Name = "DefaultDisplayPropertySet" }; - yield return td81; - - var td82 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_PerfRawData_PerfNet_Server", true); - td82.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "LogonPerSec", "LogonTotal", "Name", "ServerSessions", "WorkItemShortages" }) { Name = "DefaultDisplayPropertySet" }; - yield return td82; - - var td83 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Service", true); - td83.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status", "ExitCode" }) { Name = "PSStatus" }); - td83.Members.Add("PSConfiguration", - new PropertySetData(new[] { "DesktopInteract", "ErrorControl", "Name", "PathName", "ServiceType", "StartMode" }) { Name = "PSConfiguration" }); - td83.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ExitCode", "Name", "ProcessId", "StartMode", "State", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td83; - - var td84 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_Share", true); - td84.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Type", "Name" }) { Name = "PSStatus" }); - td84.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "Path", "Description" }) { Name = "DefaultDisplayPropertySet" }; - yield return td84; - - var td85 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_SoftwareElement", true); - td85.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "SoftwareElementState", "Name" }) { Name = "PSStatus" }); - td85.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Name", "Path", "SerialNumber", "SoftwareElementID", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td85; - - var td86 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_SoftwareFeature", true); - td86.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "InstallState", "LastUse" }) { Name = "PSStatus" }); - td86.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "IdentifyingNumber", "ProductName", "Vendor", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td86; - - var td87 = new TypeData(@"System.Management.ManagementObject#root\cimv2\WIN32_SoundDevice", true); - td87.Members.Add("PSStatus", - new PropertySetData(new[] { "ConfigManagerUserConfig", "Name", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td87.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Name", "Status", "StatusInfo" }) { Name = "DefaultDisplayPropertySet" }; - yield return td87; - - var td88 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_StartupCommand", true); - td88.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Command", "User", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td88; - - var td89 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_SystemAccount", true); - td89.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "SIDType", "Name", "Domain" }) { Name = "PSStatus" }); - td89.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Domain", "Name", "SID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td89; - - var td90 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_SystemDriver", true); - td90.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "State", "ExitCode", "Started", "ServiceSpecificExitCode" }) { Name = "PSStatus" }); - td90.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DisplayName", "Name", "State", "Status", "Started" }) { Name = "DefaultDisplayPropertySet" }; - yield return td90; - - var td91 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_SystemEnclosure", true); - td91.Members.Add("PSStatus", - new PropertySetData(new[] { "Tag", "Status", "Name", "SecurityStatus" }) { Name = "PSStatus" }); - td91.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Model", "LockPresent", "SerialNumber", "SMBIOSAssetTag", "SecurityStatus" }) { Name = "DefaultDisplayPropertySet" }; - yield return td91; - - var td92 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_SystemSlot", true); - td92.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "SlotDesignation" }) { Name = "PSStatus" }); - td92.DefaultDisplayPropertySet = - new PropertySetData(new[] { "SlotDesignation", "Tag", "SupportsHotPlug", "Status", "Shared", "PMESignal", "MaxDataWidth" }) { Name = "DefaultDisplayPropertySet" }; - yield return td92; - - var td93 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_TapeDrive", true); - td93.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Availability", "DeviceID", "NeedsCleaning", "StatusInfo" }) { Name = "PSStatus" }); - td93.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "Id", "Manufacturer", "Name", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td93; - - var td94 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_TemperatureProbe", true); - td94.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "CurrentReading", "DeviceID", "Name", "StatusInfo" }) { Name = "PSStatus" }); - td94.DefaultDisplayPropertySet = - new PropertySetData(new[] { "CurrentReading", "Name", "Description", "MinReadable", "MaxReadable", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td94; - - var td95 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_TimeZone", true); - td95.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Bias", "SettingID", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td95; - - var td96 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_UninterruptiblePowerSupply", true); - td96.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "DeviceID", "EstimatedChargeRemaining", "EstimatedRunTime", "Name", "StatusInfo", "TimeOnBackup" }) { Name = "PSStatus" }); - td96.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "EstimatedRunTime", "Name", "TimeOnBackup", "UPSPort", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td96; - - var td97 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_UserAccount", true); - td97.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Caption", "PasswordExpires" }) { Name = "PSStatus" }); - td97.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AccountType", "Caption", "Domain", "SID", "FullName", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td97; - - var td98 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_VoltageProbe", true); - td98.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "DeviceID", "Name", "NominalReading", "StatusInfo" }) { Name = "PSStatus" }); - td98.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Status", "Description", "CurrentReading", "MaxReadable", "MinReadable" }) { Name = "DefaultDisplayPropertySet" }; - yield return td98; - - var td99 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_VolumeQuotaSetting", true); - td99.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Element", "Setting" }) { Name = "DefaultDisplayPropertySet" }; - yield return td99; - - var td100 = new TypeData(@"System.Management.ManagementObject#root\cimv2\Win32_WMISetting", true); - td100.DefaultDisplayPropertySet = - new PropertySetData(new[] { "BuildVersion", "Caption", "DatabaseDirectory", "EnableEvents", "LoggingLevel", "SettingID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td100; - - var td101 = new TypeData(@"System.Management.ManagementObject", true); - td101.Members.Add("ConvertToDateTime", - new ScriptMethodData(@"ConvertToDateTime", GetScriptBlock(@"[System.Management.ManagementDateTimeConverter]::ToDateTime($args[0])"))); - td101.Members.Add("ConvertFromDateTime", - new ScriptMethodData(@"ConvertFromDateTime", GetScriptBlock(@"[System.Management.ManagementDateTimeConverter]::ToDmtfDateTime($args[0])"))); - yield return td101; - - Exception exception; - var securityDescriptorCommandsBaseType = Language.TypeResolver.ResolveType("Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase", out exception); - - var td102 = new TypeData(@"System.Security.AccessControl.ObjectSecurity", true); - td102.Members.Add("Path", new CodePropertyData("Path", GetMethodInfo(securityDescriptorCommandsBaseType, "GetPath"), null)); - td102.Members.Add("Owner", new CodePropertyData("Owner", GetMethodInfo(securityDescriptorCommandsBaseType, "GetOwner"), null)); - td102.Members.Add("Group", new CodePropertyData("Group", GetMethodInfo(securityDescriptorCommandsBaseType, "GetGroup"), null)); - td102.Members.Add("Access", new CodePropertyData("Access", GetMethodInfo(securityDescriptorCommandsBaseType, "GetAccess"), null)); - td102.Members.Add("Sddl", new CodePropertyData("Sddl", GetMethodInfo(securityDescriptorCommandsBaseType, "GetSddl"), null)); - td102.Members.Add("AccessToString", - new ScriptPropertyData(@"AccessToString", GetScriptBlock(@"$toString = """"; - $first = $true; - if ( ! $this.Access ) { return """" } - - foreach($ace in $this.Access) - { - if($first) - { - $first = $false; - } - else - { - $tostring += ""`n""; - } - - $toString += $ace.IdentityReference.ToString(); - $toString += "" ""; - $toString += $ace.AccessControlType.ToString(); - $toString += "" ""; - if($ace -is [System.Security.AccessControl.FileSystemAccessRule]) - { - $toString += $ace.FileSystemRights.ToString(); - } - elseif($ace -is [System.Security.AccessControl.RegistryAccessRule]) - { - $toString += $ace.RegistryRights.ToString(); - } - } - - return $toString;"), null)); - td102.Members.Add("AuditToString", - new ScriptPropertyData(@"AuditToString", GetScriptBlock(@"$toString = """"; - $first = $true; - if ( ! (& { Set-StrictMode -Version 1; $this.audit }) ) { return """" } - - foreach($ace in (& { Set-StrictMode -Version 1; $this.audit })) - { - if($first) - { - $first = $false; - } - else - { - $tostring += ""`n""; - } - - $toString += $ace.IdentityReference.ToString(); - $toString += "" ""; - $toString += $ace.AuditFlags.ToString(); - $toString += "" ""; - if($ace -is [System.Security.AccessControl.FileSystemAuditRule]) - { - $toString += $ace.FileSystemRights.ToString(); - } - elseif($ace -is [System.Security.AccessControl.RegistryAuditRule]) - { - $toString += $ace.RegistryRights.ToString(); - } - } - - return $toString;"), null)); - yield return td102; - - var td103 = new TypeData(@"Microsoft.PowerShell.Commands.HistoryInfo", true); - td103.DefaultKeyPropertySet = - new PropertySetData(new[] { "Id" }) { Name = "DefaultKeyPropertySet" }; - yield return td103; - - var td104 = new TypeData(@"System.Management.ManagementClass", true); - td104.Members.Add("Name", - new AliasPropertyData("Name", "__Class")); - yield return td104; - - var td105 = new TypeData(@"System.Management.Automation.Runspaces.PSSession", true); - td105.Members.Add("State", - new ScriptPropertyData(@"State", GetScriptBlock(@"$this.Runspace.RunspaceStateInfo.State"), null)); - td105.Members.Add("IdleTimeout", - new ScriptPropertyData(@"IdleTimeout", GetScriptBlock(@"$this.Runspace.ConnectionInfo.IdleTimeout"), null)); - td105.Members.Add("OutputBufferingMode", - new ScriptPropertyData(@"OutputBufferingMode", GetScriptBlock(@"$this.Runspace.ConnectionInfo.OutputBufferingMode"), null)); - td105.Members.Add("DisconnectedOn", - new ScriptPropertyData(@"DisconnectedOn", GetScriptBlock(@"$this.Runspace.DisconnectedOn"), null)); - td105.Members.Add("ExpiresOn", - new ScriptPropertyData(@"ExpiresOn", GetScriptBlock(@"$this.Runspace.ExpiresOn"), null)); - yield return td105; - - var td106 = new TypeData(@"System.Guid", true); - td106.Members.Add("Guid", - new ScriptPropertyData(@"Guid", GetScriptBlock(@"$this.ToString()"), null)); - yield return td106; - - var td107 = new TypeData(@"System.Management.Automation.Signature", true); - td107.SerializationDepth = 2; - yield return td107; - - var td108 = new TypeData(@"System.Management.Automation.Job", true); - td108.Members.Add("State", - new ScriptPropertyData(@"State", GetScriptBlock(@"$this.JobStateInfo.State.ToString()"), null)); - td108.SerializationMethod = "SpecificProperties"; - td108.SerializationDepth = 2; - td108.PropertySerializationSet = - new PropertySetData(new[] { "HasMoreData", "StatusMessage", "Location", "Command", "JobStateInfo", "InstanceId", "Id", "Name", "State", "ChildJobs", "PSJobTypeName", "PSBeginTime", "PSEndTime" }) { Name = "PropertySerializationSet" }; - yield return td108; - - var td109 = new TypeData(@"System.Management.Automation.JobStateInfo", true); - td109.SerializationDepth = 1; - yield return td109; - - var td110 = new TypeData(@"Deserialized.System.Management.Automation.JobStateInfo", true); - td110.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td110; - - var td111 = new TypeData(@"Microsoft.PowerShell.DeserializingTypeConverter", true); - td111.TypeConverter = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td111; - - var td112 = new TypeData(@"System.Net.Mail.MailAddress", true); - td112.SerializationDepth = 1; - yield return td112; - - var td113 = new TypeData(@"Deserialized.System.Net.Mail.MailAddress", true); - td113.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td113; - - var td114 = new TypeData(@"System.Globalization.CultureInfo", true); - td114.SerializationMethod = "SpecificProperties"; - td114.SerializationDepth = 1; - td114.PropertySerializationSet = - new PropertySetData(new[] { "LCID", "Name", "DisplayName", "IetfLanguageTag", "ThreeLetterISOLanguageName", "ThreeLetterWindowsLanguageName", "TwoLetterISOLanguageName" }) { Name = "PropertySerializationSet" }; - yield return td114; - - var td115 = new TypeData(@"Deserialized.System.Globalization.CultureInfo", true); - td115.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td115; - - var td116 = new TypeData(@"System.Management.Automation.PSCredential", true); - td116.SerializationDepth = 1; - yield return td116; - - var td117 = new TypeData(@"Deserialized.System.Management.Automation.PSCredential", true); - td117.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td117; - - var td118 = new TypeData(@"System.Management.Automation.PSPrimitiveDictionary", true); - td118.SerializationDepth = 1; - yield return td118; - - var td119 = new TypeData(@"Deserialized.System.Management.Automation.PSPrimitiveDictionary", true); - td119.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td119; - - var td120 = new TypeData(@"System.Management.Automation.SwitchParameter", true); - td120.SerializationDepth = 1; - yield return td120; - - var td121 = new TypeData(@"Deserialized.System.Management.Automation.SwitchParameter", true); - td121.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td121; - - var td122 = new TypeData(@"System.Management.Automation.PSListModifier", true); - td122.SerializationDepth = 2; - yield return td122; - - var td123 = new TypeData(@"Deserialized.System.Management.Automation.PSListModifier", true); - td123.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td123; - - var td124 = new TypeData(@"System.Security.Cryptography.X509Certificates.X509Certificate2", true); - td124.SerializationMethod = "SpecificProperties"; - td124.SerializationDepth = 1; - td124.PropertySerializationSet = - new PropertySetData(new[] { "RawData" }) { Name = "PropertySerializationSet" }; - yield return td124; - - var td125 = new TypeData(@"Deserialized.System.Security.Cryptography.X509Certificates.X509Certificate2", true); - td125.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td125; - - var td126 = new TypeData(@"System.Security.Cryptography.X509Certificates.X500DistinguishedName", true); - td126.SerializationMethod = "SpecificProperties"; - td126.SerializationDepth = 1; - td126.PropertySerializationSet = - new PropertySetData(new[] { "RawData" }) { Name = "PropertySerializationSet" }; - yield return td126; - - var td127 = new TypeData(@"Deserialized.System.Security.Cryptography.X509Certificates.X500DistinguishedName", true); - td127.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td127; - - var td128 = new TypeData(@"System.Security.AccessControl.RegistrySecurity", true); - td128.SerializationDepth = 1; - yield return td128; - - var td129 = new TypeData(@"Deserialized.System.Security.AccessControl.RegistrySecurity", true); - td129.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td129; - - var td130 = new TypeData(@"System.Security.AccessControl.FileSystemSecurity", true); - td130.SerializationDepth = 1; - yield return td130; - - var td131 = new TypeData(@"Deserialized.System.Security.AccessControl.FileSystemSecurity", true); - td131.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td131; - - var td132 = new TypeData(@"HelpInfo", true); - td132.SerializationDepth = 1; - yield return td132; - - var td133 = new TypeData(@"System.Management.Automation.PSTypeName", true); - td133.SerializationMethod = "String"; - td133.StringSerializationSource = "Name"; - yield return td133; - - var td134 = new TypeData(@"System.Management.Automation.ParameterMetadata", true); - td134.SerializationMethod = "SpecificProperties"; - td134.PropertySerializationSet = - new PropertySetData(new[] { "Name", "ParameterType", "Aliases", "IsDynamic", "SwitchParameter" }) { Name = "PropertySerializationSet" }; - yield return td134; - - var td135 = new TypeData(@"System.Management.Automation.CommandInfo", true); - td135.Members.Add("Namespace", - new AliasPropertyData("Namespace", "ModuleName") { IsHidden = true }); - td135.Members.Add("HelpUri", - new ScriptPropertyData(@"HelpUri", GetScriptBlock(@"$oldProgressPreference = $ProgressPreference - $ProgressPreference = 'SilentlyContinue' - try - { - [Microsoft.PowerShell.Commands.GetHelpCodeMethods]::GetHelpUri($this) - } - catch {} - finally - { - $ProgressPreference = $oldProgressPreference - }"), null)); - yield return td135; - - var td136 = new TypeData(@"System.Management.Automation.ParameterSetMetadata", true); - td136.Members.Add("Flags", - new CodePropertyData("Flags", GetMethodInfo(typeof(Microsoft.PowerShell.DeserializingTypeConverter), "GetParameterSetMetadataFlags"), null) { IsHidden = true }); - td136.SerializationMethod = "SpecificProperties"; - td136.PropertySerializationSet = - new PropertySetData(new[] { "Position", "Flags", "HelpMessage" }) { Name = "PropertySerializationSet" }; - yield return td136; - - var td137 = new TypeData(@"Deserialized.System.Management.Automation.ParameterSetMetadata", true); - td137.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td137; - - var td138 = new TypeData(@"Deserialized.System.Management.Automation.ExtendedTypeDefinition", true); - td138.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td138; - - var td139 = new TypeData(@"System.Management.Automation.ExtendedTypeDefinition", true); - td139.SerializationMethod = "SpecificProperties"; - td139.SerializationDepth = 1; - td139.DefaultDisplayPropertySet = - new PropertySetData(new[] { "TypeNames", "FormatViewDefinition" }) { Name = "DefaultDisplayPropertySet" }; - // Serialize TypeName for remote machines running earlier versions of PowerShell that do not - // expect TypeNames, it won't do the right thing when there are multiple type names, but - // it's better than having no type names. - td139.PropertySerializationSet = - new PropertySetData(new[] { "TypeName", "TypeNames", "FormatViewDefinition" }) { Name = "PropertySerializationSet" }; - yield return td139; - - var td140 = new TypeData(@"Deserialized.System.Management.Automation.FormatViewDefinition", true); - td140.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td140; - - var td141 = new TypeData(@"System.Management.Automation.FormatViewDefinition", true); - td141.Members.Add("InstanceId", - new CodePropertyData("InstanceId", GetMethodInfo(typeof(Microsoft.PowerShell.DeserializingTypeConverter), "GetFormatViewDefinitionInstanceId"), null) { IsHidden = true }); - td141.SerializationDepth = 1; - yield return td141; - - var td142 = new TypeData(@"Deserialized.System.Management.Automation.PSControl", true); - td142.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td142; - - var td143 = new TypeData(@"System.Management.Automation.PSControl", true); - td143.SerializationDepth = 1; - yield return td143; - - td = new TypeData(@"Deserialized.System.Management.Automation.PSControlGroupBy", true); - td.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td; - - td = new TypeData(@"System.Management.Automation.PSControlGroupBy", true); - td.SerializationDepth = 2; - yield return td; - - td = new TypeData(@"Deserialized.System.Management.Automation.EntrySelectedBy", true); - td.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td; - - td = new TypeData(@"System.Management.Automation.EntrySelectedBy", true); - td.SerializationDepth = 1; - yield return td; - - var td144 = new TypeData(@"Deserialized.System.Management.Automation.DisplayEntry", true); - td144.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td144; - - var td145 = new TypeData(@"System.Management.Automation.DisplayEntry", true); - td145.SerializationDepth = 1; - yield return td145; - - var td146 = new TypeData(@"Deserialized.System.Management.Automation.TableControlColumnHeader", true); - td146.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td146; - - var td147 = new TypeData(@"System.Management.Automation.TableControlColumnHeader", true); - td147.SerializationDepth = 1; - yield return td147; - - var td148 = new TypeData(@"Deserialized.System.Management.Automation.TableControlRow", true); - td148.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td148; - - var td149 = new TypeData(@"System.Management.Automation.TableControlRow", true); - td149.SerializationDepth = 1; - yield return td149; - - var td150 = new TypeData(@"Deserialized.System.Management.Automation.TableControlColumn", true); - td150.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td150; - - var td151 = new TypeData(@"System.Management.Automation.TableControlColumn", true); - td151.SerializationDepth = 1; - yield return td151; - - var td152 = new TypeData(@"Deserialized.System.Management.Automation.ListControlEntry", true); - td152.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td152; - - var td153 = new TypeData(@"System.Management.Automation.ListControlEntry", true); - td153.SerializationMethod = "SpecificProperties"; - td153.SerializationDepth = 1; - td153.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Items", "EntrySelectedBy" }) { Name = "DefaultDisplayPropertySet" }; - // Serialize SelectedBy for remote machines running earlier versions of PowerShell that do not - // expect EntrySelectedBy, it won't do the right thing when there are conditions in the EntrySelectedBy, - // but it's better than nothing. - td153.PropertySerializationSet = - new PropertySetData(new[] { "Items", "SelectedBy", "EntrySelectedBy" }) { Name = "PropertySerializationSet" }; - yield return td153; - - var td154 = new TypeData(@"Deserialized.System.Management.Automation.ListControlEntryItem", true); - td154.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td154; - - var td155 = new TypeData(@"System.Management.Automation.ListControlEntryItem", true); - td155.SerializationDepth = 1; - yield return td155; - - var td156 = new TypeData(@"Deserialized.System.Management.Automation.WideControlEntryItem", true); - td156.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td156; - - var td157 = new TypeData(@"System.Management.Automation.WideControlEntryItem", true); - td157.SerializationDepth = 1; - yield return td157; - - td = new TypeData(@"Deserialized.System.Management.Automation.CustomControlEntry", true); - td.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td; - - td = new TypeData(@"System.Management.Automation.CustomControlEntry", true); - td.SerializationDepth = 1; - yield return td; - - td = new TypeData(@"Deserialized.System.Management.Automation.CustomItemBase", true); - td.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td; - - td = new TypeData(@"System.Management.Automation.CustomItemBase", true); - td.SerializationDepth = 1; - yield return td; - - var td158 = new TypeData(@"System.Web.Services.Protocols.SoapException", true); - td158.Members.Add("PSMessageDetails", - new ScriptPropertyData(@"PSMessageDetails", GetScriptBlock(@"$this.Detail.""#text"""), null)); - yield return td158; - - var td159 = new TypeData(@"System.Management.Automation.ErrorRecord", true); - td159.Members.Add("PSMessageDetails", - new ScriptPropertyData(@"PSMessageDetails", GetScriptBlock(@"& { Set-StrictMode -Version 1; $this.Exception.InnerException.PSMessageDetails }"), null)); - yield return td159; - - var td160 = new TypeData(@"Deserialized.System.Enum", true); - td160.Members.Add("Value", - new ScriptPropertyData(@"Value", GetScriptBlock(@"$this.ToString()"), null)); - yield return td160; - - var td161 = new TypeData(@"Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData", true); - td161.SerializationDepth = 1; - yield return td161; - - var td162 = new TypeData(@"Deserialized.Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData", true); - td162.SerializationDepth = 1; - yield return td162; - - var td163 = new TypeData(@"System.Management.ManagementEventArgs", true); - td163.SerializationDepth = 2; - yield return td163; - - var td164 = new TypeData(@"Deserialized.System.Management.ManagementEventArgs", true); - td164.SerializationDepth = 2; - yield return td164; - - var td165 = new TypeData(@"System.Management.Automation.CallStackFrame", true); - td165.Members.Add("Command", - new ScriptPropertyData(@"Command", GetScriptBlock(@"if ($null -eq $this.InvocationInfo) { return $this.FunctionName } - - $commandInfo = $this.InvocationInfo.MyCommand - if ($null -eq $commandInfo) { return $this.InvocationInfo.InvocationName } - - if ($commandInfo.Name -ne """") { return $commandInfo.Name } - - return $this.FunctionName"), null)); - td165.Members.Add("Location", - new ScriptPropertyData(@"Location", GetScriptBlock(@"$this.GetScriptLocation()"), null)); - td165.Members.Add("Arguments", - new ScriptPropertyData(@"Arguments", GetScriptBlock(@"$argumentsBuilder = new-object System.Text.StringBuilder - - $null = $( - $argumentsBuilder.Append(""{"") - foreach ($entry in $this.InvocationInfo.BoundParameters.GetEnumerator()) - { - if ($argumentsBuilder.Length -gt 1) - { - $argumentsBuilder.Append(string.Empty, string.Empty); - } - - $argumentsBuilder.Append($entry.Key).Append(""="") - - if ($entry.Value) - { - $argumentsBuilder.Append([string]$entry.Value) - } - } - - foreach ($arg in $this.InvocationInfo.UnboundArguments.GetEnumerator()) - { - if ($argumentsBuilder.Length -gt 1) - { - $argumentsBuilder.Append(string.Empty, string.Empty) - } - - if ($arg) - { - $argumentsBuilder.Append([string]$arg) - } - else - { - $argumentsBuilder.Append('$null') - } - } - - $argumentsBuilder.Append('}'); - ) - - return $argumentsBuilder.ToString();"), null)); - yield return td165; - - var td166 = new TypeData(@"Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration", true); - td166.Members.Add("Permission", - new ScriptPropertyData(@"Permission", GetScriptBlock(@"trap { continue; } - - $private:sd = $null - $private:sd = new-object System.Security.AccessControl.CommonSecurityDescriptor $false,$false,$this.SecurityDescriptorSddl - if ($private:sd) - { - # reset trap - trap { } - - $private:dacls = """"; - $private:first = $true - $private:sd.DiscretionaryAcl | ForEach-Object { - trap { } - - if ($private:first) - { - $private:first = $false; - } - else - { - $private:dacls += "", "" - } - - $private:dacls += $_.SecurityIdentifier.Translate([System.Security.Principal.NTAccount]).ToString() + "" "" + $_.AceType - } # end of foreach - - return $private:dacls - }"), null)); - yield return td166; - - var td167 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PingStatus", true); - td167.Members.Add("IPV4Address", - new ScriptPropertyData(@"IPV4Address", GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } | Select-Object -first 1"), null)); - td167.Members.Add("IPV6Address", - new ScriptPropertyData(@"IPV6Address", GetScriptBlock(@"$iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetworkV6 } | Select-Object -first 1"), null)); - yield return td167; - - var td168 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Process", true); - td168.Members.Add("ProcessName", - new AliasPropertyData("ProcessName", "Name")); - td168.Members.Add("Handles", - new AliasPropertyData("Handles", "Handlecount")); - td168.Members.Add("VM", - new AliasPropertyData("VM", "VirtualSize")); - td168.Members.Add("WS", - new AliasPropertyData("WS", "WorkingSetSize")); - td168.Members.Add("Path", - new ScriptPropertyData(@"Path", GetScriptBlock(@"$this.ExecutablePath"), null)); - td168.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ProcessId", "Name", "HandleCount", "WorkingSetSize", "VirtualSize" }) { Name = "DefaultDisplayPropertySet" }; - yield return td168; - - var td169 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Msft_CliAlias", true); - td169.DefaultDisplayPropertySet = - new PropertySetData(new[] { "FriendlyName", "PWhere", "Target" }) { Name = "DefaultDisplayPropertySet" }; - yield return td169; - - var td170 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BaseBoard", true); - td170.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "PoweredOn" }) { Name = "PSStatus" }); - td170.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Model", "Name", "SerialNumber", "SKU", "Product" }) { Name = "DefaultDisplayPropertySet" }; - yield return td170; - - var td171 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BIOS", true); - td171.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "Caption", "SMBIOSPresent" }) { Name = "PSStatus" }); - td171.DefaultDisplayPropertySet = - new PropertySetData(new[] { "SMBIOSBIOSVersion", "Manufacturer", "Name", "SerialNumber", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td171; - - var td172 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BootConfiguration", true); - td172.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "SettingID", "ConfigurationPath" }) { Name = "PSStatus" }); - td172.DefaultDisplayPropertySet = - new PropertySetData(new[] { "BootDirectory", "Name", "SettingID", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td172; - - var td173 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_CDROMDrive", true); - td173.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "Drive", "ErrorCleared", "MediaLoaded", "NeedsCleaning", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td173.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Drive", "Manufacturer", "VolumeName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td173; - - var td174 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystem", true); - td174.Members.Add("PSStatus", - new PropertySetData(new[] { "AdminPasswordStatus", "BootupState", "ChassisBootupState", "KeyboardPasswordStatus", "PowerOnPasswordStatus", "PowerSupplyState", "PowerState", "FrontPanelResetStatus", "ThermalState", "Status", "Name" }) { Name = "PSStatus" }); - td174.Members.Add("POWER", - new PropertySetData(new[] { "Name", "PowerManagementCapabilities", "PowerManagementSupported", "PowerOnPasswordStatus", "PowerState", "PowerSupplyState" }) { Name = "POWER" }); - td174.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Domain", "Manufacturer", "Model", "Name", "PrimaryOwnerName", "TotalPhysicalMemory" }) { Name = "DefaultDisplayPropertySet" }; - yield return td174; - - var td175 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_PROCESSOR", true); - td175.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "CpuStatus", "CurrentVoltage", "DeviceID", "ErrorCleared", "ErrorDescription", "LastErrorCode", "LoadPercentage", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td175.Members.Add("PSConfiguration", - new PropertySetData(new[] { "AddressWidth", "DataWidth", "DeviceID", "ExtClock", "L2CacheSize", "L2CacheSpeed", "MaxClockSpeed", "PowerManagementSupported", "ProcessorType", "Revision", "SocketDesignation", "Version", "VoltageCaps" }) { Name = "PSConfiguration" }); - td175.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "DeviceID", "Manufacturer", "MaxClockSpeed", "Name", "SocketDesignation" }) { Name = "DefaultDisplayPropertySet" }; - yield return td175; - - var td176 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystemProduct", true); - td176.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Version" }) { Name = "PSStatus" }); - td176.DefaultDisplayPropertySet = - new PropertySetData(new[] { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td176; - - var td177 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/CIM_DataFile", true); - td177.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td177.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Compressed", "Encrypted", "Size", "Hidden", "Name", "Readable", "System", "Version", "Writeable" }) { Name = "DefaultDisplayPropertySet" }; - yield return td177; - - var td178 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DCOMApplication", true); - td178.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status" }) { Name = "PSStatus" }); - td178.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AppID", "InstallDate", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td178; - - var td179 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOP", true); - td179.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "ScreenSaverActive" }) { Name = "PSStatus" }); - td179.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "ScreenSaverActive", "ScreenSaverSecure", "ScreenSaverTimeout", "SettingID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td179; - - var td180 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOPMONITOR", true); - td180.Members.Add("PSConfiguration", - new PropertySetData(new[] { "DeviceID", "Name", "PixelsPerXLogicalInch", "PixelsPerYLogicalInch", "ScreenHeight", "ScreenWidth" }) { Name = "PSConfiguration" }); - td180.Members.Add("PSStatus", - new PropertySetData(new[] { "DeviceID", "IsLocked", "LastErrorCode", "Name", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td180.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "DisplayType", "MonitorManufacturer", "Name", "ScreenHeight", "ScreenWidth" }) { Name = "DefaultDisplayPropertySet" }; - yield return td180; - - var td181 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DeviceMemoryAddress", true); - td181.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "MemoryType" }) { Name = "PSStatus" }); - td181.DefaultDisplayPropertySet = - new PropertySetData(new[] { "MemoryType", "Name", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td181; - - var td182 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskDrive", true); - td182.Members.Add("PSStatus", - new PropertySetData(new[] { "ConfigManagerErrorCode", "LastErrorCode", "NeedsCleaning", "Status", "DeviceID", "StatusInfo", "Partitions" }) { Name = "PSStatus" }); - td182.Members.Add("PSConfiguration", - new PropertySetData(new[] { "BytesPerSector", "ConfigManagerUserConfig", "DefaultBlockSize", "DeviceID", "Index", "InstallDate", "InterfaceType", "MaxBlockSize", "MaxMediaSize", "MinBlockSize", "NumberOfMediaSupported", "Partitions", "SectorsPerTrack", "Size", "TotalCylinders", "TotalHeads", "TotalSectors", "TotalTracks", "TracksPerCylinder" }) { Name = "PSConfiguration" }); - td182.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Partitions", "DeviceID", "Model", "Size", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td182; - - var td183 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskQuota", true); - td183.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DiskSpaceUsed", "Limit", "QuotaVolume", "User" }) { Name = "DefaultDisplayPropertySet" }; - yield return td183; - - var td184 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DMAChannel", true); - td184.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td184.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AddressSize", "DMAChannel", "MaxTransferSize", "Name", "Port" }) { Name = "DefaultDisplayPropertySet" }; - yield return td184; - - var td185 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Environment", true); - td185.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "SystemVariable" }) { Name = "PSStatus" }); - td185.DefaultDisplayPropertySet = - new PropertySetData(new[] { "VariableValue", "Name", "UserName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td185; - - var td186 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Directory", true); - td186.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Compressed", "Encrypted", "Name", "Readable", "Writeable" }) { Name = "PSStatus" }); - td186.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Hidden", "Archive", "EightDotThreeFileName", "FileSize", "Name", "Compressed", "Encrypted", "Readable" }) { Name = "DefaultDisplayPropertySet" }; - yield return td186; - - var td187 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Group", true); - td187.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td187.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Domain", "Name", "SID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td187; - - var td188 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IDEController", true); - td188.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td188.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }) { Name = "DefaultDisplayPropertySet" }; - yield return td188; - - var td189 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IRQResource", true); - td189.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Caption", "Availability" }) { Name = "PSStatus" }); - td189.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Hardware", "IRQNumber", "Name", "Shareable", "TriggerLevel", "TriggerType" }) { Name = "DefaultDisplayPropertySet" }; - yield return td189; - - var td190 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ScheduledJob", true); - td190.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "JobId", "JobStatus", "ElapsedTime", "StartTime", "Owner" }) { Name = "PSStatus" }); - td190.DefaultDisplayPropertySet = - new PropertySetData(new[] { "JobId", "Name", "Owner", "Priority", "Command" }) { Name = "DefaultDisplayPropertySet" }; - yield return td190; - - var td191 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LoadOrderGroup", true); - td191.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td191.DefaultDisplayPropertySet = - new PropertySetData(new[] { "GroupOrder", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td191; - - var td192 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalDisk", true); - td192.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Availability", "DeviceID", "StatusInfo" }) { Name = "PSStatus" }); - td192.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "DriveType", "ProviderName", "FreeSpace", "Size", "VolumeName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td192; - - var td193 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogonSession", true); - td193.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AuthenticationPackage", "LogonId", "LogonType", "Name", "StartTime", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td193; - - var td194 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_CACHEMEMORY", true); - td194.Members.Add("ERROR", - new PropertySetData(new[] { "DeviceID", "ErrorCorrectType" }) { Name = "ERROR" }); - td194.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "DeviceID", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td194.Members.Add("PSConfiguration", - new PropertySetData(new[] { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status", "WritePolicy" }) { Name = "PSConfiguration" }); - td194.DefaultDisplayPropertySet = - new PropertySetData(new[] { "BlockSize", "CacheSpeed", "CacheType", "DeviceID", "InstalledSize", "Level", "MaxCacheSize", "NumberOfBlocks", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td194; - - var td195 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalMemoryConfiguration", true); - td195.Members.Add("PSStatus", - new PropertySetData(new[] { "AvailableVirtualMemory", "Name", "TotalVirtualMemory" }) { Name = "PSStatus" }); - td195.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "TotalVirtualMemory", "TotalPhysicalMemory", "TotalPageFileSpace" }) { Name = "DefaultDisplayPropertySet" }; - yield return td195; - - var td196 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PhysicalMemoryArray", true); - td196.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "Replaceable", "Location" }) { Name = "PSStatus" }); - td196.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Model", "Name", "MaxCapacity", "MemoryDevices" }) { Name = "DefaultDisplayPropertySet" }; - yield return td196; - - var td197 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_NetworkClient", true); - td197.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status" }) { Name = "PSStatus" }); - td197.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "InstallDate", "Manufacturer", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td197; - - var td198 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkLoginProfile", true); - td198.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Privileges", "Profile", "UserId", "UserType", "Workstations" }) { Name = "DefaultDisplayPropertySet" }; - yield return td198; - - var td199 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkProtocol", true); - td199.Members.Add("FULLXXX", - new PropertySetData(new[] { "ConnectionlessService", "Description", "GuaranteesDelivery", "GuaranteesSequencing", "InstallDate", "MaximumAddressSize", "MaximumMessageSize", "MessageOriented", "MinimumAddressSize", "Name", "PseudoStreamOriented", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }) { Name = "FULLXXX" }); - td199.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status", "SupportsBroadcasting", "SupportsConnectData", "SupportsDisconnectData", "SupportsEncryption", "SupportsExpeditedData", "SupportsFragmentation", "SupportsGracefulClosing", "SupportsGuaranteedBandwidth", "SupportsMulticasting", "SupportsQualityofService" }) { Name = "PSStatus" }); - td199.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "GuaranteesDelivery", "GuaranteesSequencing", "ConnectionlessService", "Status", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td199; - - var td200 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkConnection", true); - td200.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "ConnectionState", "Persistent", "LocalName", "RemoteName" }) { Name = "PSStatus" }); - td200.DefaultDisplayPropertySet = - new PropertySetData(new[] { "LocalName", "RemoteName", "ConnectionState", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td200; - - var td201 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapter", true); - td201.Members.Add("PSStatus", - new PropertySetData(new[] { "Availability", "Name", "Status", "StatusInfo", "DeviceID" }) { Name = "PSStatus" }); - td201.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ServiceName", "MACAddress", "AdapterType", "DeviceID", "Name", "NetworkAddresses", "Speed" }) { Name = "DefaultDisplayPropertySet" }; - yield return td201; - - var td202 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration", true); - td202.Members.Add("PSStatus", - new PropertySetData(new[] { "DHCPLeaseExpires", "Index", "Description" }) { Name = "PSStatus" }); - td202.Members.Add("DHCP", - new PropertySetData(new[] { "Description", "DHCPEnabled", "DHCPLeaseExpires", "DHCPLeaseObtained", "DHCPServer", "Index" }) { Name = "DHCP" }); - td202.Members.Add("DNS", - new PropertySetData(new[] { "Description", "DNSDomain", "DNSDomainSuffixSearchOrder", "DNSEnabledForWINSResolution", "DNSHostName", "DNSServerSearchOrder", "DomainDNSRegistrationEnabled", "FullDNSRegistrationEnabled", "Index" }) { Name = "DNS" }); - td202.Members.Add("IP", - new PropertySetData(new[] { "Description", "Index", "IPAddress", "IPConnectionMetric", "IPEnabled", "IPFilterSecurityEnabled" }) { Name = "IP" }); - td202.Members.Add("WINS", - new PropertySetData(new[] { "Description", "Index", "WINSEnableLMHostsLookup", "WINSHostLookupFile", "WINSPrimaryServer", "WINSScopeID", "WINSSecondaryServer" }) { Name = "WINS" }); - td202.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DHCPEnabled", "IPAddress", "DefaultIPGateway", "DNSDomain", "ServiceName", "Description", "Index" }) { Name = "DefaultDisplayPropertySet" }; - yield return td202; - - var td203 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTDomain", true); - td203.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "DomainName" }) { Name = "PSStatus" }); - td203.Members.Add("GUID", - new PropertySetData(new[] { "DomainName", "DomainGuid" }) { Name = "GUID" }); - td203.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ClientSiteName", "DcSiteName", "Description", "DnsForestName", "DomainControllerAddress", "DomainControllerName", "DomainName", "Roles", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td203; - - var td204 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTLogEvent", true); - td204.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Category", "CategoryString", "EventCode", "EventIdentifier", "TypeEvent", "InsertionStrings", "LogFile", "Message", "RecordNumber", "SourceName", "TimeGenerated", "TimeWritten", "Type", "UserName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td204; - - var td205 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTEventlogFile", true); - td205.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "LogfileName", "Name" }) { Name = "PSStatus" }); - td205.DefaultDisplayPropertySet = - new PropertySetData(new[] { "FileSize", "LogfileName", "Name", "NumberOfRecords" }) { Name = "DefaultDisplayPropertySet" }; - yield return td205; - - var td206 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OnBoardDevice", true); - td206.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Description" }) { Name = "PSStatus" }); - td206.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceType", "SerialNumber", "Enabled", "Description" }) { Name = "DefaultDisplayPropertySet" }; - yield return td206; - - var td207 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem", true); - td207.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td207.Members.Add("FREE", - new PropertySetData(new[] { "FreePhysicalMemory", "FreeSpaceInPagingFiles", "FreeVirtualMemory", "Name" }) { Name = "FREE" }); - td207.DefaultDisplayPropertySet = - new PropertySetData(new[] { "SystemDirectory", "Organization", "BuildNumber", "RegisteredUser", "SerialNumber", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td207; - - var td208 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileUsage", true); - td208.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "CurrentUsage" }) { Name = "PSStatus" }); - td208.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Name", "PeakUsage" }) { Name = "DefaultDisplayPropertySet" }; - yield return td208; - - var td209 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileSetting", true); - td209.DefaultDisplayPropertySet = - new PropertySetData(new[] { "MaximumSize", "Name", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td209; - - var td210 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskPartition", true); - td210.Members.Add("PSStatus", - new PropertySetData(new[] { "Index", "Status", "StatusInfo", "Name" }) { Name = "PSStatus" }); - td210.DefaultDisplayPropertySet = - new PropertySetData(new[] { "NumberOfBlocks", "BootPartition", "Name", "PrimaryPartition", "Size", "Index" }) { Name = "DefaultDisplayPropertySet" }; - yield return td210; - - var td211 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortResource", true); - td211.Members.Add("PSStatus", - new PropertySetData(new[] { "NetConnectionStatus", "Status", "Name", "StartingAddress", "EndingAddress" }) { Name = "PSStatus" }); - td211.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Name", "Alias" }) { Name = "DefaultDisplayPropertySet" }; - yield return td211; - - var td212 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortConnector", true); - td212.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "ExternalReferenceDesignator" }) { Name = "PSStatus" }); - td212.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Tag", "ConnectorType", "SerialNumber", "ExternalReferenceDesignator", "PortType" }) { Name = "DefaultDisplayPropertySet" }; - yield return td212; - - var td213 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Printer", true); - td213.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name" }) { Name = "PSStatus" }); - td213.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Location", "Name", "PrinterState", "PrinterStatus", "ShareName", "SystemName" }) { Name = "DefaultDisplayPropertySet" }; - yield return td213; - - var td214 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrinterConfiguration", true); - td214.Members.Add("PSStatus", - new PropertySetData(new[] { "DriverVersion", "Name" }) { Name = "PSStatus" }); - td214.DefaultDisplayPropertySet = - new PropertySetData(new[] { "PrintQuality", "DriverVersion", "Name", "PaperSize", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td214; - - var td215 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrintJob", true); - td215.Members.Add("PSStatus", - new PropertySetData(new[] { "Document", "JobId", "JobStatus", "Name", "PagesPrinted", "Status", "JobIdCopy", "Name" }) { Name = "PSStatus" }); - td215.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Document", "JobId", "JobStatus", "Owner", "Priority", "Size", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td215; - - var td216 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ProcessXXX", true); - td216.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "ProcessId" }) { Name = "PSStatus" }); - td216.Members.Add("MEMORY", - new PropertySetData(new[] { "Handle", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "Name", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "VirtualSize", "WorkingSetSize" }) { Name = "MEMORY" }); - td216.Members.Add("IO", - new PropertySetData(new[] { "Name", "ProcessId", "ReadOperationCount", "ReadTransferCount", "WriteOperationCount", "WriteTransferCount" }) { Name = "IO" }); - td216.Members.Add("STATISTICS", - new PropertySetData(new[] { "HandleCount", "Name", "KernelModeTime", "MaximumWorkingSetSize", "MinimumWorkingSetSize", "OtherOperationCount", "OtherTransferCount", "PageFaults", "PageFileUsage", "PeakPageFileUsage", "PeakVirtualSize", "PeakWorkingSetSize", "PrivatePageCount", "ProcessId", "QuotaNonPagedPoolUsage", "QuotaPagedPoolUsage", "QuotaPeakNonPagedPoolUsage", "QuotaPeakPagedPoolUsage", "ReadOperationCount", "ReadTransferCount", "ThreadCount", "UserModeTime", "VirtualSize", "WorkingSetSize", "WriteOperationCount", "WriteTransferCount" }) { Name = "STATISTICS" }); - td216.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ThreadCount", "HandleCount", "Name", "Priority", "ProcessId", "WorkingSetSize" }) { Name = "DefaultDisplayPropertySet" }; - yield return td216; - - var td217 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Product", true); - td217.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Version", "InstallState" }) { Name = "PSStatus" }); - td217.DefaultDisplayPropertySet = - new PropertySetData(new[] { "IdentifyingNumber", "Name", "Vendor", "Version", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td217; - - var td218 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuickFixEngineering", true); - td218.Members.Add("InstalledOn", - new ScriptPropertyData(@"InstalledOn", GetScriptBlock(@"if ([environment]::osversion.version.build -ge 7000) - { - # WMI team fixed the formatting issue related to InstalledOn - # property in Windows7 (to return string)..so returning the WMI's - # version directly - [DateTime]::Parse($this.psBase.CimInstanceProperties[""InstalledOn""].Value, [System.Globalization.DateTimeFormatInfo]::new()) - } - else - { - $orig = $this.psBase.CimInstanceProperties[""InstalledOn""].Value - $date = [datetime]::FromFileTimeUTC($(""0x"" + $orig)) - if ($date -lt ""1/1/1980"") - { - if ($orig -match ""([0-9]{4})([01][0-9])([012][0-9])"") - { - new-object datetime @([int]$matches[1], [int]$matches[2], [int]$matches[3]) - } - } - else - { - $date - } - }"), null)); - td218.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Description", "FixComments", "HotFixID", "InstallDate", "InstalledBy", "InstalledOn", "Name", "ServicePackInEffect", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td218; - - var td219 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuotaSetting", true); - td219.Members.Add("PSStatus", - new PropertySetData(new[] { "State", "VolumePath", "Caption" }) { Name = "PSStatus" }); - td219.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "DefaultLimit", "SettingID", "State", "VolumePath", "DefaultWarningLimit" }) { Name = "DefaultDisplayPropertySet" }; - yield return td219; - - var td220 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OSRecoveryConfiguration", true); - td220.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DebugFilePath", "Name", "SettingID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td220; - - var td221 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Registry", true); - td221.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "CurrentSize", "MaximumSize", "ProposedSize" }) { Name = "PSStatus" }); - td221.DefaultDisplayPropertySet = - new PropertySetData(new[] { "CurrentSize", "MaximumSize", "Name", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td221; - - var td222 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SCSIController", true); - td222.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "StatusInfo" }) { Name = "PSStatus" }); - td222.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DriverName", "Manufacturer", "Name", "ProtocolSupported", "Status", "StatusInfo" }) { Name = "DefaultDisplayPropertySet" }; - yield return td222; - - var td223 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PerfRawData_PerfNet_Server", true); - td223.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "LogonPerSec", "LogonTotal", "Name", "ServerSessions", "WorkItemShortages" }) { Name = "DefaultDisplayPropertySet" }; - yield return td223; - - var td224 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Service", true); - td224.Members.Add("PSStatus", - new PropertySetData(new[] { "Name", "Status", "ExitCode" }) { Name = "PSStatus" }); - td224.Members.Add("PSConfiguration", - new PropertySetData(new[] { "DesktopInteract", "ErrorControl", "Name", "PathName", "ServiceType", "StartMode" }) { Name = "PSConfiguration" }); - td224.DefaultDisplayPropertySet = - new PropertySetData(new[] { "ExitCode", "Name", "ProcessId", "StartMode", "State", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td224; - - var td225 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Share", true); - td225.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Type", "Name" }) { Name = "PSStatus" }); - td225.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Name", "Path", "Description" }) { Name = "DefaultDisplayPropertySet" }; - yield return td225; - - var td226 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareElement", true); - td226.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "SoftwareElementState", "Name" }) { Name = "PSStatus" }); - td226.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Name", "Path", "SerialNumber", "SoftwareElementID", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td226; - - var td227 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareFeature", true); - td227.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "InstallState", "LastUse" }) { Name = "PSStatus" }); - td227.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "IdentifyingNumber", "ProductName", "Vendor", "Version" }) { Name = "DefaultDisplayPropertySet" }; - yield return td227; - - var td228 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_SoundDevice", true); - td228.Members.Add("PSStatus", - new PropertySetData(new[] { "ConfigManagerUserConfig", "Name", "Status", "StatusInfo" }) { Name = "PSStatus" }); - td228.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Name", "Status", "StatusInfo" }) { Name = "DefaultDisplayPropertySet" }; - yield return td228; - - var td229 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_StartupCommand", true); - td229.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Command", "User", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td229; - - var td230 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemAccount", true); - td230.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "SIDType", "Name", "Domain" }) { Name = "PSStatus" }); - td230.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Caption", "Domain", "Name", "SID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td230; - - var td231 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemDriver", true); - td231.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Name", "State", "ExitCode", "Started", "ServiceSpecificExitCode" }) { Name = "PSStatus" }); - td231.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DisplayName", "Name", "State", "Status", "Started" }) { Name = "DefaultDisplayPropertySet" }; - yield return td231; - - var td232 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemEnclosure", true); - td232.Members.Add("PSStatus", - new PropertySetData(new[] { "Tag", "Status", "Name", "SecurityStatus" }) { Name = "PSStatus" }); - td232.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Manufacturer", "Model", "LockPresent", "SerialNumber", "SMBIOSAssetTag", "SecurityStatus" }) { Name = "DefaultDisplayPropertySet" }; - yield return td232; - - var td233 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemSlot", true); - td233.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "SlotDesignation" }) { Name = "PSStatus" }); - td233.DefaultDisplayPropertySet = - new PropertySetData(new[] { "SlotDesignation", "Tag", "SupportsHotPlug", "Status", "Shared", "PMESignal", "MaxDataWidth" }) { Name = "DefaultDisplayPropertySet" }; - yield return td233; - - var td234 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TapeDrive", true); - td234.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Availability", "DeviceID", "NeedsCleaning", "StatusInfo" }) { Name = "PSStatus" }); - td234.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "Id", "Manufacturer", "Name", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td234; - - var td235 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TemperatureProbe", true); - td235.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "CurrentReading", "DeviceID", "Name", "StatusInfo" }) { Name = "PSStatus" }); - td235.DefaultDisplayPropertySet = - new PropertySetData(new[] { "CurrentReading", "Name", "Description", "MinReadable", "MaxReadable", "Status" }) { Name = "DefaultDisplayPropertySet" }; - yield return td235; - - var td236 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TimeZone", true); - td236.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Bias", "SettingID", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td236; - - var td237 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UninterruptiblePowerSupply", true); - td237.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "DeviceID", "EstimatedChargeRemaining", "EstimatedRunTime", "Name", "StatusInfo", "TimeOnBackup" }) { Name = "PSStatus" }); - td237.DefaultDisplayPropertySet = - new PropertySetData(new[] { "DeviceID", "EstimatedRunTime", "Name", "TimeOnBackup", "UPSPort", "Caption" }) { Name = "DefaultDisplayPropertySet" }; - yield return td237; - - var td238 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UserAccount", true); - td238.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "Caption", "PasswordExpires" }) { Name = "PSStatus" }); - td238.DefaultDisplayPropertySet = - new PropertySetData(new[] { "AccountType", "Caption", "Domain", "SID", "FullName", "Name" }) { Name = "DefaultDisplayPropertySet" }; - yield return td238; - - var td239 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VoltageProbe", true); - td239.Members.Add("PSStatus", - new PropertySetData(new[] { "Status", "DeviceID", "Name", "NominalReading", "StatusInfo" }) { Name = "PSStatus" }); - td239.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Status", "Description", "CurrentReading", "MaxReadable", "MinReadable" }) { Name = "DefaultDisplayPropertySet" }; - yield return td239; - - var td240 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VolumeQuotaSetting", true); - td240.DefaultDisplayPropertySet = - new PropertySetData(new[] { "Element", "Setting" }) { Name = "DefaultDisplayPropertySet" }; - yield return td240; - - var td241 = new TypeData(@"Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_WMISetting", true); - td241.DefaultDisplayPropertySet = - new PropertySetData(new[] { "BuildVersion", "Caption", "DatabaseDirectory", "EnableEvents", "LoggingLevel", "SettingID" }) { Name = "DefaultDisplayPropertySet" }; - yield return td241; - - var td242 = new TypeData(@"Microsoft.Management.Infrastructure.CimClass", true); - td242.Members.Add("CimClassName", - new ScriptPropertyData(@"CimClassName", GetScriptBlock(@"[OutputType([string])] - param() - $this.PSBase.CimSystemProperties.ClassName"), null)); - yield return td242; - - var td243 = new TypeData(@"Microsoft.Management.Infrastructure.CimCmdlets.CimIndicationEventInstanceEventArgs", true); - td243.SerializationDepth = 1; - yield return td243; - - var td244 = new TypeData(@"System.Management.Automation.Breakpoint", true); - td244.SerializationDepth = 1; - yield return td244; - - var td245 = new TypeData(@"Deserialized.System.Management.Automation.Breakpoint", true); - td245.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td245; - - var td246 = new TypeData(@"System.Management.Automation.BreakpointUpdatedEventArgs", true); - td246.SerializationDepth = 2; - yield return td246; - - var td247 = new TypeData(@"Deserialized.System.Management.Automation.BreakpointUpdatedEventArgs", true); - td247.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td247; - - var td248 = new TypeData(@"System.Management.Automation.DebuggerCommand", true); - td248.SerializationDepth = 1; - yield return td248; - - var td249 = new TypeData(@"Deserialized.System.Management.Automation.DebuggerCommand", true); - td249.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td249; - - var td250 = new TypeData(@"System.Management.Automation.DebuggerCommandResults", true); - td250.SerializationDepth = 1; - yield return td250; - - var td251 = new TypeData(@"Deserialized.System.Management.Automation.DebuggerCommandResults", true); - td251.TargetTypeForDeserialization = typeof(Microsoft.PowerShell.DeserializingTypeConverter); - yield return td251; - - var td252 = new TypeData(@"System.Version#IncludeLabel", true); - td252.Members.Add("ToString", - new ScriptMethodData(@"ToString", GetScriptBlock(@" - $suffix = """" - if (![String]::IsNullOrEmpty($this.PSSemVerPreReleaseLabel)) - { - $suffix = ""-""+$this.PSSemVerPreReleaseLabel - } - - if (![String]::IsNullOrEmpty($this.PSSemVerBuildLabel)) - { - $suffix += ""+""+$this.PSSemVerBuildLabel - } - ""$($this.Major).$($this.Minor).$($this.Build)""+$suffix - "))); - yield return td252; - } - } -} diff --git a/src/powershell-unix/powershell-unix.csproj b/src/powershell-unix/powershell-unix.csproj index 5e5e9bb0c6..b815c87dfa 100644 --- a/src/powershell-unix/powershell-unix.csproj +++ b/src/powershell-unix/powershell-unix.csproj @@ -8,6 +8,7 @@ Exe true true + true linux-x64;osx-x64; diff --git a/src/powershell-win-core/powershell-win-core.csproj b/src/powershell-win-core/powershell-win-core.csproj index 8da925b560..462c5e0433 100644 --- a/src/powershell-win-core/powershell-win-core.csproj +++ b/src/powershell-win-core/powershell-win-core.csproj @@ -7,6 +7,7 @@ Exe true true + true win7-x86;win7-x64 Microsoft.PowerShell ..\..\assets\pwsh.manifest diff --git a/test/powershell/engine/ETS/TypeTable.Tests.ps1 b/test/powershell/engine/ETS/TypeTable.Tests.ps1 new file mode 100644 index 0000000000..deccc8c4a3 --- /dev/null +++ b/test/powershell/engine/ETS/TypeTable.Tests.ps1 @@ -0,0 +1,126 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +Describe "Built-in type information tests" -Tag "CI" { + BeforeAll { + $iss = [initialsessionstate]::CreateDefault2() + $rs = [runspacefactory]::CreateRunspace($iss) + $rs.Open() + + $ps = [powershell]::Create() + $ps.Runspace = $rs + $types = $ps.AddCommand("Get-TypeData").Invoke() + } + + AfterAll { + $ps.Dispose() + $rs.Dispose() + } + + It "Should have correct number of built-in type items in type table" { + $types.Count | Should -BeExactly ($IsWindows ? 273 : 271) + } + + It "Should have expected member info for 'System.Diagnostics.ProcessModule'" { + $typeData = $types | Where-Object TypeName -eq "System.Diagnostics.ProcessModule" + $typeData | Should -Not -BeNullOrEmpty + + $typeData.Members.Count | Should -BeExactly 6 + $typeData.Members['Size'] | Should -BeOfType "System.Management.Automation.Runspaces.ScriptPropertyData" + $typeData.Members['Size'].GetScriptBlock.ToString() | Should -BeExactly '$this.ModuleMemorySize / 1024' + $typeData.Members['Size'].SetScriptBlock | Should -BeNullOrEmpty + $typeData.Members['Size'].IsHidden | Should -BeFalse + $typeData.Members['Size'].Name | Should -Be "Size" + + $typeData.Members['Company'] | Should -BeOfType "System.Management.Automation.Runspaces.ScriptPropertyData" + $typeData.Members['Company'].GetScriptBlock.ToString() | Should -BeExactly '$this.FileVersionInfo.CompanyName' + $typeData.Members['Company'].SetScriptBlock | Should -BeNullOrEmpty + $typeData.Members['Company'].IsHidden | Should -BeFalse + $typeData.Members['Company'].Name | Should -Be "Company" + + $typeData.Members['FileVersion'] | Should -BeOfType "System.Management.Automation.Runspaces.ScriptPropertyData" + $typeData.Members['FileVersion'].GetScriptBlock.ToString() | Should -BeExactly '$this.FileVersionInfo.FileVersion' + $typeData.Members['FileVersion'].SetScriptBlock | Should -BeNullOrEmpty + $typeData.Members['FileVersion'].IsHidden | Should -BeFalse + $typeData.Members['FileVersion'].Name | Should -Be "FileVersion" + + $typeData.Members['ProductVersion'] | Should -BeOfType "System.Management.Automation.Runspaces.ScriptPropertyData" + $typeData.Members['ProductVersion'].GetScriptBlock.ToString() | Should -BeExactly '$this.FileVersionInfo.ProductVersion' + $typeData.Members['ProductVersion'].SetScriptBlock | Should -BeNullOrEmpty + $typeData.Members['ProductVersion'].IsHidden | Should -BeFalse + $typeData.Members['ProductVersion'].Name | Should -Be "ProductVersion" + + $typeData.Members['Description'] | Should -BeOfType "System.Management.Automation.Runspaces.ScriptPropertyData" + $typeData.Members['Description'].GetScriptBlock.ToString() | Should -BeExactly '$this.FileVersionInfo.FileDescription' + $typeData.Members['Description'].SetScriptBlock | Should -BeNullOrEmpty + $typeData.Members['Description'].IsHidden | Should -BeFalse + $typeData.Members['Description'].Name | Should -Be "Description" + + $typeData.Members['Product'] | Should -BeOfType "System.Management.Automation.Runspaces.ScriptPropertyData" + $typeData.Members['Product'].GetScriptBlock.ToString() | Should -BeExactly '$this.FileVersionInfo.ProductName' + $typeData.Members['Product'].SetScriptBlock | Should -BeNullOrEmpty + $typeData.Members['Product'].IsHidden | Should -BeFalse + $typeData.Members['Product'].Name | Should -Be "Product" + + $typeData.TypeConverter | Should -BeNullOrEmpty + $typeData.TypeAdapter | Should -BeNullOrEmpty + $typeData.IsOverride | Should -BeFalse + $typeData.SerializationMethod | Should -BeNullOrEmpty + $typeData.TargetTypeForDeserialization | Should -BeNullOrEmpty + $typeData.SerializationDepth | Should -Be 0 + $typeData.DefaultDisplayProperty | Should -BeNullOrEmpty + $typeData.InheritPropertySerializationSet | Should -BeFalse + $typeData.StringSerializationSource | Should -BeNullOrEmpty + $typeData.StringSerializationSourceProperty | Should -BeNullOrEmpty + $typeData.DefaultDisplayPropertySet | Should -BeNullOrEmpty + $typeData.DefaultKeyPropertySet | Should -BeNullOrEmpty + $typeData.PropertySerializationSet | Should -BeNullOrEmpty + } + + It "Should have expected member info for 'System.Management.Automation.ParameterSetMetadata'" { + $typeData = $types | Where-Object TypeName -eq "System.Management.Automation.ParameterSetMetadata" + $typeData | Should -Not -BeNullOrEmpty + + $typeData.Members.Count | Should -BeExactly 1 + $typeData.Members['Flags'] | Should -BeOfType "System.Management.Automation.Runspaces.CodePropertyData" + $typeData.Members['Flags'].IsHidden | Should -BeFalse + $typeData.Members['Flags'].Name | Should -Be "Flags" + + $typeData.TypeConverter | Should -BeNullOrEmpty + $typeData.TypeAdapter | Should -BeNullOrEmpty + $typeData.IsOverride | Should -BeFalse + $typeData.TargetTypeForDeserialization | Should -BeNullOrEmpty + $typeData.SerializationDepth | Should -Be 0 + $typeData.DefaultDisplayProperty | Should -BeNullOrEmpty + $typeData.InheritPropertySerializationSet | Should -BeFalse + $typeData.StringSerializationSource | Should -BeNullOrEmpty + $typeData.StringSerializationSourceProperty | Should -BeNullOrEmpty + $typeData.DefaultDisplayPropertySet | Should -BeNullOrEmpty + $typeData.DefaultKeyPropertySet | Should -BeNullOrEmpty + + $typeData.SerializationMethod | Should -BeExactly "SpecificProperties" + $typeData.PropertySerializationSet | Should -BeOfType "System.Management.Automation.Runspaces.PropertySetData" + [string]::Join(",", $typeData.PropertySerializationSet.ReferencedProperties) | Should -BeExactly "Position,Flags,HelpMessage" + } + + It "Should have expected member info for 'System.Management.Automation.JobStateEventArgs'" { + $typeData = $types | Where-Object TypeName -eq "System.Management.Automation.JobStateEventArgs" + $typeData | Should -Not -BeNullOrEmpty + + $typeData.Members.Count | Should -BeExactly 0 + + $typeData.TypeConverter | Should -BeNullOrEmpty + $typeData.TypeAdapter | Should -BeNullOrEmpty + $typeData.IsOverride | Should -BeFalse + $typeData.SerializationMethod | Should -BeNullOrEmpty + $typeData.TargetTypeForDeserialization | Should -BeNullOrEmpty + $typeData.DefaultDisplayProperty | Should -BeNullOrEmpty + $typeData.InheritPropertySerializationSet | Should -BeFalse + $typeData.StringSerializationSource | Should -BeNullOrEmpty + $typeData.StringSerializationSourceProperty | Should -BeNullOrEmpty + $typeData.DefaultDisplayPropertySet | Should -BeNullOrEmpty + $typeData.DefaultKeyPropertySet | Should -BeNullOrEmpty + + $typeData.SerializationDepth | Should -Be 2 + } +}