2016-12-15 7 views
0

電源シェルには新しく、特定のフォルダーをチェックし、このフォルダー内に長時間にわたって.xmlファイルが格納されているかどうかを確認するスクリプトを作成するよう求められました2時間以上。私が書いたスクリプトはうまくいきますが、それがbiztalkサーバーにデプロイされると、この終了コードが1になります。このスクリプトが現在私たちがそのサーバーで経験している問題を引き起こしているかどうかは不明です。ここに誰かがある程度の洞察力を提供できるかもしれない。イベントビューアで終了コード1を表示するPowerShellスクリプト

param(
     [String]$folderPath, 
     [int] $hoursToCheck 
    ) 

$folderExists = Test-Path $folderPath 

If((Get-Date).DayOfWeek.value__ -eq 0 -or (Get-Date).DayOfWeek.value__ -eq 6) 
{ 
    exit 
} 

If($folderExists -eq $false) 
{ 

    Send-MailMessage -SmtpServer "mail server" -To "email address" -From "email address" -Subject "email subject." -Body "email message" 
} 

ElseIf(Get-ChildItem -Path $folderPath | Where-Object {$_.Extension -like "*.xml" -and $_.LastWriteTime -lt (get-Date).AddHours($hoursToCheck)}) 
{ 

    Send-MailMessage -SmtpServer "email server" -To "address" -From "address" -Subject "email message" -Body "email body" 
} 
+0

どのようにビズトークサーバーに展開されますか? – 4c74356b41

+0

Windowsタスクスケジューラを使用しています。ローカル管理者権限を持つアカウントで実行されています。 – Jarrett

+0

それは本当にビズトークとは関係がありませんか? – 4c74356b41

答えて

0

時間に負の値を入力することを忘れないでください。

何が起こっているのかをトラブルシューティングするには、write-verboseコマンドを使用することをお勧めします。ここでは、スクリプトを実行するときに詳細なパラメータを使用できるようにするために、先頭にcmdletbinding()を追加したスクリプトの修正版を示します。私は時間のサインを変更したので、時間を減算します。たとえば-verboseパラメータを使用してスクリプトを実行します。 。\。ps1 C:\ xml_folder 2 -Verbose

 [cmdletbinding()] 
     param(
      [String]$folderPath, 
      [int] $hoursToCheck 
     ) 

    $folderExists = Test-Path $folderPath 
    $currentDate=get-date 

    If((Get-Date).DayOfWeek.value__ -eq 0 -or (Get-Date).DayOfWeek.value__ -eq 6) 
    { 
     write-verbose 'exit here' 
     exit 
    } 

    If($folderExists -eq $false) 
    { 

     write-verbose 'folder does not exist' 
    } 

    ElseIf(Get-ChildItem -Path $folderPath -filter '*.xml' | Where-Object {$_.LastWriteTime -lt $currentDate.AddHours(-$hoursToCheck)}) 
    { 

     write-verbose 'xml file exists' 
    } 
    else 
    { 
     write-verbose "no old xml files in folder $folderpath" 
    } 
+0

また、サーバー上の実行ポリシーを確認してください。 PowerShellスクリプトを実行できますか? –

関連する問題