ScheduledJob scriptblock失败

时间:2015-10-01 11:45:53

标签: powershell

我正在编写一个涉及scheduledjob cmdlet的脚本,该脚本可以打开用户在特定时间想要的文件。我能够安排一个作业来运行打开.bat和.mp3的脚本块,但是我无法使用scriptblock来打开其他扩展文件(.txt,.doc,.mp4,.ps1)。就像这样:

这些命令运行良好:

register-scheduledjob -name abc -trigger $ abc -scriptblock {start“d:\ folder \ a.mp3”}

register-scheduledjob -name abc -trigger $ abc -scriptblock {start“d:\ folder \ a.bat”}

但是这些命令失败了:

register-scheduledjob -name abc -trigger $ abc -scriptblock {start“d:\ folder \ b.txt”}

register-scheduledjob -name abc -trigger $ abc -scriptblock {start“d:\ folder \ b.doc”}

register-scheduledjob -name abc -trigger $ abc -scriptblock {start notepad}

在scriptblock中,我尝试过使用invoke-item和invoke-command,但没有一个成功。然后我检查了任务管理器文件运行过程,结果发现我打开的那些文件没有打开窗口在后台运行

为什么会这样?你们有什么解决方案吗?请帮我。我花了很长时间试图解决这个问题!提前致谢

1 个答案:

答案 0 :(得分: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