dani
Goto Top

Powershell-Teilscript funktioniert unter Windows Server 2012 nicht mehr

Hallo zusammen,
es ist eigentlich relativ einfach. Es geht um folgenden Schnipsel:
$givenname = $givenname -replace ("ä", "ae") -replace ("ö", "oe") -replace ("ü", "ue") -replace ("ß", "ss")  
$surname = $surname -replace ("ä", "ae") -replace ("ö", "oe") -replace ("ü", "ue") -replace ("ß", "ss")  
Dieser Teil funktioniert unter Windows Server 2008R2 problemlos. Unter Windows Server 2012 widerrum nicht...

Hier die Powershell-Versionen.

Windows Server 2008R2:
PS C:\Users\Administrator> $host.version

Major Minor Build Revision
----- ----- --------
2 0 -1 -1


Windows Server 2012:
PS C:\Users\Administrator\Desktop> $host.version

Major Minor Build Revision
----- ----- --------
3 0 -1 -1

Bisher haben wir das Ganze bei uns mit einem Hashtable verarbeitet. Die obengenannte Lösung wäre natürlich übersichtlicher und einfacher. Stammt aus diesem Beitrag. Hat jemand das selbe Problem beobachtet?


Grüße,
Dani

Content-Key: 213480

Url: https://administrator.de/contentid/213480

Printed on: April 25, 2024 at 17:04 o'clock

Member: colinardo
colinardo Aug 06, 2013 updated at 09:30:47 (UTC)
Goto Top
Hallo Dani,
probiers mal mit:
$givenname = $givenname.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss")  
$surname = $surname.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss")  
müsste eigentlich funktionieren, werde es aber gleich noch an einem Server 2012 testen.

--edit-- also hier laufen beide Versionen auf einem Server 2012

Grüße Uwe
Member: Dani
Dani Aug 06, 2013 at 09:29:15 (UTC)
Goto Top
Hi Uwe,
Danke für deine Antwort. Es scheint folgende Meldung:
In C:\test.ps1:81 Zeichen:93
+ ...  "ue").replace ("ÃY", "ss")  
+                    ~
Unerwartetes Token "(" in Ausdruck oder Anweisung.  
In C:\test.ps1:82 Zeichen:89
+ ...  "ue").replace ("ÃY", "ss")  
+                    ~
Unerwartetes Token "(" in Ausdruck oder Anweisung.  
    + CategoryInfo          : ParserError: (:) , ParseException
    + FullyQualifiedErrorId : UnexpectedToken

Grüße,
Dani

P.S. Seltsame Gänsefüßchen hast du im Code...
Member: Belloci
Belloci Aug 06, 2013 at 09:33:02 (UTC)
Goto Top
Dani,

darf ich fragen, welche Endung das Skript hat?!

*.ps1?
Member: colinardo
colinardo Aug 06, 2013 updated at 09:36:44 (UTC)
Goto Top
Zitat von @Dani:
Hi Uwe,
Danke für deine Antwort. Es scheint folgende Meldung:
> In C:\test.ps1:81 Zeichen:93
> + ...  "ue").replace ("ÃY", "ss")  
> +                    ~
> Unerwartetes Token "(" in Ausdruck oder Anweisung.  
> In C:\test.ps1:82 Zeichen:89
> + ...  "ue").replace ("ÃY", "ss")  
> +                    ~
> Unerwartetes Token "(" in Ausdruck oder Anweisung.  
>     + CategoryInfo          : ParserError: (:) , ParseException
>     + FullyQualifiedErrorId : UnexpectedToken
> 
komisch da scheint was mit der Zeichkodierung bei deinem Editor nicht zu stimmen.
hier gehen beide Versionen.
P.S. Seltsame Gänsefüßchen hast du im Code...
sorry korrigiert, kommt vom kopieren des Code aus einer VM...
Member: colinardo
colinardo Aug 06, 2013 updated at 09:37:07 (UTC)
Goto Top
Zitat von @Belloci:
Dani,

darf ich fragen, welche Endung das Skript hat?!

*.ps1?
steht oben -> test.ps1
Member: colinardo
colinardo Aug 06, 2013 updated at 09:46:04 (UTC)
Goto Top
@Dani : mach mal die Leerzeichen zwischen "replace" und den Klammern weg, dann gehts!
also
replace("ä","ae")
anstatt
replace ("ä","ae")
Member: Belloci
Belloci Aug 06, 2013 at 09:45:39 (UTC)
Goto Top
Sorry, steht im Errorcode...

Na, da bin ich mal gespannt ob das ohne den Leerzeichen funktioniert...

Gruß
Member: Dani
Dani Aug 06, 2013 at 09:52:39 (UTC)
Goto Top
@colinardo
Oh... vor lauter Copy&Paste. Nun erscheint keine Fehlermeldung mehr. Allerdings wird ein "ä" nicht ersetzt. Hast du dein Script auf einem Server 2012 getestet?


Grüße,
Dani
Member: colinardo
colinardo Aug 06, 2013 updated at 09:58:55 (UTC)
Goto Top
Zitat von @Dani:
@colinardo
Oh... vor lauter Copy&Paste. Nun erscheint keine Fehlermeldung mehr. Allerdings wird ein "ä" nicht ersetzt.
Hast du dein Script auf einem Server 2012 getestet?
Yip, läuft einwandfrei auf einem Server 2012. Welchen Editor nutzt du um die Scripte zu speichern? Geb den Code mal manuell in die Shell ein dann wirst du sehen das er geht.
Member: Belloci
Belloci Aug 06, 2013 updated at 10:08:24 (UTC)
Goto Top
Hey Dani, Hey Colinardo,

mal zum Anfang bzw. zum Errorcode:

Der Auszug "> + ... "ue").replace ("ÃY", "ss")" und vor allem das "ÃY" sieht für mich so aus, dass die ps1 (im Editor erstellt?) im falschen Format gespeichert wurde.

Diese werden ja im Standard im ANSI Format gespeichert. Stellst du das aber auf UNICODE ein, dann sollte das auch laufen.

Hatte damit immer erhebliche Probleme bei Massenimporten per LDIFDE bzw. CSVDE...

Dani, kannst du da mal schauen ob das im UNICODE Format funktioniert.

Danke
Member: Dani
Dani Aug 06, 2013 updated at 10:56:43 (UTC)
Goto Top
Wir nutzen Notepad++... ich habe es eben auch nochmals neuabgespeichert.
Manuell funktioniert es problemlos.

Es war UTF-8 ohne BOM eingestellt. Nach der Umstellung auf UTF8 läuft es problemlos.


Grüße,
Dani
Member: Belloci
Belloci Aug 06, 2013 at 10:59:19 (UTC)
Goto Top
alles klar, danke für die Rückmeldung...