Windows Server 2012使用gMSA创建计划任务失败(错误2147943726)
解决Windows Server 2012中gMSA账户创建计划任务的启动错误
问题根源
错误码2147943726的核心触发点有两个:
- gMSA账户的登录类型配置错误
- 任务执行命令的参数格式混淆
具体修正步骤
1. 调整gMSA账户的登录类型
gMSA是域托管的无密码服务账户,因此New-ScheduledTaskPrincipal中的-LogonType必须设置为ServiceAccount,而非你当前使用的Password——gMSA不存在可输入的密码,用Password类型会直接导致登录失败。
2. 修正任务动作的命令参数
你当前的Action参数混淆了cmd.exe和PowerShell的语法:-NoProfile -ExecutionPolicy Bypass是PowerShell的专属参数,不能直接传给cmd.exe。执行bat文件的正确cmd参数格式为/c "C:\Users\####.bat"。
3. 补充gMSA账户的必要权限
除了「作为批处理作业登录」,还需确保:
- gMSA账户已在本地服务器完成安装,可通过
Get-ADServiceAccount -Identity serviceaccount$验证状态 - 账户对bat文件所在目录(
C:\Users\####)拥有读取+执行权限 - 账户被授予「登录为服务」权限(在本地安全策略的「用户权限分配」中配置)
修正后的完整脚本
# 创建触发器(每天下午3点执行) $trigger = New-ScheduledTaskTrigger -Daily -At 15:00 # 创建任务动作(执行bat文件) $action = New-ScheduledTaskAction -Execute cmd.exe -Argument '/c "C:\Users\####.bat"' # 配置任务基础设置 $Settings = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable -Compatibility Win8 # 绑定gMSA账户及权限 $principal = New-ScheduledTaskPrincipal -UserId 'domain.local\serviceaccount$' -LogonType ServiceAccount -RunLevel Highest # 注册计划任务 Register-ScheduledTask -TaskName "test_task_MSA" -Action $action -Trigger $trigger -Settings $Settings -Principal $principal
额外排查建议
- 手动运行bat文件,确认脚本自身无逻辑或权限错误
- 可在任务设置中添加
-RunWhetherUserIsLoggedOnOrNot参数,确保任务在无用户登录时也能启动 - 查看任务计划程序的「历史记录」标签,获取更详细的错误上下文
内容的提问来源于stack exchange,提问作者fapb
相关产品推荐
相关产品推荐

