Azure DevOps Конвейеры Рабочие группы Добавить запись DNS (onprem) - PullRequest
0 голосов
/ 08 января 2020

Я не могу найти ответ на этот вопрос. У нас есть серверы Devops в помещениях. Я создал выделенную учетную запись службы в Active Directory с целью добавления записей DNS. Я пытаюсь добавить запись DNS CNAME, используя Powershell в конвейере. К сожалению, он отказывается работать в качестве dnsAdmin. Я прошел через процессы и делегирование установки и все необходимые права для учетной записи для управления записями DNS. Я протестировал учетную запись, и она может добавлять / удалять записи DNS без повышения прав, поэтому я на 100% уверен, что учетная запись пользователя НЕ является проблемой.

На нашем сервере я установил «RSAT: DNS Tools» и с помощью add -dnsServerResourceRecordCName, он работает из PowerShell, работающего в качестве учетной записи службы.

Поэтому я добавил этот сценарий в конвейер devops как «Run Inline Powershell»

param (
    [string]$cname,
    [string]$hostname,
    [string]$zone,
    [string]$dnsServer,
    [string]$username,
    [string]$password
)

$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username, $pass

Invoke-Command -ComputerName $dnsServer -Credential $cred -ScriptBlock { 
    $cname = $using:cname
    $zone = $using:zone

    $existing = Get-DnsServerResourceRecord -Name $cname -ZoneName $zone -RRType CName -ErrorAction SilentlyContinue -ErrorVariable ProcessError
    if ($ProcessError) {
        Write-Host "Adding CName $cname for $using:hostname.$zone."
        add-dnsServerResourceRecordCName -name $cname -HostNameAlias "$using:hostname.$zone." -ZoneName "$zone" 
    } else {
        $hostname = $existing.RecordData.HostNameAlias
        Write-Host "$cname exists as $hostname"    
    }
}

Однако я продолжаю получать ошибки, в которых отказано в разрешении , Я также попробовал другие методы Powershell, такие как использование start-process и $ session и запуск скриптов, я проверил, что это не проблема двойного прыжка. И у нас давно установилась среда Winrm, мы ежедневно используем скрипты Powershell, поэтому знаем, что они работают. Помните, что мы запустили вышеупомянутый скрипт и передали ему параметры как пользователь учетной записи службы, и он работает с нескольких разных рабочих станций, включая текущий веб-сервер.

Чтобы доказать, что мои настройки работают, я добавил учетную запись в группа администраторов домена, поставила ее в очередь в DevOps и все работает как положено. DNS-запись была создана, как и ожидалось. Итак, мы знаем, что это связано с доступом, который имеет администратор домена, а учетная запись службы - нет.

Есть ли шанс, что у кого-то здесь есть ответ на эту проблему?

Чад

...