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