-
Notifications
You must be signed in to change notification settings - Fork 0
/
anyconnect.ps1
25 lines (23 loc) · 1.34 KB
/
anyconnect.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$outItems = @()
$netadapters = Get-NetAdapter | Select-Object *
if ($netadapters | Where-Object {( $_.ifDesc -match "Cisco Anyconnect") -and ($_.Status -eq "Up")}) {
Write-Host "!!! AnyConnect is Up !!!"
$adapter = $netadapters | Where-Object {$_.ifDesc -match "Cisco Anyconnect"}
Write-Host " * Setting Anyconnect Interface Metric."
$adapter | Set-NetIPInterface -InterfaceMetric 6000
Write-Host " * Getting DNS Servers from AnyConnect Connection."
$outItems += , $adapter | Get-DnsClientServerAddress | Select-Object -ExpandProperty ServerAddresses
} else {
Write-Host "!!! AnyConnect is Down !!!"
Write-Host " * Getting DNS Servers from Other Connections."
foreach($adapter in $netadapters) {
if (!($adapter | Where-Object {$_.ifDesc -match "Cisco Anyconnect"})) {
$outItems += , $adapter | Get-DnsClientServerAddress | Select-Object -ExpandProperty ServerAddresses
}
}
}
$dns_servers = $outItems | Sort-Object | Get-Unique
Set-Content -Path C:\Users\Public\resolv.conf -Value "# Generated by VPN fix on $(Get-Date -Format "dddd MM/dd/yyyy HH:mm K")"
Add-Content -Path C:\Users\Public\resolv.conf -Value ""
foreach($i in $dns_servers) { Add-Content -Path C:\Users\Public\resolv.conf -Value "nameserver $i" }
#Add-Content -Path C:\Users\Public\resolv.conf -Value "search rich.ciscolabs.com cisco.com"