I am using and edited version of the script in the first answer on this question。我首先登录,选择适当的订阅,然后获取Azure Rm上下文。我这样做时出现此错误:
Get-AzureWebsiteJob:未指定默认订阅。使用Select-AzureSubscription -Default设置默认订阅。
剧本:
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId subidguid
Get-AzureRmContext
$groups = get-AzureRmResourceGroup
foreach($group in $groups){
$webApps = Get-AzureRmWebApp -ResourceGroupName $group.ResourceGroupName
foreach($webApp in $webApps){
write-host -ForegroundColor Yellow $webApp.Name
### ERROR HAPPENS
$job = Get-AzureWebsiteJob -Name $webApp.Name
if($job){
write-host -ForegroundColor DarkYellow $job.JobName
}
$job = Get-AzureWebsiteJob -Name $webApp.Name -Slot staging
if($job){
write-host -ForegroundColor DarkYellow $job.JobName " -staging"
}
}
}
我确实得到了屏幕上输出的网络应用程序的名称,但是当它查找webjobs时,我收到了该错误。我根据错误尝试了以下技术,但这没有帮助(编辑完整的代码以明确我做了哪些更改,即使我仍然遇到相同的错误):
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId subidguid
Get-AzureRmContext
$groups = get-AzureRmResourceGroup
foreach($group in $groups){
$webApps = Get-AzureRmWebApp -ResourceGroupName $group.ResourceGroupName
foreach($webApp in $webApps){
write-host -ForegroundColor Yellow $webApp.Name
### ERROR HAPPENS
Select-AzureRmSubscription -SubscriptionId subidguid
$job = Get-AzureWebsiteJob -Name $webApp.Name
if($job){
write-host -ForegroundColor DarkYellow $job.JobName
}
### ERROR HAPPENS
Select-AzureRmSubscription -SubscriptionId subidguid
$job = Get-AzureWebsiteJob -Name $webApp.Name -Slot staging
if($job){
write-host -ForegroundColor DarkYellow $job.JobName " -staging"
}
}
}
基本上,在获取Web作业详细信息之前,我首先选择订阅ID(缩写):
Select-AzureRmSubscription -SubscriptionId subidguid
$job = Get-AzureWebsiteJob -Name $webApp.Name
执行......
Select-AzureRmSubscription -Default -SubscriptionId subguidid
引发不同的错误:
Set-AzureRmContext:缺少参数的参数 ' DefaultProfile&#39 ;.指定类型的参数 ' Microsoft.Azure.Commands.Common.Authentication.Abstractions.IAzureContextContainer' 然后再试一次。
我尝试使用DefaultProfile
参数代替Default
。无论我使用Default
传递什么,我都会收到错误:
Set-AzureRmContext:无法绑定参数' DefaultProfile'。不能 转换" WhatYouEntered" type" System.String"的值输入 " Microsoft.Azure.Commands.Common.Authentication.Abstractions.IAzureContextContainer"
我仍然得到同样的错误。当我查看Get-AzureWebsiteJob
函数中允许的参数时,我没有看到指定订阅的选项。鉴于网络应用程序应该搜索作业,并且Web应用程序返回,为什么这里没有通过订阅ID找到它?
答案 0 :(得分:1)
Get-AzureWebsiteJob
是Azure服务管理PowerShell模块。
您需要使用Add-AzureAccount
来使用以下cmdlet。
使用此选项来选择您的默认订阅:
Select-AzureSubscription -Default -SubscriptionName "My Production (Pay-As-You-Go)"
您也可以选择使用-SubscriptionId
(和GUID)代替名称。
有关Select-AzureSubscription
命令行开关的更多信息;输入Get-Help Select-AzureSubscription
。
如果这不起作用,请先尝试先运行,然后再选择订阅:
Add-AzureAccount
答案 1 :(得分:1)
目前,Azure经典网站已转移到Azure ARM模块,我们无法使用BaseEntity
来获取网络作业。
ARM PowerShell Cmdlet中有无直接等效项。
我们可以使用此命令列出网络应用作业:
Get-AzureWebsiteJob
以下是一个例子:
Get-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceName $AppService -ResourceType microsoft.web/sites/<Webjob-type> -ApiVersion $Apiversion
我们也可以使用此命令启动或停止Web作业。
$Apiversion = "2015-08-01"
Get-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceName jasonapp3 -ResourceType microsoft.web/sites/triggeredwebjobs -ApiVersion $Apiversion
删除webjob:
Invoke-AzureRmResourceAction -ApiVersion $Apiversion -ResourceGroupName $ResourceGroupName -ResourceName $ResourceName -ResourceType microsoft.web/sites/<Webjob-type> -Action start/stop -Force
希望这有帮助。