Benutzer mit den meisten Antworten
WPF Anwendung in Powershell; Script innerhalb eines Event-Handlers funktioniert nicht richtig

Frage
-
Hallo,
ich habe mir eine WPF Anwendung erstellt und dies in Powershell eingebunden:
# XML Source for Manage Dynamic Distribution Groups [xml]$xamlDynamicDistributionGroups = @" <hier ist der XML Code> "@ # Read XML for Dynamic Distribution Group Window $reader=(New-Object System.Xml.XmlNodeReader $xamlDynamicDistributionGroups) $WindowDynamicDistributionGroups=[Windows.Markup.XamlReader]::Load($reader) # Create Variables for Dynamic Distribution Group Window $xamlDynamicDistributionGroups.SelectNodes("//*[@Name]") | ForEach-Object { Set-Variable -Name "WPF$($_.Name)" -Value $WindowDynamicDistributionGroups.FindName($_.Name) -Scope Script}
Dann habe ich einen Event-Handler (Click) für einen Button zugefügt:
$WPFbuttonPreviewGroup.add_Click({ Write-Host "Previewing group" $param1 = "`$_." + $WPFComboField1.SelectedValue + " " + $WPFComboBool1.SelectedValue + " " + '"' + $WPFtextValue1.Text + '"' Write-Host $param1 $MsolUserList = Import-Csv "allMsolUser.csv" -Delimiter ";" $MsolUserList | ft $commandstring = '$msolUserList | ?{' + $param1 + '}' write-host $commandstring $x = Invoke-Expression $commandstring -Verbose write-host "Finished" })
Wenn ich nun das Script ausführe, funktioniert das einlesen der CSV Datei nicht:
$MsolUserList = Import-Csv "allMsolUser.csv" -Delimiter ";"
Das merkwürdige daran ist, dass alle anderen Befehle funktionieren.
write-host $commandstring
Der Befehl liefert mir z.B. folgendes zurück:
$msolUserList | ?{$_.City -eq "Paris"}
Wenn ich den Scriptbereich markiere und mit F8 ausführe, so funktioniert es mit dem gewünschten Ergebnis.
Antworten
-
Arghhh Anfängerfehler.
Wenn ich
$MsolUserList | ft
durch
write-host $MsolUserList | ft
ersetze funktionierts
- Als Antwort markiert Stefan Schneider 242 Freitag, 24. Juni 2016 08:00
Alle Antworten
-
Gib mal einen Pfad für deine csv-Datei an. Auch wenn die Datei im Scriptverzeichnis liegt reicht der Dateiname nicht. (ab Powershell V3 kannst du für das Scriptverzeichnis die Variable $PSScriptRoot benutzen)
Deine manuellen Versuche waren erfolgreich da hier dein Editor den dort aktuell gesetztem Pfad nutzt.Grüßé, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort- Bearbeitet Denniver ReiningMVP, Moderator Mittwoch, 22. Juni 2016 13:37
-
Ok, kopiere mal alles innerhalb des Eventhandlers in ein neues Script, das lässt sich einfacher testen und du bekommst auch ohne Umwege Fehlermeldungen.
Teste nochmal mit Pfad. (ohne DIR, das hat da nichts zu suchen)
Wenn es dann immer noch nicht klappt, poste mal den Fehler.Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
-
Arghhh Anfängerfehler.
Wenn ich
$MsolUserList | ft
durch
write-host $MsolUserList | ft
ersetze funktionierts
- Als Antwort markiert Stefan Schneider 242 Freitag, 24. Juni 2016 08:00