powershell - docker 通过 PowerShell 远程连接到 windowsservercore
问题描述
我想测试两个 docker 容器之间的 PS 远程处理。我有以下 DockerFile:
FROM microsoft/windowsservercore:latest
# Set trusted hosts for PS remoting
RUN winrm s winrm/config/client @{TrustedHosts="*"}
# Set password -> just for testing!
RUN net user Administrator 1234!password5678
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# Enable PS remoting
RUN Enable-PSRemoting -force; if ($?) {Start-Service winrm}
# Keep container alive if started via docker-compose
CMD start-sleep -seconds 3600
以及以下 docker-compose.yml:
version: '3.1'
services:
testserver:
image: 172.23.86.48/myPowerShellImage:latest
ports:
- 6985:5985
- 6986:5986
startpowershelltests:
image: 172.23.86.48/myPowerShellImage:latest
ports:
- 7985:5985
- 7986:5986
depends_on:
- testserver
我通过 启动容器docker-compose up -d
并通过 将我附加到一个容器docker container exec -it powershelltoolsdocker_startpowershelltests_1 powershell
。
在附加的容器中,我执行:
PS C:\> $pw = ConvertTo-SecureString "1234!password5678" -AsPlainText -Force
PS C:\> $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "testserver\Administrator", $pw
PS C:\> $session = new-pssession -computername testserver -credential $cred
$session = new-pssession -computername testserver -credential $cred
给我以下错误:
new-pssession : [testserver] 连接到远程服务器 testserver 失败,并显示以下错误消息:访问被拒绝。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。SSessionOpenFailed At line:1 char:12 + $session = new-pssession -computername testserver -credential $cred + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme.. ..RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed
因此我检查了目标是否可ping:
PS C:\> ping testserver
Pinging testserver [172.21.162.141] with 32 bytes of data:
Reply from 172.21.162.141: bytes=32 time<1ms TTL=128
Reply from 172.21.162.141: bytes=32 time=2ms TTL=128
Reply from 172.21.162.141: bytes=32 time=3ms TTL=128
Reply from 172.21.162.141: bytes=32 time=1ms TTL=128
Ping statistics for 172.21.162.141:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 3ms, Average = 1ms
有人可以给我一个提示我错过了什么。
谢谢
解决方案
推荐阅读
- sql - Windows Server2016 上的 SQL Server Management Studio 17.9 安装失败
- android - TensorFlow 对象检测在 Xamarin Android 上失败并出现重塑问题
- javascript - 在网站上实现动态列表的最有效方法
- java - 嵌套的while循环不会要求再次正确运行程序
- php - 使用 Ckeditor 编辑数据库中保存的数据
- python - 使用没有 ValueError 的 tkinter 模块时如何导入函数
- java - 如何将textview中的2个单词左对齐和右对齐
- java - 如何将两个子actor的总和结果返回给父级并打印出来
- typescript - TS2307:找不到模块
- mongodb - bulk 正在替换其他字段,即使声明了 upsert