在我们使用AzureRM进行压力测试,配置和删除大块虚拟机时,我们注意到我们在配置和删除Runbook上遇到了一些奇怪的错误。我们希望有一个进程找到这些失败的作业并重新排队。为此,我们需要知道作业的输入参数。但是,当我们运行时
Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status "Failed" -ResourceGroupName $rg.ResourceGroupName
所有作业显示jobParameters的计数为0。
以下是一些示例代码:
<code to get assets>
$suspended = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status "Suspended" -ResourceGroupName $rg.ResourceGroupName
$failed = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status "Failed" -ResourceGroupName $rg.ResourceGroupName
$completed = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status Completed -ResourceGroupName $rg.ResourceGroupName
foreach($job in $completed)
{
Write-Output " "
$job
Write-Output " "
$jobId = $job.JobId.Guid.ToString()
Write-Output "Job Parameters for $jobId"
#Get-AzureRmAutomationJobOutput -Id $job.JobId -Stream Any -ResourceGroupName $rg.ResourceGroupName -AutomationAccountName $aa.AutomationAccountName -Verbose
foreach($jobParameter in $job.JobParameters)
{
$jobParameter
break
}
}
输出结果为:
ResourceGroupName : <valid RGN>
AutomationAccountName : <valid AAN>
JobId : 2b5fdc91-c87b-4704-9b12-91d2365eaa95
CreationTime : 2/10/2016 5:19:38 PM -05:00
Status : Completed
StatusDetails :
StartTime : 2/10/2016 5:19:42 PM -05:00
EndTime : 2/10/2016 5:43:25 PM -05:00
Exception :
LastModifiedTime : 2/10/2016 5:43:25 PM -05:00
LastStatusModifiedTime : 1/1/0001 12:00:00 AM +00:00
JobParameters : {}
RunbookName : Delete-AzureRmVm
HybridWorker :
StartedBy :
Job Parameters for 2b5fdc91-c87b-4704-9b12-91d2365eaa95
我们做错了什么,我们没有看到输入参数?无论作业状态如何,所有作业都显示0个作业参数。在AzureRM门户中查看相同的作业时,我们可以看到以下参数:
所以我们知道输入参数在那里,而不是如何通过PowerShell获取它们。我们非常感谢您提供的任何帮助。
谢谢!
答案 0 :(得分:1)
49px
才会返回Get-AzureRmAutomationJob
个集合。你可以在foreach循环中尝试这样的东西:
JobParameters
$jobDetails = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -ResourceGroupName $rg.ResourceGroupName -Id $job.Id
变量应填充$jobDetails
属性。