以提升的权限执行ScheduledJob

时间:2018-08-22 16:42:56

标签: powershell

我想在服务器上远程安装WSUS更新。我在所有服务器上创建了计划作业,并且我想使用ScheduledJob(而不是ScheduledTasks,因为我想管理Windows Server 2008 R2和ScheduledTasks cmdlet不支持)。因此,我创建了一个计划作业:

$option = New-ScheduledJobOption -RunElevated
Register-ScheduledJob -Name "Installation Updates" -ScheduledJobOption $option -ScriptBlock { #MyScript }

现在,我要运行此计划作业:

Invoke-Command -ComputerName $Server -Credential $Cred -ScriptBlock {
    $startJob = (Get-ScheduledJob | ? { $_.Name -like "Installation Updates" }).StartJob()
}

启动了一个作业(我看到的是Get-Job,并且有txt文件输出),但是由于权限不足,无法安装更新。计划作业的创建和执行是使用Domain Admin帐户完成的。

如果我使用该帐户在服务器上“以管理员身份”启动powershell,并且测试了该命令(提示Invoke-Command),则该命令有效。

.StartJob()为什么不能在正常的PowerShell会话中工作?我在计划的作业中具有“ RunElevated”选项。有人有想法吗?我在Windows Server 2008 R2,Windows Server 2012 R2和Windows Server 2016上尝试过相同的问题。

编辑1:我尝试了cmdlet Start-Job,同样的问题,由于权限不足,无法安装更新:

$startJob = Start-Job -DefinitionName "Installation des Updates"

1 个答案:

答案 0 :(得分:0)

通过命令行使用计划任务,然后使用下面的链接:

docs.microsoft.com-windows-schtasks

这使管理员可以修改计划的任务

(或者您也可以将("/RL", "HIGHEST")用于Run with highest privileges

希望这会有所帮助!