From 8a62a60005cfcce23cc0d67c430b434c0e606b6a Mon Sep 17 00:00:00 2001 From: smolkik_adm Date: Thu, 3 Sep 2026 03:13:57 +0000 Subject: [PATCH] update agents_ip.ps1 --- agents_ip.ps1 | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/agents_ip.ps1 b/agents_ip.ps1 index 7e80c34..d04a554 100644 --- a/agents_ip.ps1 +++ b/agents_ip.ps1 @@ -1,6 +1,5 @@ $BASE_URL = "https://nameserver:9877" -# Отключаем проверку SSL-сертификатов add-type @" using System.Net; using System.Security.Cryptography.X509Certificates; @@ -11,30 +10,28 @@ public class TrustAllCertsPolicy : ICertificatePolicy { [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 -# Запрос логина и пароля -$username = Read-Host "Введите имя пользователя" -$password = Read-Host "Введите пароль" -AsSecureString +$username = Read-Host "Enter username" +$password = Read-Host "Enter password" -AsSecureString $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password) $plainPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) if (-not $username -or -not $plainPassword) { - Write-Host "Не введён User или Password" -ForegroundColor Red + Write-Host "No username or password provided" -ForegroundColor Red exit 1 } -# Аутентификация $authUrl = "$BASE_URL/idp/token" $body = "username=$([uri]::EscapeDataString($username))&password=$([uri]::EscapeDataString($plainPassword))&grant_type=password" try { $authResponse = Invoke-RestMethod -Uri $authUrl -Method Post -Body $body -ContentType "application/x-www-form-urlencoded" } catch { - Write-Host "Ошибка аутентификации: $_" -ForegroundColor Red + Write-Host "Auth error: $_" -ForegroundColor Red exit 1 } if (-not $authResponse.token_type -or -not $authResponse.access_token) { - Write-Host "Ошибка: в ответе отсутствует токен" -ForegroundColor Red + Write-Host "Error: no token in response" -ForegroundColor Red exit 1 } @@ -43,38 +40,32 @@ $headers = @{ "Authorization" = "$($authResponse.token_type) $($authResponse.access_token)" } -# Получение списка агентов try { - Write-Host "Сбор информации об агентах..." + Write-Host "Collecting agents..." $agentsUrl = "$BASE_URL/api/resource_manager/v1/agents" $response = Invoke-RestMethod -Uri $agentsUrl -Method Get -Headers $headers } catch { if ($_.Exception.Response.StatusCode.value__ -eq 401) { - Write-Host "Ошибка 401: токен недействителен или истёк." -ForegroundColor Red + Write-Host "Error 401: token invalid or expired." -ForegroundColor Red } else { - Write-Host "Ошибка: $_" -ForegroundColor Red + Write-Host "Error: $_" -ForegroundColor Red } exit 1 } $agents = $response.items | Where-Object { $_.type -eq "agent" } | ForEach-Object { + $status = if ($_.communication.online) { "Online" } else { "Offline" } [PSCustomObject]@{ Name = $_.name Type = $_.type - Online = $_.communication.online + Status = $status OS = $_.details.os.name IP = ($_.details.ipAddresses -join ", ") } } Write-Host "" -Write-Host "Всего найдено агентов/устройств: $($agents.Count)" -ForegroundColor Green +Write-Host "Total agents found: $($agents.Count)" -ForegroundColor Green Write-Host "" -$agents | Format-Table -Property @( - @{Label="Имя устройства"; Expression={$_.Name}; Width=40} - @{Label="Тип"; Expression={$_.Type}; Width=15} - @{Label="Статус"; Expression={if($_.Online){"Онлайн"}else{"Офлайн"}}; Width=8} - @{Label="ОС"; Expression={$_.OS}; Width=30} - @{Label="IP-адреса"; Expression={$_.IP}} -) -AutoSize \ No newline at end of file +$agents | Format-Table -Property Name, Type, Status, OS, IP -AutoSize \ No newline at end of file