Powershell: Abfrage ob Datei auf Webseite verfügbar ist
Hallo
ich programmiere momentan ein Tool welches mit einer Art Lizenzsystem laufen soll
ich habe mir das ganze so vorgestellt:
Abfrage auf https://blabla.de/license/license1/
wenn Datei "license1" vorhanden ist kann Tool genutzt werden
wenn Datei "license1" nicht vorhanden ist soll das Tool automatisch aus gehen (Tool kann nicht genutzt werden)
nun meine frage, ist mein vorhaben überhaupt möglich?
Gefunden habe ich bis jetzt nur diesen Codesnippet:
$wc=new-object system.net.webclient
$wc.UseDefaultCredentials = $true
$wc.downloadfile("URL","file")
vielleicht kann mir hier einer helfen
ich programmiere momentan ein Tool welches mit einer Art Lizenzsystem laufen soll
ich habe mir das ganze so vorgestellt:
Abfrage auf https://blabla.de/license/license1/
wenn Datei "license1" vorhanden ist kann Tool genutzt werden
wenn Datei "license1" nicht vorhanden ist soll das Tool automatisch aus gehen (Tool kann nicht genutzt werden)
nun meine frage, ist mein vorhaben überhaupt möglich?
Gefunden habe ich bis jetzt nur diesen Codesnippet:
$wc=new-object system.net.webclient
$wc.UseDefaultCredentials = $true
$wc.downloadfile("URL","file")
vielleicht kann mir hier einer helfen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 568111
Url: https://administrator.de/forum/powershell-abfrage-ob-datei-auf-webseite-verfuegbar-ist-568111.html
Ausgedruckt am: 23.04.2025 um 06:04 Uhr
7 Kommentare
Neuester Kommentar
Abfrage auf https://blabla.de/license/license1/
wenn Datei "license1" vorhanden ist kann Tool genutzt werden
wenn Datei "license1" vorhanden ist kann Tool genutzt werden
In deinem Beispiel ist license1 aber keine Datei sondern Teil des Pfades (außer du nutzt ein UrlRewrite)
Wenn du eine Datei laden willst und nur prüfen willst, ob sie existiert, dann sowas wie
$WebTest = Invoke-WebRequest -Uri "[content:568111]"
If ($WebTest.StatusCode -eq 200) {
Write-Host "Datei vorhanden"
} else {
Write-Host "Datei fehlt"
}
Wenn du auch noch was mit dem Inhalt machen willst, dann bspw
$WebTest = Invoke-WebRequest -Uri "[content:568111]"
If ($WebTest.Content -like "*Jedimeister*") {
Write-Host "Text vorhanden"
} else {
Write-Host "Text fehlt"
}
Manuel
Hallo,
Du bist Dir aber schon im klaren dass man dieses System ganz einfach austricksen kann.
Einfach in der Hosts-Datei oder im DNS des PCs zu diesem Hostnamen eine andere IP hinterlegen, einen kleinen webserver installieren und ein Zertifikat installieren was der Client manuell akzeptiert. Schon ist man drin.
Auch würde ich nicht mit Dateien arbeiten. Besonders wenn das mal mehr werden.
Auf dem Server ein bisschen PHP und eine MySQL-DB und dann lautet die Abfrage https://licence.firma.de/?licence=122743
Antwort ist dann OK oder ERROR
Du benutzt dann $wc.Download("https://licence.firma.de/?licence=122743") und vergleichst die Antwort mit "OK".
Du bist Dir aber schon im klaren dass man dieses System ganz einfach austricksen kann.
Einfach in der Hosts-Datei oder im DNS des PCs zu diesem Hostnamen eine andere IP hinterlegen, einen kleinen webserver installieren und ein Zertifikat installieren was der Client manuell akzeptiert. Schon ist man drin.
Auch würde ich nicht mit Dateien arbeiten. Besonders wenn das mal mehr werden.
Auf dem Server ein bisschen PHP und eine MySQL-DB und dann lautet die Abfrage https://licence.firma.de/?licence=122743
Antwort ist dann OK oder ERROR
Du benutzt dann $wc.Download("https://licence.firma.de/?licence=122743") und vergleichst die Antwort mit "OK".

Deine Lizenzprüfung ist sehr einfach zu umgehen.