Public/Test-IsNetworkDomainAuthenticated.ps1

function Test-IsNetworkDomainAuthenticated {
    <#
    .SYNOPSIS
        Функция проверяет, подключн ли узел к доменной сети.
    .DESCRIPTION
        Функция проверяет атрибут NetworkCategory у всех сетевых адаптеров, чтобы определить, подключен ли узел к доменной сети.
    .EXAMPLE
        PS C:\> Test-IsNetworkDomainAuthenticated
        Вернет True, если обнаружено подключение к оменной сети и False - если нет.
    .INPUTS
        Функция не принимает параметров.
    .OUTPUTS
        Возвращает True или False.
    .NOTES
        Функция создана для использования в скриптах, работа которых возможна только в домееной сети, но они при этом используются на ноутбуках, которые могут оказаться за пределами сети.
    #>

    [CmdletBinding()]
    [OutputType([System.Boolean])]
    param (

    )

    begin {
        $Result = $false
    }

    process {
        try {
            if ($IsLinux) {
                throw [System.Configuration.ConfigurationException]::New('This operation system does not supported.')
            }
            Get-NetConnectionProfile | ForEach-Object -Process {
                if ($PSItem.NetworkCategory -eq 'DomainAuthenticated') {
                    $Result = $true
                }
            }
        }
        catch {
            Write-Error -Exception $PSItem.Exception
            $Result = $false
        }
    }

    end {
        return $Result
    }
}