Task.FromResult(OperatingSystem.IsWindowsVersionAtLeast(6, 1));     // At least Windows 7.

        private DismSession GetDismSession()
        {
            if (disposed)
            {
                throw new ObjectDisposedException(nameof(WindowsFeatureSoftwareProvider));
            }

            if (session == null)
            {
                DismApi.Initialize(DismLogLevel.LogErrors);

                session = DismApi.OpenOnlineSessionEx(new DismSessionOptions
                {
                    ThrowExceptionOnRebootRequired = false
                });
            }

            return(session);
        }
        private async Task <DismSession> GetDismSessionAsync()
        {
            if (disposed)
            {
                throw new ObjectDisposedException(nameof(WindowsFeatureManager));
            }

            if (session == null)
            {
                await operatingSystem.ElevateAsync();

                DismApi.Initialize(DismLogLevel.LogErrors);

                session = DismApi.OpenOnlineSessionEx(new DismSessionOptions
                {
                    ThrowExceptionOnRebootRequired = false
                });
            }

            return(session);
        }