[Skripte]

Automatisiertes Abrufen und Speichern von Switch-Konfigurationen per PowerShell und Plink

/automatisiertes-abrufen-und-speichern-von-switch-konfigurationen-per-powershell-und-plink

In der Netzwerkverwaltung ist das regelmäßige Abrufen und Speichern von Switch-Konfigurationen eine zentrale Aufgabe, die gerne vernachlässigt wird 😉
Dieses PowerShell-Skript automatisiert den Prozess mit Plink. Mit nur minimalen Anpassungen kannst du damit die Konfiguration von mehreren Switchen gleichzeitig abrufen und jeweils in einer Textdatei sichern.
Das Textdokument wird dabei immer nach der IP-Adresse des Switches benannt.


Voraussetzungen

Bevor das Skript verwendet wird, stelle sicher, dass:

  • plink.exe verfügbar ist (z. B. aus den PuTTY-Tools)
  • SSH auf den Switchen aktiviert ist
  • Eine Textdatei mit den Switch-IP-Adressen existiert (eine IP pro Zeile)
  • Gültige SSH-Zugangsdaten vorhanden sind

Skript-Übersicht

Das folgende Skript liest IP-Adressen aus einer Textdatei, stellt eine SSH-Verbindung zu jedem Switch her, führt einen Befehl zur Anzeige der laufenden Konfiguration aus und speichert die Ergebnisse in einer separaten Datei für jede IP-Adresse.

# Pfad zu plink.exe und zur switche.txt
$plinkPath = ".\plink.exe"           # Pfad zur plink.exe Datei, die zur SSH-Verbindung genutzt wird
$switchListPath = ".\switche.txt"    # Pfad zur Textdatei, die die Liste der Switch-IP-Adressen enthält

# SSH-Anmeldeinformationen
$username = "SSH-USER"          # Benutzername für SSH-Anmeldung
$password = "SSH-PASSWORT"      # Passwort für SSH-Anmeldung

# Passwort als SecureString umwandeln
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)

# Lesen der IP-Adressen aus der switche.txt
$switchIPs = Get-Content $switchListPath

foreach ($ip in $switchIPs) {
    # Befehl zum Abrufen der Konfiguration
    $command = "show running-config"

    # Dateiname auf Basis der IP
    $outputFileName = "$ip.txt"

    # Plink-Befehl zum Herstellen der SSH-Verbindung und Abrufen der Konfiguration
    $plinkCommand = "& $plinkPath -ssh $username@$ip -pw $password -batch $command"

    # Ausführen des Plink-Befehls und Speichern der Ausgabe
    Invoke-Expression $plinkCommand | Out-File -FilePath $outputFileName -Encoding utf8

    Write-Host "Konfiguration von $ip gespeichert in $outputFileName"
}
````

---

## Detaillierte Erläuterung

### Pfadzuweisung

Das Skript beginnt mit der Festlegung der Pfade zu Plink und zur Datei mit den Switch-IP-Adressen:

```powershell
$plinkPath = ".\plink.exe"
$switchListPath = ".\switche.txt"

Stelle sicher, dass diese Pfade korrekt sind oder passe sie an deine Umgebung an.


Anmeldeinformationen

Die SSH-Anmeldeinformationen werden im Klartext definiert und anschließend in einen SecureString umgewandelt:

$username = "SSH-USER"
$password = "SSH-PASSWORT"
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)

Jede IP-Adresse wird anschließend in einer Schleife für die SSH-Verbindung genutzt.


Abruf und Speicherung der Konfiguration

Für jede IP-Adresse wird ein Plink-Befehl erzeugt und ausgeführt, um die laufende Konfiguration des Switches abzurufen.
Die Ausgabe wird in einer Datei gespeichert, die nach der IP-Adresse benannt ist.

foreach ($ip in $switchIPs) {
    $command = "show running-config"
    $outputFileName = "$ip.txt"
    $plinkCommand = "& $plinkPath -ssh $username@$ip -pw $password -batch $command"
    Invoke-Expression $plinkCommand | Out-File -FilePath $outputFileName -Encoding utf8
    Write-Host "Konfiguration von $ip gespeichert in $outputFileName"
}

Anpassungen für andere Switches

Der auf dem Switch ausgeführte Befehl kann leicht angepasst werden.
Ändere einfach:

$command = "show running-config"

zum Beispiel in:

$command = "show version"

um stattdessen die Software-Version der Switches abzurufen.


Schlussfolgerung

Mit diesem Skript lassen sich Switch-Konfigurationen effizient automatisiert sichern und archivieren.
Durch einfache Anpassung des auszuführenden Befehls kann es flexibel an unterschiedliche Anforderungen angepasst werden.
Die Automatisierung spart Zeit und reduziert das Risiko manueller Fehler bei der Konfigurationssicherung.

Anzeige

/comments0 Einträge

Kommentare

> NO_COMMENTS_FOUND

> INITIATE_COMMENT_PROTOCOL

MARKDOWN_SUPPORT: ENABLED
CHARS: 0