Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ein Powershellskript mit Argumenten füttern, die Kommata enthalten

Frage Entwicklung Batch & Shell

Mitglied: DerWoWusste

DerWoWusste (Level 5) - Jetzt verbinden

18.03.2014, aktualisiert 19.03.2014, 1635 Aufrufe, 5 Kommentare

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:
01.
$newpw = ConvertTo-SecureString -Force -AsPlainText $args[0] 
02.
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[0] herum).
Was geht ist, das Kennwort in ' einzuschließen:
01.
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?
Mitglied: colinardo
LÖSUNG 19.03.2014, aktualisiert um 10:11 Uhr
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:
script.ps1 --% Dein Ken"nw'o,r$*& ` @  #
Die Magie macht das --% . 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
Bitte warten ..
Mitglied: DerWoWusste
19.03.2014 um 09:34 Uhr
Moin.

Vielen Dank.
Es sieht jedoch so aus, als wäre das "&" in Deinem Beispiel nur günstig gesetzt.
Nehme ich
01.
script.ps1 --% Dein K&en"nw'o,r$*& ` @  #
dann kommt wie erwartet
'en"nw'o,r$*& ` @ #' is not recognized as an internal or external command, operable program or batch file.

Lässt sich das drehen?
Bitte warten ..
Mitglied: colinardo
19.03.2014, aktualisiert um 09:48 Uhr
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 ...
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- ...
Bitte warten ..
Mitglied: DerWoWusste
19.03.2014, aktualisiert um 10:11 Uhr
Okay, da mit Batch gearbeitet wurde, die an Powershell übergibt, kommt es zu dem Fehler, sonst nicht, super, das lässt sich wohl noch hindengeln! Habe PS4.0, nebenbei.
Tja, dann ist das auch gelöst und eine mögliche Lösung für Bitlocker SSO ist in greifbarer Nähe, ich werde sie dann posten.

Nützlich beim Testen der Übergabe des Securestrings ist übrigens folgende function, vierlleicht kennst Du die noch nicht:
01.
function Decrypt-SecureString { 
02.
param( 
03.
    [Parameter(ValueFromPipeline=$true,Mandatory=$true,Position=0)] 
04.
    [System.Security.SecureString] 
05.
    $sstr 
06.
07.
 
08.
$marshal = [System.Runtime.InteropServices.Marshal] 
09.
$ptr = $marshal::SecureStringToBSTR( $sstr ) 
10.
$str = $marshal::PtrToStringBSTR( $ptr ) 
11.
$marshal::ZeroFreeBSTR( $ptr ) 
12.
$str 
13.
14.
Decrypt-SecureString $newpw
Bitte warten ..
Mitglied: colinardo
19.03.2014, aktualisiert um 12:52 Uhr
Yip kenn ich leider schon, brauchte ich gerade letzte Woche , hier eine Abkürzung:
[Runtime.Interopservices.Marshal]::PtrToStringAuto([Runtime.Interopservices.Marshal]::SecureStringToBStr($securestring_password))
Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...