diff --git a/webinar-check.ps1 b/webinar-check.ps1 new file mode 100644 index 0000000..5a2ebf5 --- /dev/null +++ b/webinar-check.ps1 @@ -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 → тест «Проверка подключения/оборудования» в комнате вебинара."