PowerShell-Skript: Auflistung von SMB-Sitzungen

Das folgende PowerShell-Skript listet alle aktiven SMB-Sitzungen auf einem Windows-Fileserver auf. Dabei werden Informationen wie Benutzername, Sitzungs-Clientname, offene Dateien und Sitzungsstatus erfasst. Das Skript verwendet die Get-SmbSession– und Get-SmbOpenFile-Cmdlets, die in Windows Server-Umgebungen verfügbar sind. Diese Informationen sind nützlich, um aktive Verbindungen zu überwachen, Engpässe zu identifizieren oder Sitzungen bei Bedarf zu schließen.

# Modul sicherstellen
if (-not (Get-Module -Name SmbShare -ListAvailable)) {
    Write-Error "Das Modul 'SmbShare' ist nicht installiert. Bitte installieren Sie es und versuchen Sie es erneut."
    exit
}

# SMB-Sitzungen abrufen
Write-Host "Abfrage aktiver SMB-Sitzungen auf dem Server..." -ForegroundColor Cyan
$sessions = Get-SmbSession

if ($sessions.Count -eq 0) {
    Write-Host "Keine aktiven SMB-Sitzungen gefunden." -ForegroundColor Yellow
    return
}

# Ergebnisse anzeigen
$sessions | ForEach-Object {
    $username = $_.UserName
    $client = $_.ClientComputerName
    $numFiles = (Get-SmbOpenFile | Where-Object { $_.ClientComputerName -eq $client }).Count

    [PSCustomObject]@{
        Benutzer          = $username
        Client            = $client
        "Geöffnete Dateien" = $numFiles
        Status            = $_.SessionId
    }
} | Format-Table -AutoSize

Hinterlasse jetzt einen Kommentar

Kommentar verfassen