2017-09-20 14 views
1

スクリプト全体。スケジュールタスクが実行されません

$action = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "$getservice = Get-Service -Name wuauserv; If($getservice.Status -eq 'Running') {Start-Sleep -s 10; Start-Process -FilePath D:\1.bat} Else {Start-Process -FilePath D:\1.bat}" 
$trigger = New-ScheduledTaskTrigger -Weekly -At 9am -DaysOfWeek Thursday -WeeksInterval 4 
$settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -StartWhenAvailable 
$principal = New-ScheduledTaskPrincipal -UserID System -RunLevel Highest 
$params = @{ 
"TaskName" = "Office" 
"Action" = $action 
"Trigger" = $trigger 
"Settings" = $settings 
"Principal" = $principal 
} 
Register-ScheduledTask @Params -Force 

1.batは、例えば1行の「メモ帳」で構成されます。しかし、私はタスクを起動すると何も起こりません。 Withalスクリプトは何の誤りもなくインポートされました。 私は

$action = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "$getservice = Get-Service -Name wuauserv; If($getservice.Status -eq 'Running') {Start-Sleep -s 10; Start-Process -FilePath D:\1.bat} Else {Start-Process -FilePath D:\1.bat}" 

でミスをしなかった。このコードはproprely走るどこそこで質問です!

$getservice = Get-Service -Name wuauserv; If($getservice.Status -eq 'Running') {Start-Sleep -s 10; Start-Process -FilePath D:\Программы\Прочее\1.bat} Else {Start-Process -FilePath D:\1.bat} 

答えて

0

私はこれまで、あなたの最初の行を変更したとき、私は成功を収めて実行するようにコードを取得することができた:

$action = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "`$getservice = Get-Service -Name wuauserv; If(`$getservice.Status -eq 'Running') {Start-Sleep -s 10; Start-Process -FilePath D:\1.bat} Else {Start-Process -FilePath D:\1.bat}" 

は、コード内のドル記号の前にバッククォートに注意してください。あなたはドル記号をエスケープする必要があります。そうでない場合、PowerShellはそれらを変数として扱い、それらを補間します。これにより、タスクに送るPowerShellコマンドが解消されます。

私はそれが私としてログオンして見ていないであろうから、私は「メモ帳」で1.batテストすることができませんでしたので、私は1.batのためにこれを使用:

rem notepad.exe 
echo Test123 >> D:\1.txt 
関連する問題