Защо Get-VpnConnection пропуска някои VPN профили в Windows
Get-VpnConnection отговаря на по-тесен въпрос, отколкото подсказва името му: едно вградено хранилище, един обхват наведнъж и никакъв изглед към VPN клиенти на трети страни.
Въведете Get-VpnConnection, не получите нищо обратно и разследването обикновено спира дотук. Този празен изход се чете като доказателство, че машината изобщо няма VPN, дори когато тунел пренася трафик. Командата е наред; предположението какво инвентаризира тя не е. Тя чете едно вградено хранилище в един обхват и не знае нищо за клиенти, които държат собствени профили.
Едно вградено хранилище на извикване
Започнете с голото извикване, което е насочено към профилите, принадлежащи на влязлия в системата акаунт. Това е извикването, което повечето хора стартират първо:
Get-VpnConnection
Всеки върнат обект носи Name, ServerAddress, TunnelType и ConnectionStatus и тези четири полета са достатъчни, за да различите два записа в билет. Профилът може да стои изключен с месеци и пак да бъде в списъка, защото обектът описва запазена конфигурация, а не жив трафик. Празен резултат тук означава, че хранилището за отделния потребител не е държало нищо за този акаунт. Това е много по-малко твърдение от това, което хората обикновено четат в него.
Телефонният указател за всички потребители изисква собствена заявка
Профилите, които обслужват всеки акаунт, живеят в отделен списък и извикването по подразбиране никога не го чете. Вие изисквате това хранилище изрично:
Get-VpnConnection -AllUserConnection
Когато сесията няма правата, очаквайте грешка за отказан достъп, а не празен резултат, и третирайте двата изхода различно: единият означава, че не ви е позволено да гледате, другият означава, че нищо не е запазено. Отбележете обхвата до всяко име, докато изходът е пред вас, защото по-късна команда няма да ви напомни кое хранилище е запитвала. Разрешенията са обичайната причина колега да вижда профил, който вие не можете. Наборите от параметри са документирани на справочната страница на Get-VpnConnection, включително кои превключватели принадлежат към кой набор.
Същото име, две различни хранилища
Името на профила е уникално в неговото хранилище, а не в цялата машина, затова списъците за отделния потребител и за всички потребители могат всеки да държи профил с име Office. Двата записа може да сочат към различни сървъри, да използват различни типове тунели и да носят различни идентификационни данни. Само един от тях е записът, който потребителят щраква двукратно. Запишете обхвата, преди да докоснете който и да е от тях.
Изтриването на копието, което никой не стартира, изглежда безвредно в прозорец за промяна. То се превръща в обаждане до поддръжката, когато прекият път на потребителя спре да работи.
Клиенти, които никога не докосват вградения списък
Профил на OpenVPN или WireGuard, импортиран в клиент на доставчик, живее в собствената конфигурация на този клиент, така че никога не става вграден запис в Windows. Клиентът управлява собствена услуга, държи собствен списък и прекарва трафика през собствения си адаптер. Нищо от това не е това, което командата съобщава, и никакъв превключвател на обхват няма да го накара да се появи. Една машина може да има три работещи тунела и празен вграден списък.
Когато вместо това ви трябва изгледът на адаптерите, заявете адаптерите. Интерфейсите на доставчиците се именуват сами, затова съпоставете фрагмент, а не точен низ:
Get-NetAdapter | Where-Object InterfaceDescription -match 'WireGuard|OpenVPN|TAP'
Вградените профили, създадени на ръка, се озовават във файла на телефонния указател под потребителския профил, а еквивалентите за всички потребители седят в копието за цялата машина. Ето защо копирането на хранилището с профили на един потребител в друг акаунт рядко възпроизвежда същия списък. Файлът обяснява откъде е дошла заблудена вградена връзка. Той не казва нищо за хранилището на клиент на доставчик.
Какво да запишете, преди да премахнете профил
Евтината застраховка е бележка с пет полета: име, обхват, адрес на сървъра, състояние и точния текст на грешката от опита на потребителя. Добавете клиента, който те действително стартират, защото тази подробност решава дали вграденият запис има значение изобщо. Без нея правилното изтриване пак изглежда като причина за следващия отказ. Пазете бележката в билета, а не в прозорец за чат.
Премахването е една команда и тя изтрива конфигурация, вместо да я деактивира. Стартирайте я само след като тази бележка съществува:
Remove-VpnConnection -Name "Office" -Force
Добавете -AllUserConnection, когато целта седи в хранилището за всички потребители, и първо запазете одобрения източник на конфигурация някъде другаде. След това се свържете отново веднъж и прочетете таблицата с маршрути, защото списъкът доказва само, че конфигурацията е запазена. Дали трафикът стига до сървъра, е отделен въпрос, на който никакво количество изход от Get-VpnConnection няма да отговори. Ако потребителят все още се проваля след чисто повторно добавяне, профилът никога не е бил проблемът.