param ( [Parameter(Mandatory = $true)] [string]$Path, [Parameter(Mandatory = $false)] [int]$Port = 8080 ) Add-Type -AssemblyName System.Net.HttpListener if (-Not (Test-Path $Path)) { Write-Error "โ Der angegebene Pfad '$Path' existiert nicht." exit 1 } $Directory = if (Test-Path $Path -PathType Leaf) { Split-Path $Path } else { $Path } $FileName = if (Test-Path $Path -PathType Leaf) { Split-Path $Path -Leaf } else { $null } $listener = New-Object System.Net.HttpListener $listener.Prefixes.Add("http://+:$Port/") $listener.Start() Write-Host "๐ HTTP-Server lรคuft auf Port $Port" Write-Host "๐ Freigegeben: $Path" Write-Host "๐ก Warte auf Anfragen... (Strg+C zum Beenden)" # Event-Handler fรผr sauberes Beenden $onExit = { Write-Host "`n๐ Server wird beendet..." $listener.Stop() $listener.Close() Write-Host "โ Server wurde gestoppt." exit } Register-EngineEvent PowerShell.Exiting -Action $onExit | Out-Null while ($listener.IsListening) { try { $context = $listener.GetContext() $request = $context.Request $response = $context.Response $clientIP = $request.RemoteEndPoint.Address.ToString() $urlPath = $request.Url.AbsolutePath.TrimStart('/') $localPath = Join-Path $Directory $urlPath if ($request.Url.AbsolutePath -eq "/") { # Indexseite generieren $items = Get-ChildItem -Path $Directory $html = "