Add-AzureRmAccount: невозможно найти точку входа с именем «GetPerAdapterInfo» в DLL «iphlpapi.dll» - PullRequest
0 голосов
/ 07 февраля 2020

Я использую Azure Runbook автоматизации, в котором есть сценарий PowerShell для перезапуска Azure Web App по определенному расписанию. Во время тестирования при запуске приведенного ниже сценария я получаю сообщение об ошибке:

$connectionName = "AzureRunAsConnection"
$servicePrincipalConnection = Get-AutomationConnection -Name $connectionName
$null = Add-AzureRmAccount ` 
    -ServicePrincipal ` 
    -TenantId $servicePrincipalConnection.TenantId ` 
    -ApplicationId $servicePrincipalConnection.ApplicationId ` 
    -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint

$null = Select-AzureRmSubscription -SubscriptionId 'SubscriptionID'

Restart-AzureRmWebApp -ResourceGroupName 'RGroupName' -Name 'webappname'

Сведения об ошибке:

Add-AzureRmAccount: не удается найти точку входа с именем «GetPerAdapterInfo» в DLL «iphlpapi.dll» .

  • $ null = Add-AzureRmAccount
  • CategoryInfo: CloseError: (:) [Connect-AzureRmAccount], AadAuthenticationFailedException
  • FullyQualifiedErrorId: Microsoft. Azure. Commands.Profile.ConnectAzureRmAccountCommand

Связана ли эта ошибка с недостаточным доступом?

Спасибо!

1 Ответ

1 голос
/ 10 февраля 2020

Я могу воспроизвести проблему с вашим сценарием на моей стороне.

enter image description here

Чтобы устранить проблему, измените свой сценарий на приведенный ниже. будет работать нормально.

Примечание : перейдите к своей учетной записи автоматизации -> Modules -> убедитесь, что модули AzureRM.Profile, AzureRM.Websites существуют, если нет, нажмите Browse Gallery для поиска и импорта.

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    $null = Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

$null = Select-AzureRmContext -Subscription 'SubscriptionID'
Restart-AzureRmWebApp -ResourceGroupName 'RGroupName' -Name 'webappname'

enter image description here

...