Get-AutomationPSCredential недоступен в приложении функций Azure

#azure #powershell #azure-function-app

#azure #powershell #azure-функция-приложение

Вопрос:

Я получаю сообщение об ошибке ниже:

 2020-09-17T10:05:00.724 [Error] ERROR: Error logging into WVD: The
term 'Get-AutomationPSCredential' is not recognized as the name of a
cmdlet, function, script file, or operable program.Check the spelling
of the name, or if a path was included, verify that the path is
correct and try again.Exception             :Type    :
Microsoft.PowerShell.Commands.WriteErrorExceptionMessage : Error
logging into WVD: The term 'Get-AutomationPSCredential' is not
recognized as the name of a cmdlet, function, script file, or operable
program.Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.HResult :
-2146233087CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorExceptionFullyQualifiedErrorId :
Microsoft.PowerShell.Commands.WriteErrorException,_TimerTrigger1_InvocationInfo
:MyCommand       : _TimerTrigger1_HistoryId       : 1InvocationName  :
_TimerTrigger1_CommandOrigin   : InternalScriptStackTrace      : at <ScriptBlock>, D:homesitewwwrootTimerTrigger1run.ps1: line
158Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcException : Result:
ERROR: Error logging into WVD: The term 'Get-AutomationPSCredential'
is not recognized as the name of a cmdlet, function, script file, or
operable program.Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.Exception     
:Type    : Microsoft.PowerShell.Commands.WriteErrorExceptionMessage :
Error logging into WVD: The term 'Get-AutomationPSCredential' is not
recognized as the name of a cmdlet, function, script file, or operable
program.Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.HResult :
-2146233087CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorExceptionFullyQualifiedErrorId :
Microsoft.PowerShell.Commands.WriteErrorException,_TimerTrigger1_InvocationInfo
:MyCommand       : _TimerTrigger1_HistoryId       : 1InvocationName  :
_TimerTrigger1_CommandOrigin   : InternalScriptStackTrace      : at <ScriptBlock>, D:homesitewwwrootTimerTrigger1run.ps1: line
158Exception: Error logging into WVD: The term
'Get-AutomationPSCredential' is not recognized as the name of a
cmdlet, function, script file, or operable program.Check the spelling
of the name, or if a path was included, verify that the path is
correct and try again.Stack:
  

Я видел информацию в Интернете, которая предполагает, что это часть модуля «AzureAutomationAuthoringToolkit», но я не понимаю, как я устанавливаю это в среду, в которой работает приложение функций.материал и я следую за сообщением в блоге ниже, чтобы попытаться отключить автозапуск. Я совершенно уверен, что я правильно следовал этому. Для меня ошибка предполагает, что в среде не загружен модуль.

https://www.ciraltos.com/auto-start-and-stop-session-hosts-in-windows-virtual-desktop-spring-update-arm-edition-with-an-azure-function/

Комментарии:

1. Можете ли вы поделиться всей ошибкой? Оно усечено. Кроме того, вы сначала создали учетные данные, как показано здесь? learn.microsoft.com/en-us/azure/automation/shared-resources /… . Единственное, что нужно попробовать, — добавить это в начало вашего скрипта Import-Module -Verbose Az.Automation . Этот модуль уже должен быть доступен для вас в Azure Automation.

2. Спасибо, я обновил вопрос с полным стеком ошибок. Я попробовал инструкцию import и смог увидеть, как она импортирует различные функции, но все равно получаю ту же ошибку. Я не пробовал создавать учетные данные. Я смотрел на это, но не уверен, как это вписывается в этот пример, на той же странице говорится об использовании Get-AutomationPSCredential. Я рассмотрю ответ ниже, но у меня не будет свободного времени до следующей недели.

Ответ №1:

Я не думаю, что вы можете использовать команду Get-AutomationPSCredential в функции Azure, это внутренний командлет, принадлежащий внутреннему модулю Orchestrator.AssetManagement.Cmdlets , он доступен только при выполнении runbooks в среде Azure sandbox или на гибридном компьютере Windows Runbook Worker.

Итак, в вашем случае ваш вариант — использовать скрипт в automation powershell runbook, затем использовать Invoke-WebRequest в триггере таймера для вызова веб-запроса к URL-адресу webhook runbook для запуска runbook(поскольку скрипт должен запускаться каждые 5 минут, как указано автором).

 Invoke-WebRequest -Uri <Webhook URI> -Method Post
  

Для получения более подробной информации вы можете обратиться к ссылке, упомянутой в репозитории Github.

Комментарии:

1. Спасибо, похоже, что эта статья отличается от той, которой я следил, я посмотрю и сообщу вам результат. Я не смогу сделать это еще несколько дней, так как мне сказали, что на данный момент приоритеты должны быть сосредоточены на других вещах.