Get-NordVPNTechnologyList
SYNOPSIS
Gets a list of the supported technologies of NordVPN servers.
SYNTAX
DefaultOperation (Default)
Get-NordVPNTechnologyList [-UpdateFallback] [<CommonParameters>]
Offline
Get-NordVPNTechnologyList [-Offline] [<CommonParameters>]
DESCRIPTION
Returns a list of all technologies that NordVPN servers support. By default, the required data is downloaded from the NordVPN web API and processed to produce a list of technology entries, each of which is a NordVPNTechnology object.
Please see About NordVPN-Servers Classes to view the complete structure of a technology entry.
EXAMPLES
Example 1
PS C:\> Get-NordVPNTechnologyList
ID Name Code Created Updated
-- ---- ---- ------- -------
1 IKEv2/IPSec ikev2 2017/03/21 12:00:24 2017/09/05 14:20:16
3 OpenVPN UDP openvpn_udp 2017/05/04 08:03:24 2017/05/09 19:27:37
5 OpenVPN TCP openvpn_tcp 2017/05/09 19:28:14 2017/05/09 19:28:14
7 Socks 5 socks 2017/05/09 19:28:57 2017/06/13 14:27:05
9 HTTP Proxy proxy 2017/05/09 19:29:09 2017/06/13 14:25:29
11 PPTP pptp 2017/05/09 19:29:16 2017/05/09 19:29:16
13 L2TP/IPSec l2tp 2017/05/09 19:29:26 2017/09/05 14:19:42
15 OpenVPN UDP Obfuscated openvpn_xor_udp 2017/05/26 14:04:04 2017/11/07 08:37:53
17 OpenVPN TCP Obfuscated openvpn_xor_tcp 2017/05/26 14:04:27 2017/11/07 08:38:16
19 HTTP CyberSec Proxy proxy_cybersec 2017/08/22 12:44:49 2017/08/22 12:44:49
21 HTTP Proxy (SSL) proxy_ssl 2017/10/02 12:45:14 2017/10/02 12:45:14
23 HTTP CyberSec Proxy (SSL) proxy_ssl_cybersec 2017/10/02 12:50:49 2017/10/02 12:50:49
26 IKEv2/IPSec IPv6 ikev2_v6 2018/09/18 13:35:16 2018/09/18 13:35:16
29 OpenVPN UDP IPv6 openvpn_udp_v6 2018/09/18 13:35:38 2018/09/18 13:35:38
32 OpenVPN TCP IPv6 openvpn_tcp_v6 2018/09/18 13:36:02 2018/09/18 13:36:02
35 Wireguard wireguard_udp 2019/02/14 14:08:43 2019/02/14 14:08:43
38 OpenVPN UDP TLS Crypt openvpn_udp_tls_crypt 2019/03/21 14:52:42 2019/03/21 14:52:42
41 OpenVPN TCP TLS Crypt openvpn_tcp_tls_crypt 2019/03/21 14:53:05 2019/03/21 14:53:05
42 OpenVPN UDP Dedicated openvpn_dedicated_udp 2019/09/19 14:49:18 2019/09/19 14:49:18
45 OpenVPN TCP Dedicated openvpn_dedicated_tcp 2019/09/19 14:49:54 2019/09/19 14:49:54
48 Skylark skylark 2019/10/28 13:29:37 2020/05/14 06:18:41
Displays a list of all compatible NordVPN server technologies, along with their names, short codes, and IDs.
Example 2
PS C:\> $allServers = Get-NordVPNServerList
PS C:\> Get-NordVPNTechnologyList | `
>> Format-Table FriendlyName, @{
>> Label = "No. Servers"
>> Expression = {
>> $techCode = $_.Code
>> ($allServers | Where-Object {$_.Technologies.Code -contains $techCode}).Count
>> }
>> } -AutoSize
FriendlyName No. Servers
------------ -----------
IKEv2/IPSec 4274
OpenVPN UDP 4492
OpenVPN TCP 4492
Socks 5 443
HTTP Proxy 1799
PPTP 0
L2TP/IPSec 0
OpenVPN UDP Obfuscated 473
OpenVPN TCP Obfuscated 473
HTTP CyberSec Proxy 1799
HTTP Proxy (SSL) 4273
HTTP CyberSec Proxy (SSL) 4273
IKEv2/IPSec IPv6 0
OpenVPN UDP IPv6 0
OpenVPN TCP IPv6 0
Wireguard 4230
OpenVPN UDP TLS Crypt 0
OpenVPN TCP TLS Crypt 0
OpenVPN UDP Dedicated 127
OpenVPN TCP Dedicated 127
Skylark 1
Displays a list of NordVPN supported server technologies, with the number of servers compatible with that technology. Notable is the use of a calculated property in Format-Table.
Example 3
PS C:\> $allServers = Get-NordVPNServerList
PS C:\> $numServers = $allServers.Count
PS C:\> (Get-NordVPNTechnologyList).GetEnumerator() | `
>> Format-Table FriendlyName, @{
>> Label = "% Server support"
>> Expression = {
>> $techCode = $_.Code
>> $numSupport = ($allServers | Where-Object {$_.Technologies.Code -contains $techCode}).Count
>> $numSupport / $numServers
>> }
>> FormatString = '{0,6:p2}'
>> } -AutoSize
FriendlyName % Server support
------------ ----------------
IKEv2/IPSec 86.07%
OpenVPN UDP 90.46%
OpenVPN TCP 90.46%
Socks 5 8.92%
HTTP Proxy 36.23%
OpenVPN UDP Obfuscated 9.52%
OpenVPN TCP Obfuscated 9.52%
HTTP CyberSec Proxy 36.23%
HTTP Proxy (SSL) 86.05%
HTTP CyberSec Proxy (SSL) 86.05%
Wireguard 85.18%
OpenVPN UDP Dedicated 2.56%
OpenVPN TCP Dedicated 2.56%
Skylark 0.02%
PPTP 0.00%
L2TP/IPSec 0.00%
IKEv2/IPSec IPv6 0.00%
OpenVPN UDP IPv6 0.00%
OpenVPN TCP IPv6 0.00%
OpenVPN UDP TLS Crypt 0.00%
OpenVPN TCP TLS Crypt 0.00%
Similar to example 2, except the percentage of servers that support each technology is being calculated. The technologies with no current support are also excluded from the list.
Here, the -f Format operator is used to take a decimal value and display a padded percentage to 2 d.p.
PARAMETERS
-Offline
Temporarily overrides the OfflineMode setting and uses the fallback file stored in NordVPN_Technologies.xml. This does not change the value of the setting but is useful when access to the web API is not available.
The fallback file can be updated when online with -UpdateFallback
.
Type: SwitchParameter
Parameter Sets: Offline
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-UpdateFallback
Passing this switch causes the function to update the
NordVPN_Technologies.xml fallback file, using the data retrieved from the
NordVPN web API or cache. This functionality cannot be used when OfflineMode is
enabled or the -Offline
switch parameter is passed.
Type: SwitchParameter
Parameter Sets: DefaultOperation
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
INPUTS
None
OUTPUTS
NordVPNTechnologyList
NOTES
The module utilises a group cache to reduce API calls.
Further calls after the initial download will retrieve data from a local cache
of the group list until the number of seconds defined with
Set-NordVPNTechnologyCacheLifetime
(default: 600s) has passed, after which
the cache will be updated using the API.
To force downloading from the API, run Clear-NordVPNTechnologyCache
first.
If the module is configured to only use the fallback files, with the command
Set-NordVPNModuleSetting OfflineMode 1
, the technology list will be retrieved
from NordVPN_Technologies.xml in the module directory. This is useful for
offline environments.
Use Set-NordVPNModuleSetting OfflineMode 0
to restore web API usage.
As the list returned is a custom class, in order to pass it through the
pipeline, you should use the GetEnumerator()
method, e.g (Get-NordVPNTechnologyList).GetEnumerator() | ...