Eu tenho um aplicativo que requer um site para fazer uma chamada HTTP que ativa e efetua login em uma VM do Azure.
Eu estou tentando fazer isso com uma função do PowerShell do Azure.
Eu posso ligar / desligar a VM com a função, usando:
$secpasswd = ConvertTo-SecureString $env:SP_PASSWORD -AsPlainText -Force;
$mycreds = New-Object System.Management.Automation.PSCredential ($env:SP_USERNAME, $secpasswd)
Add-AzureRmAccount -ServicePrincipal -Tenant $env:TENANTID -Credential $mycreds;
$context = Get-AzureRmContext;
Set-AzureRmContext -Context $context;
# Start VM
Start-AzureRmVM -ResourceGroupName myResourceGroup -Name myDevice | Out-String
Mas estou recebendo permissão negada erros ao tentar efetuar login na VM. Eu tentei os seguintes métodos:
$password = ConvertTo-SecureString "myPassword" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("myUsername", $password )
#Enter-PSSession -ConnectionUri https://<public_ip> -Credential $cred -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck) -Authentication Negotiate
e
$Server="<public_ip>"
$User="myUsername"
$Password="myPassword"
cmdkey /generic:TERMSRV/$Server /user:$User /pass:$Password
mstsc /v:$Server
Ao efetuar login com a GUI padrão da área de trabalho remota, também preciso dispensar os prompts de certificado.
O que preciso fazer para efetuar login automaticamente usando uma função do Azure?
A VM está executando o Windows 10.
EDIT: Configurei as portas, criei um certificado local e certifiquei-me de que o WinRM fosse configurado para gerenciamento remoto na VM, e também que ele estivesse escutando em HTTPS. No entanto, quando tento o comando na minha máquina local:
Enter-PSSession -ComputerName 52.166.161.93 -Credential $cred -UseSSL -SessionOption $so
Eu recebo o erro:
Enter-PSSession : Connecting to remote server 52.166.161.93 failed
with the following error message : The client cannot connect to the
destination specified in the request. Verify that the service on the
destination is running and is acce pting requests. Consult the logs
and documentation for the WS-Management service running on the
destination, most commonly IIS or WinRM. If the destination is the
WinRM service, run the following command on the destination to analyze
and configure the WinRM service: "winrm quickconfig". For more
information, see the about_Remote_Troubleshooting Help topic.
EDIT: verifiquei que a porta está aberta e acessível a partir da função do Azure usando
New-Object Net.Sockets.TcpClient "<public-ip>", 5986