Geschweifte Klammern und ExecWith Powershell
Verfasst: 27 Mai 2016, 14:08
Mir ist ein Bug bei ExecWith Powershell aufgefallen.
Ich wollte dieses Script (http://powershell.com/cs/blogs/tips/arc ... words.aspx) per ExecWith Powershell ausführen und habe es direkt von der Seite in die entsprechende Sektion kopiert.
Beim Ausführen erhielt ich allerdings immer folgende Fehlermeldung:
Beim direkten kopieren in den Powershell Editor wurde das Script auch korrekt ausgeführt.
Nach ewigem Trial and Error habe ich heraus gefunden dass die schließende geschweifte Klammer nicht in einer neuen Zeile stehen darf.
Der folgende Code bricht mit dem oben geposteten Fehler ab.
So funktioniert es ohne Fehler:
Anscheinend wird die Übergabe des Codes irgendwie durch den Winst beeinflusst.
Falls sich der Bug nicht so einfach fixen lässt, wäre ein Hinweis im Handbuch sehr nett
Ich wollte dieses Script (http://powershell.com/cs/blogs/tips/arc ... words.aspx) per ExecWith Powershell ausführen und habe es direkt von der Seite in die entsprechende Sektion kopiert.
Beim Ausführen erhielt ich allerdings immer folgende Fehlermeldung:
Code: Alles auswählen
retrieving strings from GetOutStreamFromSection [switch to loglevel 7 for debugging]
(string 0)Fehlende schließende "}" im Anweisungsblock.
(string 1)Bei C:\opsi.org\tmp\_opsiscript_Ga83Co31.ps1:11 Zeichen:1
(string 2)+ <<<<
(string 3) + CategoryInfo : ParserError: (CloseBraceToken:TokenId) [], Parse
(string 4) Exception
(string 5) + FullyQualifiedErrorId : MissingEndCurlyBrace
(string 6)
Nach ewigem Trial and Error habe ich heraus gefunden dass die schließende geschweifte Klammer nicht in einer neuen Zeile stehen darf.
Der folgende Code bricht mit dem oben geposteten Fehler ab.
Code: Alles auswählen
function Get-RandomPassword {
param(
$length = 10,
$characters =
'abcdefghkmnprstuvwxyzABCDEFGHKLMNPRSTUVWXYZ123456789!"§$%&/()=?*+#_'
)
# select random characters
$random = 1..$length | ForEach-Object { Get-Random -Maximum $characters.length }
# output random pwd
$private:ofs=""
[String]$characters[$random]
}
Code: Alles auswählen
function Get-RandomPassword {
param(
$length = 10,
$characters =
'abcdefghkmnprstuvwxyzABCDEFGHKLMNPRSTUVWXYZ123456789!"§$%&/()=?*+#_'
)
# select random characters
$random = 1..$length | ForEach-Object { Get-Random -Maximum $characters.length }
# output random pwd
$private:ofs=""
[String]$characters[$random] }
Falls sich der Bug nicht so einfach fixen lässt, wäre ein Hinweis im Handbuch sehr nett