首页 > 解决方案 > Add-AzureRmAccount:无法在 DLL“iphlpapi.dll”中找到名为“GetPerAdapterInfo”的入口点

问题描述

我正在运行 Azure 自动化运行手册,它具有 PowerShell 脚本以按定义的计划重新启动 Azure Web 应用程序。在测试运行以下脚本时出现错误:

$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:无法在 DLL“iphlpapi.dll”中找到名为“GetPerAdapterInfo”的入口点。

此错误是否与没有足够的访问权限有关?

谢谢!

标签: powershellazure-web-app-serviceazure-runbook

解决方案


我可以在我这边用你的脚本重现这个问题。

在此处输入图像描述

要解决此问题,请将您的脚本更改为以下脚本,它将正常工作。

注意:导航到您的自动化帐户 -> Modules-> 确保模块存在,如果不存在,请单击AzureRM.Profile以搜索它们并导入。AzureRM.WebsitesBrowse 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'

在此处输入图像描述


推荐阅读