使用powershell和com schedule.service对象创build计划任务时,拒绝访问

我有一个PowerShell脚本,创build一个计划的任务使用调用RegisterTask通过Schedule.Service COM对象。

主要有:

$ts = new-object -com Schedule.Service $ts.Connect() $rootfolder = $ts.GetFolder("\") $taskXml = Get-Content "Task.xml" $rootfolder.RegisterTask("\Maintenance", $taskXml, 6, "LOCAL SERVICE", $null, 5) 

这工作正常我的本地机器(Windows 7中,我是本地pipe理员)

当我在机器上试用它时,它将会运行,RegisterTask调用失败,并且ACCESS_DENIED。

但是,如果我以pipe理员身份运行命令提示符,那么powershell.exe -file myscript.sps1它工作正常,并添加任务。

我已经确保它所运行的用户有权写入%windir%和%windir%/ system32中的“任务”文件夹

该用户在pipe理员组,这是令人费解的,我还需要做什么,以授予用户创build计划任务的权限? 看来只是将它们添加到本地pipe理员组是不够的。

编辑:我已login到服务器作为将运行该脚本的用户。 我可以成功地将xml文件手动导入到Task Scheduler UI插件中。

我最终放弃了,找不到使用注册任务执行此操作的方法,但是使用schtasks允许我导入任务的xml文件,而不会出现拒绝访问错误。 我也可以使用schtasks将任务导入远程机器。