powershell - TaskScheduler:在 Windows Server 2019 上运行计划任务时“访问被拒绝”(0x80070005)
问题描述
我刚刚设置了一个新的 Windows Server 2019 实例,并尝试通过 Windows 任务计划程序运行任务(C# 控制台应用程序)。我已将其设置为以具有“管理员”权限的特定 Windows 用户身份登录。但是,当我尝试运行任务(按计划或通过登录并按需运行)时,它会给出错误:
“访问被拒绝”,错误代码为 0x80070005。到目前为止我尝试过的事情:
- 仔细检查用户帐户的密码是否正确。
- 仔细检查他们是否在管理员组中。
- 尝试使用不同的管理员用户帐户。
- 已安装所有 Windows 更新。
- 重新启动了服务器。
- 授予作业可执行文件所在目录的所有权限。
- 选中该框以使用“最高权限”运行作业。
没有任何效果...我想知道其他人是否在 Windows Server 2019 中遇到过这个问题,以及他们如何让计划任务运行?
解决方案
尝试在 Powershell 上创建计划任务以将文件复制到映射驱动器时,我遇到了类似的挑战。
以下是我的计划任务命令:
$TaskName = "FileSync"
$Description = "This task will run periodically to sync .fin files from a specified source directory to a specified destination directory"
$ScriptPath = "C:\Users\my_userDesktop\file_sync.ps1"
$UserAccount = "COMP1\my_user"
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File $ScriptPath"
$Principal = New-ScheduledTaskPrincipal -UserID $UserAccount -LogonType ServiceAccount -RunLevel Highest
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 1) -RepetitionDuration ([System.TimeSpan]::MaxValue)
Register-ScheduledTask -TaskName $TaskName -Action $Action -Description $Description -Trigger $Trigger -Principal $Principal
但是,当命令运行时,我收到以下错误:
Register-ScheduledTask : Access is denied.
At line:1 char:1
+ Register-ScheduledTask -TaskName $TaskName -Action $Action -Description $Descrip ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Register-Schedul
edTask], CimException
+ FullyQualifiedErrorId : HRESULT 0x80070005,Register-ScheduledTask
这是我修复它的方法:
问题的原因是以下-RunLevel Highest
命令:
$Principal = New-ScheduledTaskPrincipal -UserID $UserAccount -LogonType ServiceAccount -RunLevel Highest
-RunLevel Highest
注册一个计划任务,该任务在具有最高权限的管理员用户组的登录成员下运行。
这意味着当您设置它时-RunLevel
,Highest
它要求您以管理员身份安排 Powershell 作业,也就是说,您必须以管理员身份运行 Powershell来安排作业,而不是仅仅启动/运行 Powershell 和普通用户来安排作业。
这将允许计划任务以具有管理权限的最高级别运行。
就这样。
我希望这有帮助
推荐阅读
- node.js - 我可以将 Node Pug 模板移动到 dist 文件夹并动态加载内容吗?
- proxy - 通过使用 raspi 作为代理网关,将 win-10 上的 VNC 查看器设置到远程桌面 (Win-10)
- javascript - 如何在Javascript中的特定字符串+斜杠之后获取字符串?
- java - 如何获取带有 bytea 类型 id 列的表?
- .net - 我可以在 .Net Core Web Api 项目的 .Net Dll 中使用 mtom 调用 Web 服务吗?
- android - 如何使用 POST 方法在 Android 中使用 Retrofit 发送带有幻灯片更改的原始复杂和大 JSON?
- excel - 我在 Excel 宏中遍历文件夹代码的循环给出了找不到文件的错误
- python - 如何找到 Redshift Maya API 文档?
- ios - 如何解决 Flutter Xcode 构建中的“错误:链接器命令失败,退出代码为 1”?
- javascript - Primeng p-dropdown 应在滚动文档页面上关闭