none
Ошибка с Set-DnsServerResourceRecord RRS feed

  • Вопрос

  • Доброго времени суток.

    Пытаюсь поменять вес  SRV записей.

    $old=Get-DnsServerResourceRecord  -ZoneName mydomain.local -RRType Srv | where {$_.hostname -match "^_gc"}
    $new=$old.clone()
    $new | ForEach-Object{ $_.recorddata.weight=[int16]100}
    Set-DnsServerResourceRecord -NewInputObject $new -OldInputObject $old -ZoneName mydomain.local

    Но получаю следующую ошибку:

    Set-DnsServerResourceRecord : Cannot process argument transformation on parameter 'NewInputObject'. Cannot convert the "System.Object[]" value of type "System.Object[]" to type "Mi
    crosoft.Management.Infrastructure.CimInstance".
    At line:7 char:45
    + Set-DnsServerResourceRecord -NewInputObject $new -OldInputObject $old -ZoneName  ...
    +                                             ~~~~
        + CategoryInfo          : InvalidData: (:) [Set-DnsServerResourceRecord], ParameterBindingArgumentTransformationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-DnsServerResourceRecord

    Причем если работать только с одной записью SRV, например, вот так:

    $old=Get-DnsServerResourceRecord  -ZoneName mydomain.local -RRType Srv | where {$_.hostname -match "^_gc"} | Select-Object -Last 1
    $new=$old.clone()
    $new.recorddata.weight=[int16]100}
    Set-DnsServerResourceRecord -NewInputObject $new -OldInputObject $old -ZoneName mydomain.local

    то замена производится корректно.

    Подскажите, в чем проблема?

    21 ноября 2016 г. 20:20

Ответы

  • Судя по ошибке, параметер -NewInputObject ожидает получить одну единственную запись, а не массив записей.
    • Предложено в качестве ответа Vector BCOModerator 22 ноября 2016 г. 7:19
    • Помечено в качестве ответа nskalinin 22 ноября 2016 г. 8:39
    21 ноября 2016 г. 22:17

Все ответы

  • Судя по ошибке, параметер -NewInputObject ожидает получить одну единственную запись, а не массив записей.
    • Предложено в качестве ответа Vector BCOModerator 22 ноября 2016 г. 7:19
    • Помечено в качестве ответа nskalinin 22 ноября 2016 г. 8:39
    21 ноября 2016 г. 22:17
  • Спасибо за наводку.

    Вот как решил проблему:

    $domain=mydomain.local
    $old=Get-DnsServerResourceRecord  -ZoneName $domain -RRType Srv | where {($_.hostname -match "^_gc") -and ($_.recorddata.domainname -match "^nk-mce2")}
    $new=Get-DnsServerResourceRecord  -ZoneName $domain -RRType Srv | where {($_.hostname -match "^_gc") -and ($_.recorddata.domainname -match "^nk-mce2")}
    $j=$old.count
    $new | ForEach-Object{ $_.recorddata.weight=[int16]110}
    For ($i=0;$i -lt $j;$i++){
        Set-DnsServerResourceRecord -NewInputObject $new[$i] -OldInputObject $old[$i] -ZoneName $domain 
        }

    22 ноября 2016 г. 8:39
  • День добрый.

    А если DC перезагрузить, ну или netlogon на них, записи не дублируются?


    Грамотная постановка вопроса - уже 50% решения.
    SCCM User Group Russia на FaceBook и в Telegram


    22 ноября 2016 г. 8:46
  • День добрый.

    А если DC перезагрузить, ну или netlogon на них, записи не дублируются?


    Грамотная постановка вопроса - уже 50% решения.
    SCCM User Group Russia на FaceBook и в Telegram


    Я к тому что сервис netlogon должен перезаписать значения (вроде в течении часа либо при запуске).
    И значения (weight) эти редактируются в GPO, либо в реестре на необходимом DC.

    Грамотная постановка вопроса - уже 50% решения.
    SCCM User Group Russia на FaceBook и в Telegram

    22 ноября 2016 г. 9:14
  • Добрый день.

    Записи действительно дублируются.

    22 ноября 2016 г. 10:02