Blog

Hier poste ich dinge zu Themen die mich beschäftigten.

Neueste 5 Einträge

  • PHP: sende Mail
  • Powershell: gruppename like finden und aktivierte user zaehlen
  • HW und SW auslesen und exportieren
  • Angeschlossene Monitore auslesen
  • bash: deepL Pro Paket MAC OS

2023-04-15

Powershell - Lese Infrastruktur aus und exportiere die ergebnisse in eine CSV

# Variablen
$OutputFile = “C:InfrastructureReport.csv”

# CSV-Header erstellen
$CSVHeader = “ServerName,IP,MAC,Description,Status,Path”
Add-Content -Path $OutputFile -Value $CSVHeader

# Funktion zum Abrufen von Computerinformationen
function Get-ComputerInfo {
    param ($Computers, $Type)
    foreach ($Computer in $Computers) {
        try {
            $ComputerName = $Computer.Name
            $IPAddress = (Resolve-DnsName $ComputerName).IPAddress
            $MACAddress = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ComputerName $ComputerName -Filter “IPEnabled=True”).MACAddress
            $Description = $Type
            $Status = if ($Computer.Enabled) { “Enabled” } else { “Disabled” }
            $Path = $Computer.DistinguishedName

            # Ergebnisse in CSV-Datei schreiben
            $CSVData = “$ComputerName,$IPAddress,$MACAddress,$Description,$Status,$Path”
            Add-Content -Path $OutputFile -Value $CSVData
        } catch {
            Write-Host “Fehler bei der Verarbeitung von $ComputerName: $($_.Exception.Message)” -ForegroundColor Red
        }
    }
}

# Domain-Controller
$DomainControllers = Get-ADDomainController -Filter *
Get-ComputerInfo -Computers $DomainControllers -Type “Domain Controller”

# Anwendungsserver, Switches und Mailserver können nicht direkt über AD-Cmdlets identifiziert werden.
# Sie müssen eine Liste von Gruppen, Namen oder Beschreibungen definieren, um sie zu identifizieren.

# Anwendungsserver (angepasst an Ihre Umgebung)
$AppServers = Get-ADComputer -Filter { Description -like “*App Server*” } # Anwendungsserver nach Beschreibung suchen
Get-ComputerInfo -Computers $AppServers -Type “Application Server”

# Switches (angepasst an Ihre Umgebung)
$Switches = Get-ADComputer -Filter { Description -like “*Switch*” } # Switches nach Beschreibung suchen
Get-ComputerInfo -Computers $Switches -Type “Switch”

# Mailserver (angepasst an Ihre Umgebung)
$MailServers = Get-ADComputer -Filter { Description -like “*Mail Server*” } # Mailserver nach Beschreibung suchen
Get-ComputerInfo -Computers $MailServers -Type “Mail Server”

Das Skript erstellt eine CSV-Datei, die Servername, IP, MAC, Beschreibung, Status und Pfad enthält. Passen Sie die Filterkriterien für Anwendungsserver, Switches und Mailserver gemäß Ihrer Umgebung an. In vielen Fällen werden diese Geräte möglicherweise nicht direkt im Active Directory identifiziert. Wenn dies der Fall ist, müssen Sie möglicherweise alternative Methoden verwenden, um diese Geräte in Ihrer Umgebung zu finden.

Admin - 11:00:26 @ Projekte, Powershell-Skripte | Kommentar hinzufügen

Kommentar hinzufügen

Die Felder Name und Kommentar sind Pflichtfelder.

Um automatisierten Spam zu reduzieren, ist diese Funktion mit einem Captcha geschützt.

Dazu müssen Inhalte des Drittanbieters Google geladen und Cookies gespeichert werden.