Ich habe ein Skript, das als eine geplante Aufgabe ausgeführt wird, die mit einem unerwarteten Token-Fehler in der Zeile fehlschlägt, in der $ As definiert ist. Wenn ich den Code entferne, wird das Skript ordnungsgemäß ausgeführt. Wenn ich das gesamte Skript (einschließlich des problematischen Abschnitts) in ein PowerShell-Fenster einfüge, läuft alles wie erwartet.Codeblock verhindert, dass Skript ausgeführt wird, aber interaktiv ausgeführt wird
Ich nehme an, das ist eine einfache gotcha, die ich gerade nicht angetroffen habe, aber ich kann nicht herausfinden, was das Problem damit ist, erfahrene Augen würden geschätzt werden.
Dies wird auf dem Server ausgeführt wird 2012R2, mit PS 5.0.117 aber auch unter Version geschah 4.
# Sanitize $UserLogon
$Garbage = "[?\' ]",''
$As = '[?ÀÁÂÃÄÅÆàáâãäåæ]','a'
$Cs = '[?Çç]','c'
$Es = '[?ÈÉÊËèéêë]','e'
$Is = '[?ÌÍÎÏìíîï]','i'
$Ns = '[?Ññ]','n'
$Os = '[?ÒÓÔÕÖØðòóôõöø]','o'
$Ss = '[?ß]','s'
$Us = '[?ÙÚÛÜùúûü]','u'
$Thorns = '[?Þþ]','th'
$TextReplacers = $Garbage, $As, $Cs, $Es, $Is, $Ns, $Os, $Ss, $Us, $Thorns
foreach ($Replacement in $TextReplacers) {
$UserLogon = $UserLogon -replace $Replacement
}
Der genaue Fehler Ich erhalte ist:
At C:\Scripts\Onboarding\CreateUserAccount0.ps1:121 char:17
+ $As = '[?ÀÃÂÃÄÅÆà áâãäåæ]','a'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'ÃÄÅÆà áâãäåæ]','a'
$Cs = '[?Çç]','c'
$Es = '[?ÈÉÊËèéêë]','e'
$Is = '[?ÃŒÃÃŽÃìÃîï]','i'
$Ns = '[?Ññ]','n'
$Os = '[?ÒÓÔÕÖØðòóôõöø]','o'
$Ss = '[?ß]','s'
$Us = '[?ÙÚÛÜùúûü]','u'
$Thorns = '[?Þþ]','th'
$TextReplacers = $Garbage, $As, $Cs, $Es, $Is, $Ns, $Os, $Ss, $Us, $Thorns
foreach ($Replacement in $TextReplacers) {
$UserLogon = $UserLogon -replace $Replacement
}
# Check if AD user already exists.
$UserExists = Get-ADUser -Filter {SamAccountName -eq $UserLogon}
if ($UserExists -ne $Null){
$email = new-object Net.Mail.SMTPClient($mailServer)
$err += "$UserLogon' in expression or statement.
Wenn ich den Kommentar aus $ As, das passiert mit $ Ns und $ Os. Wenn ich $ As, $ Ns und $ Os auskommentiere, läuft es gut.
Danke. Das erneute Speichern der Datei mit der Stückliste hat dies behoben. Vielen Dank für die Bereitstellung der Hintergrundinformationen zu dem Problem und nicht nur für die Fehlerbehebung. –