Я пытаюсь сделать что-то прямое, используйте PowerShell Invoke-Command из функции Azure. Машина назначения находится в моей подписке Azure и в той же виртуальной сети. Приведенный ниже код завершается с ошибкой, приведенной ниже.
Сложность заключается в том, что Azure Функции "без сервера", поэтому при попытке использовать различные решения, например, для установки локального файла TrustedHosts, происходит сбой, поскольку такого файла нет .
Я хочу использовать самый простой способ, который является достаточно безопасным. Я безуспешно пробовал различные другие схемы аутентификации.
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
$adminName = 'chuck-admin'
$adminPassword = 'XXXXXXX'
$secPassword = ConvertTo-SecureString $adminPassword -AsPlainText -Force
$vmCreds = New-Object System.Management.Automation.PSCredential ($adminName, $secPassword)
$vmReturn = Invoke-Command -ComputerName chuck-vm-3 -Credential $vmCreds -ScriptBlock{whoami}
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $vmReturn
})
System.Management.Automation.Remoting.PSRemotingTransportException: Ошибка подключения к удаленному серверу chuck-vm-3 со следующим сообщением об ошибке: Клиент WinRM не может обработать запрос. Если схема аутентификации отличается от Kerberos или клиентский компьютер не присоединен к домену, необходимо использовать транспорт HTTPS или добавить конечный компьютер в параметр конфигурации TrustedHosts.
Используйте winrm.cmd для настройки TrustedHosts , Обратите внимание, что компьютеры в списке TrustedHosts могут не проходить проверку подлинности.
Более подробную информацию об этом можно получить, выполнив следующую команду: winrm help config. Для получения дополнительной информации см. Справку about_Remote_Trou устранение неполадок topi c.