Я пытаюсь подключиться к сайту sharepoint из задания PowerShell, запущенного в Azure Службе приложений, при каждом подключении оно выдает следующую ошибку:
Authentication failed: A positional parameter cannot be found that accepts argument 'System.Management.Automation.PSCredential'.
При просмотре в Исходный код для метода Connect-PnPOnline для позиционного параметра -Credentials ожидает CredentialPipeBind, который является классом publi c запечатанным классом CredentialPipeBind
Класс выглядит так, как будто он предназначен для переключения между учетными данными из windows диспетчера учетных данных или объектом учетных данных powershell. Задание Azure может хотеть получить литеральный тип из позиционного параметра? Я попытался дать ему
Function Set-SpsConnection ($url, $creds) {
$crpb = [SharePointPnP.PowerShell.Commands.Base.PipeBinds.CredentialPipeBind]::new($creds)
Connect-PnPOnline –Url $sharepointurl –Credentials $crpb
}
Но безрезультатно, теперь он думает, что я использую SharePointPnP.PowerShell.Commands.Base.PipeBinds.CredentialPipeBind
вместо CredentialPipeBind
, может быть, я могу как-то ссылаться на сборку, чтобы мне не пришлось указать?
Кажется, проблема возникает только тогда, когда она запускается заданием или я запускаю сценарий в консоли Kudu с помощью. \ scriptname.ps1, когда я выполняю код в консоли Kudu. Скопируйте и вставьте его кажется, работает нормально ...
По моему мнению, это просто неотъемлемый недостаток в azure системе заданий, что она будет интерпретировать только литеральные типы, а не работать так же, как на клиенте.