Public/Get-PSEnvironment.ps1

Function Get-PSEnvironment {
    [CmdletBinding()]
    param(

        [Parameter(Mandatory=$false)][ValidateNotNullOrEmpty()]
        [String]$LocalPackageFolder = ".\lib"         # Where to find local packages


# [Parameter(Mandatory=$false)][ValidateNotNullOrEmpty()]
# [Switch]$DoNotCheckLocalPackages = $false # Flag to log warnings, but not put redirect to the host

    )

    process {

        # Update background job to gather modules and global packages
        Update-BackgroundJob

        # Check local lib folder
        $libPathToCheck = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($LocalPackageFolder)
        Write-Verbose "Checking path '$( $libPathToCheck )' for local packages"
        If ( (Test-Path -Path $libPathToCheck) -eq $true ) {
            $localPackages = PackageManagement\Get-Package -Destination $LocalPackageFolder
            Write-Verbose "Found $( $localPackages.Count ) local packages"
        }

        [Ordered]@{
            "PSVersion"           = $Script:psVersion
            "PSEdition"           = $Script:psEdition
            "OS"                  = $Script:os
            #Platform = $Script:platform
            "IsCore"              = $Script:isCore
            "Architecture"        = $Script:architecture
            "CurrentRuntime"      = Get-CurrentRuntimeId
            "Is64BitOS"           = $Script:is64BitOS
            "Is64BitProcess"      = $Script:is64BitProcess
            "ExecutingUser"       = $Script:executingUser
            "IsElevated"          = $Script:isElevated
            "RuntimePreference"   = $Script:runtimePreference -join ', '
            "FrameworkPreference" = $Script:frameworkPreference -join ', '
            "PackageManagement"   = $Script:packageManagement
            "PowerShellGet"       = $Script:powerShellGet
            "VcRedist"            = $Script:vcredist
            "InstalledModules"    = $Script:installedModules
            "InstalledGlobalPackages" = $Script:installedGlobalPackages
            "InstalledLocalPackages" = $localPackages
        }

    }

}