ad-min
Goto Top

PS Get-Content - sicheres Einlesen von Dateien

Hallo und einen schönen Abend,

ich arbeite gerade an einem PowerShell-Script.

Mittels Get-Content möchte ich die Versionsnummer aus einer reinen Textdatei (version.txt) auslesen. Bis jetzt mache ich das wie folgt:
$OldVersion = Get-Content $Path\version.txt

Nun möchte ich folgendes ändern:

  • es sollen nur die ersten 5 Zeichen eingelesen werden
  • es sollen nur Zahlen [0-9] eingelesen werden

Das Ziel soll sein, dass nicht unerwünschter Code in mein Skript eingefügt werden kann. (Security)

Ich habe mir bereits die Anleitung auf Microsoft.com durchgelesen, habe aber keinen entsprechenden Parameter gefunden.

Danke und LG
ad-min

Content-ID: 553704

Url: https://administrator.de/forum/ps-get-content-sicheres-einlesen-von-dateien-553704.html

Ausgedruckt am: 24.12.2024 um 03:12 Uhr

certifiedit.net
Lösung certifiedit.net 02.03.2020 um 18:36:16 Uhr
Goto Top
Moin, regex Check?

Wobei das in einem Script ggf. Wenig Sinn macht. Wenn ich da falschen Code Einschleusen will, schrieb ich das Skript um
143127
Lösung 143127 02.03.2020 aktualisiert um 18:44:02 Uhr
Goto Top
if ((gc $path\version.txt -TotalCount 1) -match '^\d{5}'){  
    $oldversion = $matches
    $oldversion
}else{
   write-host "Nüscht nach Vorschrift, zurück in den Käfig."  
}
ad-min
ad-min 02.03.2020 aktualisiert um 19:12:38 Uhr
Goto Top
@143127 Vielen Dank, funktioniert wie gewünscht! (Das ist also ein regex Check?)

@certifiedit.net Die Datei wird von einem Webserver heruntergeladen. (Theoretisch könnte man diese Datei verändern, um Code in mein Skript einzuschleusen...)

Ich kannte regex von JavaScript, wusste aber gar nicht, dass die auch in PS funktionieren
certifiedit.net
Lösung certifiedit.net 02.03.2020 um 19:15:14 Uhr
Goto Top
regex ist nichts Sprachspezifisches. https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
ad-min
ad-min 02.03.2020 um 19:22:13 Uhr
Goto Top
Danke!! face-smile