2015-10-01 2 views
0

Я пишу скрипт с помощью командлетов schedjob, который открывает файлы, которые пользователи хотят в определенное время. Я могу запланировать задание для запуска скриптового блока, который открывает .bat и .mp3, но я не мог использовать скриптовый блок для открытия другого файла расширения (.txt, .doc, .mp4, .ps1). Это как это:ScheduledJob scriptblock failing

Этих команды прекрасно работали:

регистр scheduledjob -name а -trigger $ а -scriptblock {Пуск "D: \ папка \ a.mp3"}

регистр-scheduledjob - имя ABC -trigger $ ABC -scriptblock {Пуск "D: \ папка \ a.bat"}

Но эти команды не удались:

регистра scheduledjob -name а -trigger $ а -scriptblock {начать «D : \ folder \ b.txt "}

регистр-scheduledjob -name аЬс -trigger $ ABC -scriptblock {старт "D: \ папка \ B.doc"}

регистр-scheduledjob -name аЬс -trigger $ ABC -scriptblock {начать блокнот}

В скриптблоке я попытался использовать команду invoke-item и invoke-command, но ни одно из них не удалось. Затем я проверил диспетчер задач на процесс запуска файла, оказалось, что те файлы, которые я не смог открыть, были запущены в фоновом режиме без открытия окон

Почему это происходит? У вас, ребята, какое-то решение? Пожалуйста, помогите мне. Мне потребовалось очень много времени, чтобы исправить эту проблему! Заранее спасибо

ответ

1

Вам необходимо изменить поведение безопасности/запуска по умолчанию: «запустить ли пользователь вошел в систему или нет» для «запускать только при входе пользователя». Вы можете сделать это с помощью команд ScheduledTask. Обратите внимание: Register-ScheduledJob создает запланированную задачу в папке Task Schedulers\Microsoft\Windows\PowerShell\ScheduledJobs. Вы можете сделать такое изменение следующим образом:

$principal = (Get-ScheduledTask abc \Microsoft\Windows\PowerShell\ScheduledJobs\).Principal 
$principal.LogonType = 'Interactive' 
Set-ScheduledTask abc \Microsoft\Windows\PowerShell\ScheduledJobs\ -Principal $principal 
+0

Работает отлично. Большое спасибо за вашу помощь. –

+0

Но я искал в Интернете для ScheduledTask и обнаружил, что только некоторые версии Windows могут использовать это. Я ошибаюсь? У вас есть решение для всех версий, чтобы иметь возможность запускать эти команды? –

+0

Вы всегда можете использовать schtasks.exe «schtasks/change/IT/TN» \ Microsoft \ Windows \ PowerShell \ ScheduledJobs \ abc "' –

Смежные вопросы