public/Set-NetConnectionPrivate.ps1

function Set-NetConnectionPrivate {
    <#
    .SYNOPSIS
        Set IPv4 network connections to "private"
    .DESCRIPTION
        Set IPv4 network connections to private profile state, or list
        current IPv4 network connections and their current profile states
    .EXAMPLE
        Set-NetConnectionPrivate
    .LINK
        https://github.com/Skatterbrainz/helium/blob/master/docs/Set-NetConnectionPrivate.md
    #>

    [CmdletBinding()]
    param (
        [parameter()][switch]$Show
    )
    try {
        if ($PSVersionTable.Platform -eq 'Unix') { throw "Not supported on Linux systems" }
        if (!$Show) {
            $connections = @(Get-NetConnectionProfile | where {$_.IPv4Connectivity -ne "NoTraffic" -and $_.NetworkCategory -ne "Private"})
            if ($connections.Count -gt 0) {
                $conns = @($connections | Out-GridView -Title "Select Profiles to Set as Private" -OutputMode Multiple)
                if ($conns.Count -gt 0) {
                    foreach ($conn in $conns) {
                        try {
                            Write-Host "Setting profile to private: $($conn.Name)"
                            Set-NetConnectionProfile -InterfaceIndex $conn.InterfaceIndex -NetworkCategory Private -ErrorAction Stop
                        } catch {
                            Write-Error $_.Exception.Message
                        }
                    }
                }
            } else {
                Write-Host "No connection profiles are active which are not already private"
            }
        } else {
            Get-NetConnectionProfile
        }
    } catch {
        Write-Error $_.Exception.Message
    }
}