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