我最近在我的SBS 2008 SP2服務器上安裝了Powershell 2.0,並相信它運行良好。當登錄到服務器,既的Windows PowerShell(x86)的和的Windows PowerShell程序有GET-ExecutionPolicy設置爲下RemoteSigned。兩個Poweshell的Get-Host顯示版本爲2.0。Powershell 2.0腳本運行在cmd.exe中,但不運行任務計劃程序
的腳本保存在C:服務器的\腳本\ Powershell的\,被稱爲TaskScheduler_Get_SFTP_Files.ps1
如果我從CMD.EXE在運行C:\命令Powershell的C:\ Script \ Powershell \ TaskScheduler_Get_SFTP_Files.ps1,然後Powershell使用從PuTTY下載的各種命令連接到FTP帳戶,重命名下載的文件,然後將它們保存到它們的位置。在我的scipt中,我有各種不同的命令,當我手動運行腳本時,我可以在cmd shell中看到發生了什麼。這工作正常從cmd.exe調用,我可以看到下載的文件的最終目錄。
另一方面,任務計劃程序似乎需要甜言蜜語來鼓勵工作(目前超出我的詞彙量)。在任務計劃程序,我已經建立了一個具有以下規格(從XML導出複製)工作,並提請你注意我如何打電話PowerShell將使用參數:
<Principal id="Author">
<UserId>WOODBRIDGE\ADMIN</UserId>
<LogonType>Password</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
<Settings>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>true</WakeToRun>
<ExecutionTimeLimit>PT4H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>Powershell</Command>
<Arguments>-NoProfile -File C:\Script\Powershell\TaskScheduler_Get_SFTP_Files.ps1</Arguments>
</Exec>
</Actions>
當看歷史記錄任務,其中一個項目是EventID 201,其中常規註釋爲「任務計劃程序成功完成任務」\ XXX \ YYYYYYYYYYYYYYYYYYYYY「,實例」{23dee164-ea4b-4ed5-ba48-19f07bb83f3e}「,操作」C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Powershell.EXE「與返回碼0。」
任何幫助將不勝感激?
你幹得不錯領導到說明您登錄的東西文件在整個過程中的問題。你可以添加是否出現這些日誌文件? (我猜不是)另外,你看到這個任務的運行時間? (我猜這很快,因爲它實際上並不工作)。當您嘗試從CMD.exe運行時,您是否按照該確切順序使用這些EXACT參數?最後,如果使用以下命令替換參數會發生什麼情況:-command「C:\ Script \ Powershell \ TaskScheduler_Get_SFTP_Files.ps1」 –
您是否查看了登錄的安全/配置文件問題?當您從命令行運行它時,您是否以WOODBRIDGE \ ADMIN身份登錄?我不會猜測,這是我認爲可能導致你的問題的第一個區別。 –
回覆Tom H.當我登錄到服務器上時,我以管理員身份登錄,當我啓動cmd.exe時,我以管理員身份登錄。 Task Scheduler是我使用同一個Admin帳戶定義的服務器上的實例。 Bertie – Bertie