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

如何从Docker容器远程执行Windows命令?(OSX跨平台场景)

在Docker PowerShell容器中远程执行Windows工作站命令的解决方案

场景可行性确认

这个场景完全可行,但需要同时配置Windows工作站的WinRM服务和Docker容器内的PSWSMan客户端环境,两者配置到位后就能实现跨平台远程命令执行。

单命令完成操作的方法

因为Docker容器每次启动都是全新环境,所以必须将安装PSWSMan、配置WSMan客户端、执行远程命令的步骤整合到一条docker run命令中:

docker run -it --rm mcr.microsoft.com/powershell pwsh -c "Install-Module -Name PSWSMan -Force -SkipPublisherCheck; Install-WSMan; Invoke-Command -ComputerName VM-CHIP -ScriptBlock { Write-Host 'Hello, World' } -Credential (Get-Credential)"

参数说明:

  • --rm:容器退出后自动清理,避免残留无用容器
  • Install-Module -Name PSWSMan -Force -SkipPublisherCheck:强制安装PSWSMan模块,跳过发布者签名检查(容器内默认没有信任的发布者)
  • Install-WSMan:完成容器内WSMan客户端的基础配置
  • -Credential (Get-Credential):交互式输入Windows工作站的合法账号密码,这是WinRM远程认证的必要步骤

如果需要非交互式执行(仅用于测试,生产环境禁止明文密码),可以预先构造凭证:

docker run -it --rm mcr.microsoft.com/powershell pwsh -c "Install-Module -Name PSWSMan -Force -SkipPublisherCheck; Install-WSMan; \$cred = New-Object System.Management.Automation.PSCredential('VM-CHIP\Administrator', (ConvertTo-SecureString 'YourWindowsPassword' -AsPlainText -Force)); Invoke-Command -ComputerName VM-CHIP -ScriptBlock { Write-Host 'Hello, World' } -Credential \$cred"

解决MI_RESULT_FAILED报错的关键步骤

1. 配置Windows工作站的WinRM服务

在目标Windows工作站(VM-CHIP)上,以管理员身份打开PowerShell,执行以下命令:

# 启用WinRM远程管理
Enable-PSRemoting -Force
# 将OSX主机IP加入可信主机列表(测试时可设为*,生产环境需指定具体IP)
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "你的OSX主机IP" -Force
# 确保WinRM服务自动启动
Set-Service WinRM -StartupType Automatic
Start-Service WinRM

2. 检查网络连通性

  • 在OSX主机上执行ping VM-CHIP,确认能正常解析并连通目标Windows主机
  • 执行telnet VM-CHIP 5985,确认WinRM默认HTTP端口(5985)未被防火墙拦截

3. 容器内连通性测试

如果命令仍报错,可以先在容器内单独执行Test-WSMan -ComputerName VM-CHIP,验证WSMan客户端与目标主机的连通性,该命令能直接反馈连接失败的具体原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:45:53