Windows Server 2025 Core无人值守安装中Defender命令执行失败问题
问题分析与解决方案
错误原因
错误代码0x800106ba对应RPC服务器不可用,出现该问题的核心逻辑:
<FirstLogonCommands>中的命令会在用户首次登录的极早期阶段执行,此时Windows Defender的核心服务WinDefend尚未完成初始化或完全启动,导致Set-MpPreferencecmdlet无法通过RPC调用连接到Defender服务。- 手动执行时系统已完成全量启动流程,
WinDefend服务处于稳定运行状态,因此命令可正常执行。
解决方法
方法1:给命令添加延迟执行
通过Start-Sleep等待服务启动完成后再执行命令,修改后的命令如下:
powershell -noexit "Start-Sleep -Seconds 30; Set-MpPreference -DisableRealtimeMonitoring `$true"
注意:unattend.xml中需将
$true转义为`$true,避免XML解析时丢失变量符号。
方法2:循环检查服务状态后执行
更可靠的方式是等待WinDefend服务进入运行状态后再执行命令:
powershell -noexit "while ((Get-Service WinDefend).Status -ne 'Running') { Start-Sleep -Seconds 5 }; Set-MpPreference -DisableRealtimeMonitoring `$true"
方法3:改用SetupComplete.cmd执行
SetupComplete.cmd会在系统安装完成、首次登录前执行,此时服务初始化更充分:
- 在安装镜像的
\Windows\Setup\Scripts\目录下创建SetupComplete.cmd文件 - 文件内添加命令:
powershell -Command "Set-MpPreference -DisableRealtimeMonitoring $true"
方法4:通过注册表直接配置
无需依赖PowerShell,直接在unattend.xml中添加注册表设置(需嵌套在Microsoft-Windows-Shell-Setup组件的<Component>节点内):
<RegistrySettings> <RegistryKey> <KeyName>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection</KeyName> <Value> <ValueName>DisableRealtimeMonitoring</ValueName> <Type>REG_DWORD</Type> <ValueData>1</ValueData> </Value> </RegistryKey> </RegistrySettings>
备注:修改注册表后需重启系统生效,可结合SetupComplete.cmd添加重启命令,或在unattend.xml中配置自动重启逻辑。
内容的提问来源于stack exchange,提问作者sirzento
相关产品推荐
相关产品推荐

