代码之家  ›  专栏  ›  技术社区  ›  Jonathan Eckman

在Azure Automation中编译包含Get-NetAdapter的DSC配置

  •  1
  • Jonathan Eckman  · 技术社区  · 6 年前

    如图所示 many Azure Quick Start examples ,这是常用的 Get-NetAdapter 获取DNS配置之类的网络接口名称。这是一个示例:

    configuration MyConfig
    {
    
        $Interface=Get-NetAdapter|Where Name -Like "Ethernet*"|Select-Object -First 1
        $InterfaceAlias=$($Interface.Name)
    
        Node localhost
        {
            xDnsServerAddress DnsServerAddress
            {
                Address        = $DNSServer
                InterfaceAlias = $InterfaceAlias
                AddressFamily  = 'IPv4'
            }
       }
    }
    

    如果命令 获取NetAdapter 在我的配置中,配置由Azure Automation编译,我得到以下错误:

    无法连接到CIM服务器。指定的服务不作为已安装的服务存在。

    是否有解决方法?

    3 回复  |  直到 6 年前
        1
  •  1
  •   Jonathan Eckman    6 年前

    答案是——这是不可能的。配置是在Azure自动化服务器上编译的,而不是在目标节点上编译的。即使我想在配置中找到获取网络适配器名称的方法,它也会获取DSC pull服务器上的适配器名称,而不是目标节点。

    如果每个节点使用1个配置,并且在目标节点上进行预编译,然后将其上载到Azure Automation,则问题中的代码将正常工作。

        2
  •  0
  •   4c74356b41    6 年前

    尝试以下操作:

        xDnsServerAddress DnsServerAddress
        {
            Address        = $DNSServer
            InterfaceAlias = (Get-NetAdapter | ? name -Like "Ethernet*" | select -First 1).Name
            AddressFamily  = 'IPv4'
        }
    
        3
  •  0
  •   N.Gupta    6 年前

    Get NetAdapter Internal正在使用WMI获取Azure Automation中无法使用的信息。但是,您可以使用get-netipinterface cmdlet获取有关适配器的信息。