我是 Python 初学者,我有一个 powershell 脚本,它可以识别 azure 中的孤立对象,例如未使用的存储帐户、Vnet、Ip、磁盘、负载平衡器,因此我需要使用 Azure 函数或自动化帐户将它们复制到 python 脚本中。如果在 Azure 中可行或不可行,请帮助我,如果可行,请帮助我。
如果在 Azure 中可行或不可行,请帮助我,如果可行,请帮助我。下面是我检测孤立对象的 powershell 脚本。
#Login to Azure
$conn = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint -WarningAction Ignore > $null
#Find Orphaned Disks
Get-AzDisk | Where-Object {$_.DiskState -eq "Unattached"} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags
#Find Orphaned LoadBalancer
Get-AzLoadBalancer | Where-Object {!($_.BackendAddressPools)} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags
#Find Orphaned PublicIP
Get-AzPublicIpAddress | Where-Object {$_.IpConfiguration -eq $null} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags
#find orphaned nsg
Get-AzNetworkSecurityGroup | Where-Object {!($_.NetworkInterfaces) -and !($_.Subnets)} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags
#Find Orphaned VirtualNetwork
Get-AzVirtualNetwork | Where-Object {!($_.Subnets)} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags
#Unused storage accounts
& {
foreach ($storageAccount in Get-AzStorageAccount) {
$storageAccountName = $storageAccount.StorageAccountName #"azureautomationstr"
$resourceGroupName = $storageAccount.ResourceGroupName
# Get storage account key
$storageAccountKey = (Get-AzStorageAccountKey -Name $storageAccountName -ResourceGroupName $resourceGroupName).Value[0] | Where-Object {$_.Location -eq $LocationName}
# Create storage account context using above key
$context = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey | Where-Object {$_.Location -eq $LocationName} #-ErrorAction Stop $null
# Get the last modified date
$ErrorActionPreference = “silentlycontinue”
$lastModified = Get-AzStorageContainer -Context $context | Sort-Object -Property @{Expression = {$_.LastModified.DateTime}} | Select-Object -Last 1 -ExpandProperty LastModified
$unusedacc = (Get-Date).AddDays(-90)
if ($lastModified.DateTime -lt $unusedacc)
{
if($lastModified -eq $null){
New-Object psobject -Property @{
Name = $storageAccountName;
#LastModified = $lastModified.DateTime;
ResourceGroupName = $resourceGroupName
}
}
}
}
} | Format-Table Name, ResourceGroupName -autosize
```````