TLS.psm1
[CmdletBinding()] param() $baseName = [System.IO.Path]::GetFileNameWithoutExtension($PSCommandPath) $script:PSModuleInfo = Test-ModuleManifest -Path "$PSScriptRoot\$baseName.psd1" $script:PSModuleInfo | Format-List | Out-String -Stream | ForEach-Object { Write-Debug $_ } $scriptName = $script:PSModuleInfo.Name Write-Debug "[$scriptName] - Importing module" #region [functions] - [public] Write-Debug "[$scriptName] - [functions] - [public] - Processing folder" #region [functions] - [public] - [Get-TLSConfig] Write-Debug "[$scriptName] - [functions] - [public] - [Get-TLSConfig] - Importing" function Get-TLSConfig { <# .SYNOPSIS Retrieves the current TLS configuration or lists available TLS versions. .DESCRIPTION This function returns the currently configured TLS version used by .NET applications. If the -ListAvailable parameter is specified, it lists all available TLS versions supported. .EXAMPLE Get-TLSConfig Returns the currently configured TLS version. .EXAMPLE Get-TLSConfig -ListAvailable Lists all available TLS versions that can be configured. .LINK https://psmodule.io/TLS/Functions/Get-TLSConfig/ #> [OutputType(ParameterSetName = 'Default', [System.Net.SecurityProtocolType])] [OutputType(ParameterSetName = 'ListAvailable', [Array])] [CmdletBinding(DefaultParameterSetName = 'Default')] param( # List available TLS configurations [Parameter(ParameterSetName = 'ListAvailable')] [switch] $ListAvailable ) if ($ListAvailable) { return [enum]::GetValues([System.Net.SecurityProtocolType]) } return [System.Net.ServicePointManager]::SecurityProtocol } Write-Debug "[$scriptName] - [functions] - [public] - [Get-TLSConfig] - Done" #endregion [functions] - [public] - [Get-TLSConfig] #region [functions] - [public] - [Set-TLSConfig] Write-Debug "[$scriptName] - [functions] - [public] - [Set-TLSConfig] - Importing" function Set-TLSConfig { <# .SYNOPSIS Configures the system to enable specific TLS protocols. .DESCRIPTION The Set-TLSConfig function allows enabling one or more TLS protocols by modifying the system's SecurityProtocol settings. This function updates the current security protocol settings without removing existing ones. .EXAMPLE Set-TLSConfig -Protocol Tls12 Enables TLS 1.2 as a supported security protocol. .EXAMPLE Set-TLSConfig -Protocol Tls12, Tls13 Enables both TLS 1.2 and TLS 1.3 as supported security protocols. .LINK https://psmodule.io/TLS/Functions/Set-TLSConfig/ #> [OutputType([void])] [CmdletBinding(SupportsShouldProcess)] param( # The TLS protocol to enable [Parameter(Mandatory)] [System.Net.SecurityProtocolType[]] $Protocol ) foreach ($protocolItem in $Protocol) { Write-Verbose "Enabling $protocolItem" if ($PSCmdlet.ShouldProcess("Security Protocol to [$Protocol]", 'Set')) { [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor $protocolItem } } } Write-Debug "[$scriptName] - [functions] - [public] - [Set-TLSConfig] - Done" #endregion [functions] - [public] - [Set-TLSConfig] Write-Debug "[$scriptName] - [functions] - [public] - Done" #endregion [functions] - [public] #region Member exporter $exports = @{ Alias = '*' Cmdlet = '' Function = @( 'Get-TLSConfig' 'Set-TLSConfig' ) } Export-ModuleMember @exports #endregion Member exporter |