protected override void BeginProcessing()
 {
     if (PlatformData == null || PlatformData.Length == 0)
     {
         using (SMA.PowerShell pwsh = SMA.PowerShell.Create())
             using (var platformInfoCollector = new PlatformInformationCollector(pwsh))
             {
                 PlatformData = new PlatformData[] { platformInfoCollector.GetPlatformData() };
             }
     }
 }
        protected override void EndProcessing()
        {
            var platformData = new PlatformData();

            using (var pwsh = System.Management.Automation.PowerShell.Create())
                using (var platformDataCollector = new PlatformInformationCollector(pwsh))
                {
                    platformData.Dotnet          = DotNet ?? platformDataCollector.GetDotNetData();
                    platformData.OperatingSystem = OperatingSystem ?? platformDataCollector.GetOperatingSystemData();
                    platformData.PowerShell      = PowerShell ?? platformDataCollector.GetPowerShellData();
                }

            WriteObject(platformData);
        }