Public/Get-cChocoExEnvironment.ps1

function Get-cChocoExEnvironment {
    [CmdletBinding()]
    param(

    )

    process {
        $Ring = Get-cChocoExRing

        if (Test-isWinOS) {
            $OSEnv = 'WinOS'
        }
        if (Test-isWinOS.OOBE) {
            $OSEnv = 'OOBE'
        }
        if (Test-isWinPE) {
            $OSEnv = 'WinPE'
        }
        if (Test-IsWinSE) {
            $OSEnv = 'WinSE'
        }

        $LastReboot = Get-CimInstance -ClassName win32_operatingsystem | Select-Object -ExpandProperty lastbootuptime
        $Uptime = "{0:dd}d:{0:hh}h:{0:mm}m:{0:ss}s" -f (New-TimeSpan -Start $LastReboot -End (Get-Date))
        $ChocoVersion = Get-Item -Path (Join-Path $env:ChocolateyInstall 'choco.exe') -ErrorAction SilentlyContinue | Select-Object -ExpandProperty VersionInfo | Select-Object -ExpandProperty ProductVersion
        $VPNActive = Get-VPN -Active
        $TSEnv = Test-TSEnv
        $Win32_OperatingSystem = Get-CimInstance Win32_OperatingSystem

        $PSCustomObject = [PSCustomObject]@{
            OS                             = $Win32_OperatingSystem.Caption
            OSVersion                      = $Win32_OperatingSystem.Version
            OSEnvironment                  = $OSEnv
            ModuleBase                     = $Global:ModuleBase
            cChocoExDataFolder             = $Global:cChocoExDataFolder
            cChocoExConfigurationFolder    = $Global:cChocoExConfigurationFolder
            cChocoExTMPConfigurationFolder = $Global:cChocoExTMPConfigurationFolder
            ChocoInstallScriptUrl          = $env:ChocoInstallScriptUrl
            ChocoDownloadUrl               = $env:ChocoDownloadUrl
            cChocoExChocoConfig            = $env:cChocoExChocoConfig
            cChocoExSourcesConfig          = $env:cChocoExSourcesConfig
            cChocoExPackageConfig          = $env:cChocoExPackageConfig
            ChocoExFeatureConfig           = $env:cChocoExFeatureConfig
            LogPath                        = $Global:LogPath
            cChocoExMediaFolder            = $Global:cChocoExMediaFolder
            Ring                           = $Ring
            TSEnv                          = $TSEnv
            ChocolateyInstall              = $env:ChocolateyInstall
            ChocolateyVersion              = $ChocoVersion
            LastReboot                     = $LastReboot
            Uptime                         = $Uptime
            VPNActive                      = $VPNActive
        }
        return $PSCustomObject
    }
}