Моя среда разработки использует удаленный гибридный рабочий для запуска консольного приложения.Я запускаю приложение через webhook, и оно работает именно так, как я хочу.PowerShell выглядит следующим образом:
[CmdletBinding()]
Param([object]$WebhookData) #this parameter name needs to be called
WebHookData otherwise the webhook does not work as expected.
$VerbosePreference = 'continue'
if($WebhookData -ne $null)
{
C:\Projects\myconsoleApp.exe
}
else
{
Write-Error -Message 'Runbook was not started from Webhook' -ErrorAction stop
}
Для жизни я не могу найти образец, чтобы сделать то же самое на моей лазурной виртуальной машине, где живет мой производственный код.У меня много vms, и я хочу запустить это только на одной виртуальной машине.Это то, где я сейчас нахожусь .. Я не могу с этим работать вообще.
[CmdletBinding()]
#workflow MyFirstRunbook-Workflow
#{
$ResourceGroupName = "My-Resource_Group"
$VMName = "my-vm-name"
#connect to the VM
$Conn = Get-AutomationConnection -Name AzureRunAsConnection
#Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
#connect to the account
Connect-AzureRmAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
#run the console app
C:\projects\myconsoleapp.exe
#Start-AzureRmVM -Name $VMName -ResourceGroupName $ResourceGroupName
#}
Вывод моей ошибки выглядит следующим образом:
Connect-AzureRmAccount: термин «Connect-AzureRmAccount» не распознается как имя командлета, функции, файла сценарияили работоспособная программа.Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.В строке: 11 символов: 1 + Connect-AzureRmAccount -ServicePrincipal -Tenant $ Conn.TenantID -Appl ... + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound: (Connect-AzureRmAccount: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException C: \ projects \ myconsoleapp.exe: термин «C: \ projects \ myconsoleapp.exe» не распознается как имя командлета, функции,файл сценария или работающая программа.Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.В строке: 14 символов: 1 + C: \ projects \ myconsoleapp.exe + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound:(C: \ projects \ myconsoleapp.exe: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Я в значительной степени запутался во всем, что касается запроса моей единственной лазурной виртуальной машины сделать то, что я хотел быдумаю, это довольно простая просьба.Я не знаю, должен ли я что-то устанавливать на мою ВМ или ....?Виртуальная машина довольно новая .. ~ 6 месяцев
-------------- ОБНОВЛЕНИЕ ---------------
Я изменил свой код так, чтобы он читался как
workflow MyFirstRunbook-Workflow
{
Get-Module AzureRm
Install-Module AzureRm -Force
$ResourceGroupName = "My-Resource_Group"
$VMName = "My-Vm-Name"
#connect to the VM
$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
#connect to the account
Connect-AzureRmAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
#run the console app
C:\projects\myconsoleapp.exe
#Start-AzureRmVM -Name $VMName -ResourceGroupName $ResourceGroupName
}
, что привело к выдаче этой ошибки
В строке: 17 символов: 1 + C: \ projects \ myconsoleapp.exe+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Не удается найти команду «C: \ projects \ myconsoleapp.exe».Если эта команда определена как рабочий процесс, убедитесь, что она определена до рабочего процесса, который ее вызывает.Если это команда, предназначенная для запуска непосредственно в Windows PowerShell (или недоступная в этой системе), поместите ее в InlineScript: 'InlineScript {C: \ projects \ myconsoleapp.exe}' + CategoryInfo: ParserError: (:) [], ParseException + FullyQualifiedErrorId: CommandNotFound
Я не могу понять, как он знает, как подключиться к конкретной виртуальной машине, которую я перечислил, поскольку нигде он не использует $ VMName или $ ResourceGroupName ??Я так растерялся из-за того, как заставить это работать на лазури.