Dans cet article, nous utiliserons un script PowerShell (.ps1) pour créer un diagramme qui cartographie l'adresse publique des agents. Cela vous aidera à suivre les différents réseaux auxquels les agents d'un client appartiennent pour une gestion plus facile.
Remarques : Vous devrez installer les modules PSAtera et PSWriteHTML dans PowerShell avant d'utiliser ce script.
1. Copiez le script ci-dessous.
Import-Module PSAtera
Import-Module PSWriteHTML
function Map-Agents($CustomerID) {
# Obtenez 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 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 toute adresse IP auto-assignée
$Agent.IPAddresses | Where-Object { !($_.StartsWith("169.254.")) } | ForEach-Object {
$Address = [IPAddress]$_
$AddressBytes = $Address.GetAddressBytes()
$Network = ""
# Obtenir bêtement l'ID du réseau basé sur 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) { # 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"
}
# Créer le nœud de diagramme pour l'ID du 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 correspondant
New-DiagramNode -Label "$($Agent.MachineName)`t$($Address.IPAddressToString)" -Level 3 -To "$Network,$($Agent.ReportedFromIP)" -ArrowsToEnabled
}
}
}
}
}
}
} -ShowHTML
}
2. Enregistrez le script sous Map-Agents.ps1 puis exécutez la commande suivante en remplaçant l'ID du client par celui que vous souhaitez utiliser :
3. Le diagramme suivant sera généré et s'ouvrira dans votre navigateur par défaut.
- Nœuds rouges : Adresses publiques
- Nœuds verts : Identifiants de réseau
- Nœuds bleus : Les agents
Vous pouvez ajouter le script dans Atera et l'exécuter via un profil d'automate informatique.
REMARQUE : Le script n'a pas été vérifié pour sa fonctionnalité et nous n'offrons pas de support de dépannage pour celui-ci. Veuillez le revoir et le tester d'abord dans votre environnement de laboratoire.
Merci, Dave Long, pour la création de ce script et pour votre contribution à la communauté Atera !