Ein Powershellskript mit Argumenten füttern, die Kommata enthalten
Moin Kollegen, liebe Skriptinggötter.
Ich versuche einem Powershellskript ein Argument zu übergeben, was auch gelingt, solange kein Komma innerhalb des Argumentes steht. Hier verlassen mich meine Fähigkeiten leider schon, wie bekomme ich das Komma maskiert? [natürlich weiß man nicht vorher, ob ein Komma im Argument übergeben werden wird]
Skript:
Argument könnte ein x-beliebiges Kennwort sein, beispielsweise AdTlT,Fu1T!
Edit: bin schon etwas weiter und habe das Skript oben korrigiert (zuvor standen "" um $args herum).
Was geht ist, das Kennwort in ' einzuschließen:
Was mir leider noch mehr Kopfzerbrechen bereitet, sind Kennwörter mit enthaltenem &-Symbol oder auch dem Backtick (') selbst.
Und was andere Sonderzeichen noch vorhalten, möchte ich gar nicht wissen.
Noch Ideen dazu?
Ich versuche einem Powershellskript ein Argument zu übergeben, was auch gelingt, solange kein Komma innerhalb des Argumentes steht. Hier verlassen mich meine Fähigkeiten leider schon, wie bekomme ich das Komma maskiert? [natürlich weiß man nicht vorher, ob ein Komma im Argument übergeben werden wird]
Skript:
$newpw = ConvertTo-SecureString -Force -AsPlainText $args
Add-BitLockerKeyProtector c: -PasswordProtector -password $newpw
Argument könnte ein x-beliebiges Kennwort sein, beispielsweise AdTlT,Fu1T!
Edit: bin schon etwas weiter und habe das Skript oben korrigiert (zuvor standen "" um $args herum).
Was geht ist, das Kennwort in ' einzuschließen:
script.ps 'Kenn,wort'
Was mir leider noch mehr Kopfzerbrechen bereitet, sind Kennwörter mit enthaltenem &-Symbol oder auch dem Backtick (') selbst.
Und was andere Sonderzeichen noch vorhalten, möchte ich gar nicht wissen.
Noch Ideen dazu?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 232964
Url: https://administrator.de/forum/ein-powershellskript-mit-argumenten-fuettern-die-kommata-enthalten-232964.html
Ausgedruckt am: 04.04.2025 um 08:04 Uhr
5 Kommentare
Neuester Kommentar
Moin DWW,
ab Powershell 3.0 hast du eine neue Möglichkeit dieses Problem zu umgehen.
Den Aufruf auf der Kommandozeile machst du folgendermaßen:
Die Magie macht das
Grüße Uwe
ab Powershell 3.0 hast du eine neue Möglichkeit dieses Problem zu umgehen.
Den Aufruf auf der Kommandozeile machst du folgendermaßen:
script.ps1 --% Dein Ken"nw'o,r$*& ` @ #
--%
. Alles was danach kommt wird nicht mehr von der Powershell geparst und als ein Parameter an das Script weitergegeben, du musst hier das Kennwort auch nicht in Anführungszeichen setzen (diese gehören dann quasi zum Passwort selber), selbst Leerzeichen werden so weitergegeben. Du musst nur dein Script anweisen den zweiten Parameter $args[1]
als Passwort zu nehmen.Grüße Uwe
Zitat von @DerWoWusste:
Es sieht jedoch so aus, als wäre das "&" in Deinem Beispiel nur günstig gesetzt.
also bei mir ist das wurscht .... geht auch so, wie gesagt alles dahinter wird nicht mehr geparst ...Es sieht jedoch so aus, als wäre das "&" in Deinem Beispiel nur günstig gesetzt.
hast du Powershell 3.0 ? wie rufst du das Script auf , aus einer DOS-Shell ? mach es aus einer Powershell-Konsole heraus dann geht es.
http://powershell.org/wp/2012/01/02/powershell-v3-ctp2-provides-better- ...