问题描述
我有下面的脚本,该脚本试图找出Azure脚本的租户。虽然脚本运行良好,但我对其效率不满意。
一旦找到所需的租户,我想停止进一步执行此脚本。
$Subscriptions = Read_Data_From_Table -ServerInstance "MysqLInstanceName" -Query "select SubscriptionID from CPCapacity..Subscriptions where Domain = 'UnkNown'"
$N = 1
FOREACH ($SubscriptionID in $Subscriptions) {
$SubscriptionID = $SubscriptionID.SubscriptionID
Write-host -ForegroundColor Green "$N. Working on $SubscriptionID"
#GME
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 124edf19-b350-4797-aefc-3206115ffdb3 -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Subscription $SubscriptionID -ErrorAction SilentlyContinue
$Var = $Connect | findstr "124edf19-b350-4797-aefc-3206115ffdb3"
IF($Var -match "124edf19-b350-4797-aefc-3206115ffdb3" )
{
Write-Host "GME Domain | $Var" -ForegroundColor Yellow
}
#PME
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 975f013f-7f24-47e8-a7d3-abc4752bf346 -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SubscriptionID $SubscriptionID -ErrorAction SilentlyContinue
$Var = $Connect | findstr "975f013f-7f24-47e8-a7d3-abc4752bf346"
IF($Var -match "975f013f-7f24-47e8-a7d3-abc4752bf346" )
{
Write-Host "PME Domain | $Var" -ForegroundColor Green
}
#AME
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 33e01921-4d64-4f8c-a055-5bdaffd5e33d -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SubscriptionID $SubscriptionID -ErrorAction SilentlyContinue
$Var = $Connect | findstr "33e01921-4d64-4f8c-a055-5bdaffd5e33d"
IF($Var -match "33e01921-4d64-4f8c-a055-5bdaffd5e33d" )
{
Write-Host "AME Domain | $Var" -ForegroundColor Green
}
#Redmond
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 72f988bf-86f1-41af-91ab-2d7cd011db47 -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SubscriptionID $SubscriptionID -ErrorAction Error
$Var = $Connect | findstr "72f988bf-86f1-41af-91ab-2d7cd011db47"
IF($Var -match "72f988bf-86f1-41af-91ab-2d7cd011db47" )
{
Write-Host "Redmond Domain | $Var" -ForegroundColor Green
}
ELSE
{
Write-Host "UnkNown Domain $SubscriptionID" -ForegroundColor RED
}
$N = $N +1
Write-Host " "
}
解决方法
继续语句对我有用。如果可以更好地编写此代码,请提出建议。我需要代码审查
$Subscriptions = Read_Data_From_Table -ServerInstance "MySQLInstanceName" -Query "select SubscriptionID from CPCapacity..Subscriptions where Domain = 'Unknown'"
$N = 1
FOREACH ($SubscriptionID in $Subscriptions) {
$SubscriptionID = $SubscriptionID.SubscriptionID
Write-host -ForegroundColor Green "$N. Working on $SubscriptionID"
#GME
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 124edf19-b350-4797-aefc-3206115ffdb3 -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Subscription $SubscriptionID -ErrorAction SilentlyContinue
$Var = $Connect | findstr "124edf19-b350-4797-aefc-3206115ffdb3"
IF($Var -match "124edf19-b350-4797-aefc-3206115ffdb3" )
{
Write-Host "GME Domain | $Var" -ForegroundColor Yellow
$N = $N +1
continue
}
#PME
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 975f013f-7f24-47e8-a7d3-abc4752bf346 -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SubscriptionID $SubscriptionID -ErrorAction SilentlyContinue
$Var = $Connect | findstr "975f013f-7f24-47e8-a7d3-abc4752bf346"
IF($Var -match "975f013f-7f24-47e8-a7d3-abc4752bf346" )
{
Write-Host "PME Domain | $Var" -ForegroundColor Green
$N = $N +1
continue
}
#AME
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 33e01921-4d64-4f8c-a055-5bdaffd5e33d -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SubscriptionID $SubscriptionID -ErrorAction SilentlyContinue
$Var = $Connect | findstr "33e01921-4d64-4f8c-a055-5bdaffd5e33d"
IF($Var -match "33e01921-4d64-4f8c-a055-5bdaffd5e33d" )
{
Write-Host "AME Domain | $Var" -ForegroundColor Green
$N = $N +1
continue
}
#Redmond
$Connect = $Null
$Connect = Connect-AzAccount -ServicePrincipal -ApplicationID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX -Tenant 72f988bf-86f1-41af-91ab-2d7cd011db47 -CertificateThumbprint XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SubscriptionID $SubscriptionID -ErrorAction SilentlyContinue
$Var = $Connect | findstr "72f988bf-86f1-41af-91ab-2d7cd011db47"
IF($Var -match "72f988bf-86f1-41af-91ab-2d7cd011db47" )
{
Write-Host "Redmond Domain | $Var" -ForegroundColor Green
$N = $N +1
continue
}
ELSE
{
Write-Host "Unknown Domain $SubscriptionID" -ForegroundColor RED
$N = $N +1
continue
}
$N = $N +1
Write-Host " "
}