Powershell Schedule.Service在连接到本地主机时出错

Powershell Schedule.Service在连接到本地主机时出错,powershell,scheduled-tasks,Powershell,Scheduled Tasks,我有一个连接到服务器列表的PowerShell脚本,可以查询计划的任务。(类似于)它过去在Windows2008R2服务器上运行良好。但是,在新的Windows Server 2012R2服务器上,它给出了以下错误。奇怪的是,它只在连接到本地机器时发生,远程服务器没有错误。在使用管理权限以我的帐户运行时,它不会引发任何错误 这篇文章说 不幸的是,与使用此COMObject的Get-ScheduledTask cmdlet不同,它需要具有管理凭据的提升的PowerShell控制台 但该脚本在Wi

我有一个连接到服务器列表的PowerShell脚本,可以查询计划的任务。(类似于)它过去在Windows2008R2服务器上运行良好。但是,在新的Windows Server 2012R2服务器上,它给出了以下错误。奇怪的是,它只在连接到本地机器时发生,远程服务器没有错误。在使用管理权限以我的帐户运行时,它不会引发任何错误

这篇文章说

不幸的是,与使用此COMObject的Get-ScheduledTask cmdlet不同,它需要具有管理凭据的提升的PowerShell控制台

但该脚本在WindowsServer2008R2服务器上运行正常

有什么可以调整的,使脚本在2012R2服务器上工作吗

Exception calling "Connect" with "1" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))" At C:\scripts\CheckSchedulers\CheckSchedulers.ps1:20 char:10 + ($TaskScheduler = New-Object -ComObject Schedule.Service).Connect($curSe ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation 使用“1”参数调用“Connect”时发生异常:“访问被拒绝。(异常 来自HRESULT:0x80070005(E_ACCESSDENIED))” 在C:\scripts\CheckSchedulers\CheckSchedulers.ps1:20 char:10 +($TaskScheduler=New Object-ComObject Schedule.Service)。连接($TaskScheduler=New Object-ComObject Schedule.Service)。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified:(:)[],MethodInvocationException +FullyQualifiedErrorId:CommMethodTargetInvocation
错误是由我的代码引起的,使用来自spiceworks的代码,它是可复制的。

您正在创建一个
计划。Service
对象,将其分配给一个变量,然后尝试调用
Connect()
方法。我不认为这适用于任何Windows或PowerShell版本,如果它适用于服务器2008R2,则很可能只是偶然的

您需要变量中的
Schedule.Service
对象(因为其他操作也需要它),并且必须对该对象调用
Connect()
,因此需要分两步执行此操作:

$TaskScheduler = New-Object -ComObject 'Schedule.Service'
$TaskScheduler.Connect($servername)  # connect to remote Task Scheduler
如果在一个循环中连接到不同的服务器,则可以重复使用该对象,只需
Connect()
连接到下一个服务器即可

要连接到本地任务计划程序服务,只需删除
$servername
,并调用不带参数的方法:

$TaskScheduler.Connect()  # connect to local Task Scheduler

有关代码的帮助:显示您的.code。只需一行($TaskScheduler=New Object-ComObject Schedule.Service)即可观察到错误。Connect($servername)在2008r2服务器上正常工作,而不是在2012r2服务器上正常工作。这是一个屏幕截图,我尝试了您的建议,但连接到本地主机时仍然出现错误。要连接到本地服务,请使用
Connect()
,无需任何参数。谢谢。这很好。知道为什么查询“Adobe Acrobat Update Task”很好,但是“Adobe Flash Player NPAPI Notifier”引发异常?您收到“权限被拒绝”错误,因此我怀疑该任务的权限不允许您的用户访问。请在
C:\Windows\system32\Tasks
中检查相应文件的权限。