PowerShell脚本部署Docker Desktop时出现登录会话错误
Docker Desktop安装后启动失败,报错"A specified logon session does not exist. It may already have been terminated."
问题详情
在特定Windows机器上执行管理员权限的PowerShell脚本安装Docker Desktop后,脚本输出Docker Installed successfully,但抛出以下错误:
error listing credentials -err:exit status 1,out:'A specified logon session does not exist. It may already have been terminated.'
Docker Desktop无法正常启动。同一脚本在多台Windows机器(包括Azure的Windows 11家庭版、专业版虚拟机)上执行均无异常,可成功完成安装并启动Docker Desktop。
执行的脚本代码
Write-Host "Installing Docker..." start-process C:\Windows\System32\DockerInstaller.exe "install --quiet --accept-license" -Wait -NoNewWindow cd "C:\Program Files\Docker\Docker" $ProgressPreference = 'SilentlyContinue' & 'C:\Windows\System32\DockerInstaller.exe' $env:Path += ";C:\Program Files\Docker\Docker\Resources\bin" $env:Path += ";C:\Program Files\Docker\Docker\Resources" Write-Host "Docker Installed successfully" $shell = New-Object -ComObject "Shell.Application" $shell.minimizeall() Add-Type -AssemblyName PresentationCore,PresentationFramework $Time=New-ScheduledTaskTrigger -AtLogon $p = "C:\PROGRA~2\XXXXX\XXXXX\XXX.ps1" $Action=New-ScheduledTaskAction -Execute "powershell.exe" -Argument "$p" Register-ScheduledTask -TaskName "XXXXXXXXXX" -Trigger $Time -Action $Action -RunLevel Highest -Force
排查与解决方案
该错误核心与Windows登录会话、凭据管理器或Docker安装异常相关,针对特定机器的问题,按以下顺序尝试修复:
1. 移除脚本中重复的DockerInstaller调用
脚本中连续两次执行DockerInstaller.exe,第二次无参数调用可能导致安装状态紊乱。修改脚本,删除无参数的& 'C:\Windows\System32\DockerInstaller.exe'行,重新执行安装。
2. 清理Docker相关凭据
- 打开凭据管理器(控制面板→用户账户→凭据管理器)
- 找到所有与Docker相关的Windows凭据(如
Docker Credentials、docker-credential-desktop条目) - 删除这些凭据后,重启机器,再尝试启动Docker Desktop
3. 重置登录会话
- 注销当前管理员用户,重新登录后启动Docker Desktop
- 若无效,尝试创建新的本地管理员账户,用该账户重新执行安装脚本
4. 检查并修复Docker服务
- 打开服务(Win+R输入
services.msc) - 找到
Docker Desktop Service和Docker Engine服务,确认状态为正在运行 - 若服务未启动,尝试手动启动,记录启动时的报错信息进一步排查
5. 重置Docker Desktop到出厂设置
- 启动Docker Desktop时按住
Ctrl键,选择Reset to factory defaults - 重置完成后重新配置Docker,验证是否能正常启动
内容的提问来源于stack exchange,提问作者yakoob
相关产品推荐
相关产品推荐

