The `New-Object` cmdlet is basically* [legacy](https://learn.microsoft.com/powershell/scripting/learn/deep-dives/everything-about-pscustomobject?view=powershell-7.4#legacy-approach). Since PowerShell V3.0 (12 years ago), PowerShell supports type accelerators which perform much better, see: [PowerShell scripting performance considerations / object creation](https://learn.microsoft.com/powershell/scripting/dev-cross-plat/performance/script-authoring-considerations?view=powershell-7.4#object-creation). *) Exceptions left there (e.g. with the use of the `[-ComObject] <String>` parameter) Therefore I think that it makes sense to have a `AvoidNewObjectCmdlet` rule. related: [Avoid New-Object Hashtable `#60`](https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/60)