webinar-check: проверка ПК под МТС Линк

This commit is contained in:
2026-09-07 06:29:48 +00:00
parent 4a588413fa
commit 354878ea0b

30
webinar-check.ps1 Normal file
View File

@@ -0,0 +1,30 @@
# Проверка ПК под вебинары МТС Линк (ex-Webinar.ru). Запуск: PowerShell от админа, Set-ExecutionPolicy Bypass -Scope Process
# Что проверяет: DNS, TCP 443 к серверам, UDP наружу (STUN 3478), файрвол Windows, версии браузеров, наличие камеры/микрофона, VPN/прокси.
$ErrorActionPreference='Continue'
function Stun($h,$p){
try{ $u=New-Object Net.Sockets.UdpClient; $u.Client.ReceiveTimeout=3000
$req=[byte[]](0,1,0,0,0x21,0x12,0xA4,0x42)+[byte[]](1..12|%{Get-Random -Max 256})
$u.Connect($h,$p); [void]$u.Send($req,$req.Length)
$ep=New-Object Net.IPEndPoint([Net.IPAddress]::Any,0); $r=$u.Receive([ref]$ep); $u.Close()
if($r.Length -ge 20 -and $r[0] -eq 1 -and $r[1] -eq 1){"OK ($($r.Length) b)"}else{"odd reply"} }catch{"NO REPLY"} }
function Tcp($h,$p){ $c=New-Object Net.Sockets.TcpClient; $ar=$c.BeginConnect($h,$p,$null,$null)
$ok=$ar.AsyncWaitHandle.WaitOne(3000,$false); $r= if($ok -and $c.Connected){'OPEN'}else{'CLOSED'}; $c.Close(); $r }
"=== DNS ==="; foreach($h in 'my.mts-link.ru','events.webinar.ru','mts-link.ru'){ "$h -> $(([Net.Dns]::GetHostAddresses($h)|%{$_.IPAddressToString}) -join ',')" }
"=== TCP 443 ==="; foreach($h in 'my.mts-link.ru','events.webinar.ru','37.130.193.14','185.45.80.10'){ "$h -> $(Tcp $h 443)" }; "my.mts-link.ru:5349 -> $(Tcp 'my.mts-link.ru' 5349)"
"=== TCP 80 ==="; "my.mts-link.ru -> $(Tcp my.mts-link.ru 80)"
"=== UDP наружу (STUN) ==="; "stun.cloudflare.com:3478 -> $(Stun 'stun.cloudflare.com' 3478)"
"=== Файрвол Windows (нужно: Outbound = AllowOutbound) ==="; netsh advfirewall show allprofiles | findstr /i "Profile State Outbound"
"=== Прокси/VPN ==="; netsh winhttp show proxy | findstr /i proxy
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | select ProxyEnable,ProxyServer | fl
Get-NetAdapter | ? Status -eq Up | select Name,InterfaceDescription,LinkSpeed | ft -auto
"=== Антивирус ==="; Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | select displayName | ft -auto
"=== Браузеры ==="
foreach($e in @("$env:ProgramFiles\Google\Chrome\Application\chrome.exe","${env:ProgramFiles(x86)}\Google\Chrome\Application\chrome.exe","$env:LOCALAPPDATA\Yandex\YandexBrowser\Application\browser.exe","$env:ProgramFiles\Mozilla Firefox\firefox.exe","${env:ProgramFiles(x86)}\Microsoft\Edge\Application\msedge.exe")){ if(Test-Path $e){ "$e -> $((Get-Item $e).VersionInfo.ProductVersion)" } }
"=== Камера / микрофон / звук ==="
Get-PnpDevice -Class Camera,Image -Status OK -ea 0 | select FriendlyName | ft -auto
Get-PnpDevice -Class AudioEndpoint -Status OK -ea 0 | select FriendlyName | ft -auto
"Доступ приложений к камере: $((Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam' -ea 0).Value)"
"Доступ приложений к микрофону: $((Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone' -ea 0).Value)"
"=== ОЗУ ==="; $os=Get-CimInstance Win32_OperatingSystem; "Всего {0:N1} ГБ, свободно {1:N1} ГБ" -f ($os.TotalVisibleMemorySize/1MB),($os.FreePhysicalMemory/1MB)
"`nФинал: открыть в браузере сотрудницы https://my.mts-link.ru → тест «Проверка подключения/оборудования» в комнате вебинара."