$ Asが定義されている行で予期しないトークンエラーが発生して失敗するスケジュールされたタスクとして実行されるスクリプトがあります。コードを削除すると、スクリプトは正常に実行されます。スクリプト全体(問題のあるセクションを含む)をPowerShellウィンドウに貼り付けると、すべてが期待通りに実行されます。コードブロックにより、スクリプトは実行されませんが、対話的に実行されます
私はこれが私が遭遇したことのない単純な問題であると仮定していますが、問題が何であるか把握することはできません。
これは、PS 5.0.117で、サーバー2012R2上で実行されても、私が受け取る正確なエラーがあるバージョン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
}
の下で起こっている:
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.
私がコメントアウトした場合$ As、$ Ns、$ Osで起こります。 $ As、$ Ns、$ Osをコメントアウトすると、正常に動作します。
ありがとうございました。 BOMでファイルを再保存すると、これが修正されました。問題が単なる修正ではなく、その背景に関する詳細を提供していただきありがとうございます。 –