Компиляция конфигурации DSC, содержащей Get-NetAdapter в Azure Automation - PullRequest
0 голосов
/ 02 мая 2018

Как видно из многих примеров быстрого запуска Azure , обычно используется 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'
        }
   }
}

Если в моей конфигурации есть команда Get-NetAdapter, а конфигурация скомпилирована Azure Automation, я получаю следующую ошибку:

Не удается подключиться к серверу CIM. Указанная служба не существует в качестве установленной службы.

Есть ли обходной путь?

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Get-NetAdapter внутренне использует WMI для получения информации, которая не работает в Azure Automation. Однако вы можете использовать командлет get-netipinterface для получения информации об адаптере.

0 голосов
/ 23 мая 2018

Ответ - это невозможно. Конфиги скомпилированы на сервере автоматизации Azure, а не на целевом узле. Даже если бы я нашел способ получить имя сетевого адаптера в конфигурации, он получил бы имя адаптера на сервере извлечения DSC, а не целевой узел.

Код в вопросе будет работать, если вы используете 1 конфигурацию на узел, и вы предварительно компилируете на целевом узле, а затем загружаете его в Azure Automation.

0 голосов
/ 02 мая 2018

Попробуйте это:

    xDnsServerAddress DnsServerAddress
    {
        Address        = $DNSServer
        InterfaceAlias = (Get-NetAdapter | ? name -Like "Ethernet*" | select -First 1).Name
        AddressFamily  = 'IPv4'
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...