You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DSC创建计划任务时无法指定USERS组运行任务

问题描述

我正尝试使用DSC创建计划任务,希望将“运行操作时使用以下用户账户”从默认的SYSTEM改成USERS组。我已尝试如下代码中注释的配置方式,但并未生效,请问还有其他解决思路吗?

尝试的DSC配置代码

TaskName = 'EXCEL-Auto'
TaskPath = '\CustomTasks'
ActionExecutable = 'C:\Program Files\Microsoft 
                    Office\root\VFS\ProgramFilesCommonX64\Microsoft  
                    Shared\Office16\operfmon.exe'

ScheduleType = 'AtLogOn'
#ExecuteAsCredential = 'USERS'
#BuiltInAccount = 'Users'

RunOnlyIfNetworkAvailable = $False
Enable = $True
RunOnlyIfIdle = $False
Priority = '7'
Hidden = $False
RestartOnIdle = $False
AllowStartIfOnBatteries = $True
DontStopIfGoingOnBatteries = $True
Ensure = 'Present'
DontStopOnIdleEnd = $True
MultipleInstances = 'IgnoreNew'
StartWhenAvailable = $True

参考设置说明

  • 计划任务目标:需将“运行操作时使用以下用户账户”配置为系统内置的USERS组
  • 目标用户组:系统默认的USERS用户组

解决思路
  • 修正BuiltInAccount取值:DSC中BuiltInAccount的有效值是固定枚举值,直接取消注释BuiltInAccount = 'Users'即可(注意大小写必须完全匹配),同时要注释掉ExecuteAsCredential——这两个参数不能同时使用。
  • 更新DSC资源版本:如果使用的是旧版xScheduledTask资源,可能对组账户支持不足。执行Update-Module -Name xScheduledTask更新到最新版本,或者改用PowerShell内置的ScheduledTask资源。
  • 正确使用ExecuteAsCredential:如果必须使用这个参数,不能直接填写组名,需要先创建USERS组对应的PSCredential对象:
    $usersGroupSid = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-32-545")
    $usersGroup = $usersGroupSid.Translate([System.Security.Principal.NTAccount])
    $credential = New-Object System.Management.Automation.PSCredential($usersGroup.Value, (New-Object System.Security.SecureString))
    
    然后在配置里将ExecuteAsCredential设置为这个$credential。
  • 排查配置日志:应用配置后如果仍未生效,可前往C:\Windows\System32\Configuration\ConfigurationStatus查看DSC日志,定位具体错误原因。

内容的提问来源于stack exchange,提问作者Azure_CloudServices

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:57:47