我目前正在尝试在Azure中运行一个脚本,该脚本将通过我们所有的Web应用程序并打开FTPS。
这是我现在拥有的
$Subscriptions = Get-AzSubscription
foreach ($sub in $Subscriptions) {
Get-AzSubscription -SubscriptionName $sub.Name | Set-AzContext
$GetName = (Get-AzWebApp).Name
$GetRG = (Get-AzWebApp).ResourceGroup
Set-AzWebapp -Name $GetName -ResourceGroupName $GetRG -FtpsState FtpsOnly
}
Set-AzWebApp: Cannot convert 'System. '对象[]'转换为'System '类型。参数'Name'要求的字符串'。指定的
我目前得到这个错误,我不理解为。name和。resourcegroup,从我的理解已经是字符串。我是非常新的powershell,所以任何帮助将非常感激。谢谢大家!
您的示例调用没有参数的Az-WebApp
,它获取订阅中的所有应用程序-这是一个集合-然后尝试获取该结果的名称,这就是导致错误的原因。
您需要遍历订阅中的每个应用程序以及遍历每个订阅,如:
# Get all subscriptions and iterate them
Get-AzSubscription | ForEach-Object {
Set-AzContext -SubscriptionName $_.Name
# Get all web apps in the subscription and iterate them
Get-AzWebApp | ForEach-Object {
Set-AzWebApp -Name $_.Name -ResourceGroupName $_.ResourceGroup -FtpsState FtpsOnly
}
}