In questo articolo, utilizzeremo uno script PowerShell (.ps1) per creare un diagramma che mappa l'indirizzo pubblico degli agenti. Questo ti aiuterà a tenere traccia delle varie reti di cui fanno parte gli agenti di un cliente per una gestione più semplice.
Note: È necessario installare i moduli PSAtera e PSWriteHTML in Powershell prima di utilizzare questo script.
1. Copia lo script qui sotto.
Import-Module PSAtera Import-Module PSWriteHTML function Map-Agents($CustomerID) { # Ottieni tutti gli agenti Atera per il cliente $Agents = Get-AteraAgents -CustomerID $CustomerID New-Html -TitleText "Mappa Agenti Atera" -Online -FilePath $PSScriptRoot\Atera-Agents.html { New-HTMLTabStyle -SlimTabs New-HTMLTab -Name "Agenti Atera" { New-HTMLSection -HeaderText "Reti Atera" { New-HTMLPanel { New-HTMLDiagram -Height 'calc(85vh)' { New-DiagramOptionsPhysics -RepulsionNodeDistance 150 -Solver repulsion # Genera Livello 1: Rete pubblica $Agents | Select-Object ReportedFromIP -Unique | ForEach-Object { New-DiagramNode -Label $_.ReportedFromIP -Level 1 -ColorBackground Red } $PrivateNetworks = @() foreach($Agent in $Agents) { # Ignora qualsiasi indirizzo IP auto-assegnato $Agent.IPAddresses | Where-Object { !($_.StartsWith("169.254.")) } | ForEach-Object { $Address = [IPAddress]$_ $AddressBytes = $Address.GetAddressBytes() $Network = "" # Ottieni stupidamente l'ID di rete basato sulla classe dell'indirizzo IP if ($AddressBytes[0] -eq 10) { # Classe A $Network = "10.0.0.0/8" } elseif ($AddressBytes[0] -eq 172 -and $AddressBytes[1] -ge 16 -and $AddressBytes[1] -le 31) { # Classe B $Network = "172.16.$($AddressBytes[2]).0/16" } elseif ($AddressBytes[0] -eq 192 -and $AddressBytes[1] -eq 168) { $Network = "192.168.$($AddressBytes[2]).0/24" } # Crea il nodo del diagramma per l'ID di rete sotto l'indirizzo IP pubblico if ($PrivateNetworks -notcontains "$Network,$($Agent.ReportedFromIP)") { $PrivateNetworks += "$Network,$($Agent.ReportedFromIP)" New-DiagramNode -Label $Network -Id "$Network,$($Agent.ReportedFromIP)" -To $Agent.ReportedFromIP -Level 2 -ArrowsToEnabled -ColorBackground Green } # Crea il nodo del diagramma per l'agente sotto il suo ID di rete corrente New-DiagramNode -Label "$($Agent.MachineName)`t$($Address.IPAddressToString)" -Level 3 -To "$Network,$($Agent.ReportedFromIP)" -ArrowsToEnabled } } } } } } } -ShowHTML }
2. Salva lo script come Map-Agents.ps1 e poi esegui il seguente comando sostituendo l'ID cliente con quello che desideri utilizzare:
3. Il seguente diagramma verrà generato e si aprirà nel tuo browser predefinito.
- Nodi rossi: Indirizzi pubblici
- Nodi verdi: ID di rete
- Nodi blu: Gli agenti
Puoi aggiungere lo Script in Atera e eseguirlo tramite un profilo di Automazione IT.
NOTA: Lo script non è stato verificato per la funzionalità e non offriamo supporto per la risoluzione dei problemi. Si prega di esaminarlo e testarlo prima nel proprio ambiente di laboratorio.
Grazie, Dave Long, per aver creato questo script e per il tuo contributo alla comunità di Atera!