Резюме
В рамках нашего процесса сборки на DevOps я пытаюсь скопировать артефакт сборки в определенную папку на общем сетевом ресурсе. Проблема в том, что, хотя агент сборки находится в нашей внутренней сети, служба DevOps не имеет разрешений для доступа к любому сетевому ресурсу.
Я думаю, что я могу обойти это, предоставив действительные учетные данные для входа в сценарий PowerShell, который выполняет эту работу, но у меня возникают проблемы с получением учетных данных, которые будут приняты. Хотя просмотр структуры папок без учетных данных кажется возможным, на самом деле внесение изменений (создание / удаление файлов и / или папок) дает мне сообщения об отказе в доступе или об аутентификации.
Что я пробовал
Сначала я выполнял очень простую команду создания папки:
# NETWORK_SHARE would be the internal IP of the target public folder on the network, like 12.345.678.90
New-Item -Path "NETWORK_SHARE\path\to\folder" -ItemType Directory
Но это дало мне ошибку «Отказано в доступе»:
New-Item: доступ к пути к папке запрещен.
Затем я провел некоторое исследование и подумал, что, возможно, если я предоставлю учетные данные действительного пользователя, это позволит мне сделать это. Вот простая команда теста. Предполагается создать новую папку в указанном месте:
$username = "MyUsername"
$password = ConvertTo-SecureString "MyPassword" -AsPlainText -Force
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password
# NETWORK_SHARE would be the internal IP of the target public folder on the network, like 12.345.678.90
Invoke-Command -ComputerName "NETWORK_SHARE" -ScriptBlock { New-Item -Path $args[0] -ItemType Directory } -Cred $credentials -Authentication Credssp -ArgumentList "NETWORK_SHARE\path\to\folder"
Я получаю следующую ошибку:
Соединение с удаленным сервером NETWORK_SHARE завершилось неудачно со следующим сообщением об ошибке: Клиент WinRM не может обработать запрос. CredSSP
проверка подлинности в настоящее время отключена в конфигурации клиента. Измените конфигурацию клиента и повторите запрос. Аутентификация CredSSP также должна быть включена в конфигурации сервера. Кроме того, групповая политика должна быть отредактирована, чтобы разрешить делегирование полномочий на целевой компьютер. Используйте gpedit.msc и просмотрите следующую политику: Конфигурация компьютера -> Административные шаблоны -> Система -> Делегирование учетных данных -> Разрешить делегирование новых учетных данных. Убедитесь, что он включен и настроен с именем участника-службы, соответствующим целевому компьютеру. Например, для имени целевого компьютера «myserver.domain.com» имя участника-службы может быть одним из следующих: WSMAN / myserver.domain.com или WSMAN / *. Domain.com
Даже не похоже, что он пытается аутентифицироваться, он просто сразу выкладывает ошибку, описанную выше. Я не уверен, как идти об отладке этого. Я могу вносить изменения в агент сборки, если это необходимо, но у меня нет возможности изменить какую-либо конфигурацию на целевом сетевом ресурсе, так как она поддерживается ИТ-командой, и они очень строги в отношении открытия наших дисков для Интернета. Есть ли способ успешно пройти аутентификацию для создания новой папки на сетевом ресурсе без изменения какой-либо конфигурации на цели?