Я хочу проверить удаленное взаимодействие 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_Trou устранение неполадок.SSessionOpenFailed
В строке: 1 символ: 12
+ $ session = new-pssession -computername testserver -credential $ cred
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
+ CategoryInfo: OpenError: (System.Manageme .... RemoteRunspace: Re
moteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: AccessDenied, PSSessionOpenFailed
Поэтому я проверил, доступна ли цель для проверки:
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
Может ли кто-нибудь дать мне подсказку, что мне не хватает.
Thx