2012-07-11 326 views
1

我有一個簡單的powershell腳本來獲取目錄中的名稱並將其寫入文件。 我希望在每天早上8:00執行此操作,因此我從Windows任務計劃程序創建了一個任務,任務計劃程序可以啓動該腳本,但腳本無法寫入文件。因此,作爲一種替代我創建一個批處理文件,我嘗試使用任務調度程序來調用PS1這是給了一個錯誤「fileopenerror」 我的批處理文件 \ PowerShell.exe \ test.ps1無法使用Windows任務計劃程序運行powershell腳本

我的PowerShell腳本有 的Set-executionpolicy -scope currentuser -ExecutionPolicy下RemoteSigned -force LS >> names.txt中

+1

如果設定在腳本執行策略的輸出,但目前執行的政策是不會讓腳本運行開始,你不覺得這可能是一個問題嗎?啓動Powershell時,您可以覆蓋執行策略。鍵入Powershell /?在命令提示符處。 – EBGreen 2012-07-11 13:05:21

+0

如果我只是使用命令提示符執行powershell工作,但如果它由任務調度程序啓動它不是。我不知道爲什麼會發生這種情況。 – Laavaa 2012-07-11 13:47:13

+0

我的猜測是系統帳戶沒有按照您帳戶的方式進行配置。您是否嘗試重寫執行策略? – EBGreen 2012-07-11 13:51:48

回答

0

< #So這裏有一個〔實施例我想提出來供你也就BITS服務在3個am,i每天重啓猜你可以用你的apache服務例子修改腳本#>

< #Here林創建觸發器的工作和IM設置它在每天凌晨3點,以#開始>

$trigger = New-JobTrigger -Daily -At 3am 

<#下面進出口註冊的ScheduledJob用的名稱和$觸發的觸發是在凌晨3點每日,也爲Im放置腳本的腳本塊#內被執行>

Register-ScheduledJob -Name BitsServiceRestart -Trigger $trigger -ScriptBlock { 

<# Suppose Lets say that you want to schedule a restart of BITS Service#> 
Restart-Service -ServiceName BITS 

} 

<#一旦作業被註冊,您可以在工作細節使用獲取Get-ScheduledJob您還可以查看使用的TaskScheduler任務的詳細信息 - > Windows - > PowerShell#>

Get-ScheduledJob BitsServiceRestart | fl * 

<#你能接受預定作業的使用收到招聘#>

Receive-Job -Name BitsServiceRestart