远程创建Local System启动的计划任务遇0x80070534错误求助
远程创建Local System账户启动的计划任务(解决0x80070534错误)
问题原因
远程执行时直接用NT AUTHORITY\SYSTEM字符串指定账户,会因为远程会话的身份验证上下文导致账户名无法正确映射到SID,从而抛出“账户名与安全ID无法映射”的错误。本地执行时系统能直接解析该账户名,所以可以正常运行。
解决方法
直接使用Local System账户的**SID(S-1-5-18)**指定任务主体,避开账户名解析问题,同时通过LogonType参数明确服务账户登录类型。
完整脚本示例
Invoke-Command -ComputerName "目标机器名" -ScriptBlock { # 定义任务动作:替换为你需要执行的程序/脚本路径 $taskAction = New-ScheduledTaskAction -Execute "C:\你的程序路径.exe" # 定义任务主体:用Local System的SID指定账户,明确服务账户登录类型 $taskPrincipal = New-ScheduledTaskPrincipal -UserId "S-1-5-18" -LogonType ServiceAccount # 定义任务触发器:示例为开机触发,可根据需求修改(如AtLogOn、Once等) $taskTrigger = New-ScheduledTaskTrigger -AtStartup # 注册计划任务 Register-ScheduledTask -TaskName "远程系统账户任务" -Action $taskAction -Principal $taskPrincipal -Trigger $taskTrigger -Force } -Credential (Get-Credential)
关键注意事项
- SID
S-1-5-18是Local System账户的唯一标识,远程环境下不会出现名称解析问题 LogonType ServiceAccount必须指定,确保系统识别这是服务账户身份- 执行
Invoke-Command的账户需要拥有目标机器的管理员权限,且目标机器已开启WinRM服务(可提前用Enable-PSRemoting -Force配置)
内容的提问来源于stack exchange,提问作者Alex Lum
相关产品推荐
相关产品推荐

