Подключиться к виртуальной машине Windows через PowerShell
В образах всех версий и редакций операционной системы Windows, подготовленных для запуска в Yandex Cloud, включен PowerShell Remoting Protocol (PSRP) с доступом по HTTPS. Вы сможете подключиться к виртуальной машине в статусе RUNNING по протоколу PSRP. Для инициализации всех служб после запуска ВМ может потребоваться время. Если возникла ошибка соединения, попробуйте снова через несколько минут.
Группы безопасности виртуальной машины должны разрешать входящий трафик по протоколу TCP на порт 5986.
Для подключения по протоколу PSRP укажите публичный IP-адрес или полностью определенное доменное имя (Fully Qualified Domain Name, FQDN
Чтобы подключиться к ВМ:
-
Откройте консоль PowerShell.
-
Создайте объект
Credentials, заменив<пароль>паролем пользователяAdministrator, который вы указали при создании ВМ:$myUserName = "Administrator" $myPlainTextPassword = "<пароль>" $myPassword = $MyPlainTextPassword | ConvertTo-SecureString -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential($MyUserName, $myPassword) -
Убедитесь, что имя пользователя и пароль в объекте верны:
$networkCredential = $credential.GetNetworkCredential() $networkCredential | Select-Object UserName, PasswordРезультат:
UserName Password -------- -------- Administrator <пароль> -
Создайте переменную для IP-адреса ВМ:
$ipAddress = "<IP-адрес>" -
Создайте объект
SessionOption. В объекте укажите проверки, которые нужно пропустить:$sessionOption = New-PSSessionOption ` -SkipCACheck ` -SkipCNCheck ` -SkipRevocationCheck -
Подключитесь к интерактивной сессии:
$psSession = @{ ComputerName = $ipAddress UseSSL = $true Credential = $credential SessionOption = $sessionOption } Enter-PSSession @psSessionРезультат:
[<IP-адрес>]: PS C:\Users\$myUserName\Documents>Завершите сессию:
Exit-PSSession -
Создайте сессию для неинтерактивного выполнения команд:
$session = New-PSSession @psSessionПросмотрите список открытых сессий:
Get-PSSessionРезультат:
Id Name ComputerName ComputerType State ConfigurationName Availability -- ---- ------------ ------------ ----- ----------------- ------------ 2 WinRM2 <IP-адрес> RemoteMachine Opened Microsoft.PowerShell AvailableВыполните команду на удаленной машине:
$scriptBlock = { Get-Process } $invokeCommand = @{ ScriptBlock = $scriptBlock Session = $session } Invoke-Command @invokeCommandРезультат:
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName PSComputerName ------- ------ ----- ----- ------ -- -- ----------- -------------- 249 13 4248 16200 0.11 4176 2 conhost <IP-адрес> 283 12 1888 4220 0.20 420 0 csrss <IP-адрес> ...