
Ich durfte am Wochenende einen Umzug einer Domain-Adresse begleiten. Dazu wurden Webservices angepasst. Ich wollte die erforderliche Abfrage nach der Umstellung schnell per Skript prüfen. Bei diesem ist das folgende entstanden:
[CmdletBinding()]
param(
[Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
[string[]]$URL
)
function Expand-URL {
param (
[Parameter(Mandatory = $true)]
[string]$ShortUrl
)
try {
$resp = Invoke-WebRequest -Uri $ShortUrl -MaximumRedirection 10 -Method Head -UseBasicParsing
return $resp.BaseResponse.ResponseUri.AbsoluteUri
}
catch {
try {
$resp = Invoke-WebRequest -Uri $ShortUrl -MaximumRedirection 10 -Method Get -UseBasicParsing
return $resp.BaseResponse.ResponseUri.AbsoluteUri
}
catch {
Write-Error "Fehler beim Abrufen der URL [$ShortUrl]: $_"
return $null
}
}
}
foreach ($shortUrl in $URL) {
$finalUrl = Expand-URL -ShortUrl $shortUrl
if ($finalUrl) {
Write-Output "Zieladresse: "$finalUrl
}
else {
Write-Output "Konnte die Zieladresse für $shortUrl nicht ermitteln."
}
}
Dieses muss als Datei gespeichert werden. Mit dem Aufruf
.\Skript.ps1 https://www.url.com
kann dann die Adresse aufgelöst werden. Sollte eine Weiterleitung eingerichtet sein, wird die passende Zieladresse ausgegeben.