При подключении к закрытой сети (например, к бесплатному Wi-Fi в аэропорту) сеть обычно автоматически открывает URL-адрес своего авторизованного портала в браузере. Как можно перехватить этот URL-адрес с помощью Powershell?
Предыстория: я использую DNScrypt-Proxy для шифрования своего DNS-трафика, но он часто прерывает запросы портала авторизации. Я пишу сценарий Powershell, чтобы определить, когда мой компьютер пытается подключиться к сети, окруженной стеной, и временно отключить DNScrypt-proxy, чтобы разрешить запрос портала. На самом деле я хотел бы открыть URL-адрес Captive Portal в окне браузера, отличном от используемого по умолчанию, и чтобы сделать это программно, мне нужно иметь возможность перехватывать* URL-адрес, который пытается открыть сеть. (* Нет необходимости на 100%, чтобы URL-адрес не проходил в моем браузере по умолчанию, так как я всегда могу закрыть вкладку браузера. Было бы чище, если бы это было не так.)
Я подозреваю, что это связано с перехватом пакетов, но на самом деле я совсем не знаком с вещами, связанными с сетью. Простые решения, особенно те, которые не требуют внешних программ, таких как Wireshark, предпочтительнее. Спасибо!
РЕДАКТИРОВАТЬ: я нашел этот код, который не перехватывает запрос (я не я не знаю, какие средства использует сеть авторизации, чтобы указать браузеру по умолчанию открыть URL-адрес, поэтому я даже не знаю, с чего начать расследование), но предположительно она извлекает URL-адреса открытых в данный момент вкладок, чего было бы достаточно. Однако, когда я попробовал, это не сработало, и я понятия не имею, почему. (Примечание: я использую Firefox в Windows 10.)
$ShellWindows = (New-Object -ComObject Shell.Application).Windows()
($shellwindows | ? {$_.locationurl -like "http*"}).locationURL