Files
scripts/webinar-check.ps1

31 lines
3.5 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Проверка ПК под вебинары МТС Линк (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 → тест «Проверка подключения/оборудования» в комнате вебинара."