Dans cet article, nous utiliserons un script PowerShell (.ps1) pour créer un diagramme qui indique l'adresse publique des agents. Cela vous aidera à suivre les différents réseaux auxquels appartiennent les agents d'un client pour en faciliter la gestion.
Notes : Vous devez installer le fichier PSAtera et PSWriteHTML dans Powershell avant d'utiliser ce script.
1. Copiez le script ci-dessous.
Import-Module PSAtera Importation du module PSWriteHTML function Map-Agents($CustomerID) { # Obtenir tous les agents Atera pour le client $Agents = Get-AteraAgents -CustomerID $CustomerID New-Html -TitleText "Carte des agents Atera" -Online -FilePath $PSScriptRoot\Atera-Agents.html { New-HTMLTabStyle -SlimTabs New-HTMLTab -Name "Agents Atera" { New-HTMLSection -HeaderText "Réseaux Atera" { New-HTMLPanel { New-HTMLDiagram -Height 'calc(85vh)' { New-DiagramOptionsPhysics -RepulsionNodeDistance 150 -Solver repulsion # Générer le niveau 1 : Réseau public $Agents | Select-Object ReportedFromIP -Unique | ForEach-Object { New-DiagramNode -Label $_.ReportedFromIP -Level 1 -ColorBackground Red } $PrivateNetworks = @() foreach($Agent in $Agents) { # Ignorer les adresses IP auto-attribuées $Agent.IPAddresses | Where-Object { !($_.StartsWith("169.254.")) } | PourChaque-Objet { $Address = [IPAddress]$_ $AddressBytes = $Address.GetAddressBytes() $Network = "" # Obtenir stupidement l'ID du réseau en fonction de la classe de l'adresse 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) { # Class 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" } # Créer le nœud de diagramme pour l'ID de réseau sous l'adresse IP publique 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 } # Créer le nœud de diagramme pour l'agent sous son ID de réseau actuel New-DiagramNode -Label "$($Agent.MachineName)`t$($Address.IPAddressToString)" -Level 3 -To "$Network,$($Agent.ReportedFromIP)" -ArrowsToEnabled } } } } } } } -ShowHTML }
2. Enregistrez le script sous Map-Agents.ps1 et exécutez ce qui suit en remplaçant l'identifiant du client par celui que vous souhaitez utiliser :
3. Le diagramme suivant est généré et s'ouvre dans votre navigateur par défaut.
- Rouge nœuds: Adresses publiques
- Vert nœuds: ID de réseau
- Bleu nœuds: Les agents
Vous pouvez ajouter le Script dans Atera et exécuter par le biais d'un profil IT Automaton ;
NOTE : Ce script n'a pas fait l'objet d'un contrôle de fonctionnalité et nous n'offrons pas d'assistance au dépannage. Veuillez d'abord l'examiner et le tester dans votre environnement de laboratoire.
Merci, Dave Long, pour la création de ce script et pour votre contribution à la communauté Atera!