Azure PowerShellを使ってアタッチされてないAzure Managed Disksやネットワークインターフェースを取得削除

2019-08-23Azure,Managed Disks,Network Interface,PowerShell/Azure CLI,Virtual Machine

 Azure VMを削除した場合VM自体は削除されますが、VMに紐づいていたManaged Disksやネットワークインターフェースは一緒に削除されません。 
Managed Disksやネットワークインタフェースを個別に削除する必要があります。特にManaged Disksは削除しない限り使ってなくても課金が継続さます。使ってない場合は削除しておいた方がお得です。

 今回はリソースグループ内で利用されていないManaged Disksやネットワークインターフェースをまとめて削除するPowerShellを作ってみました。

スポンサーリンク

使われていないManaged Disksをまとめて削除するPowerShell

使用されていないManaged Disks一覧の取得、削除を行ってみます。

所有者VMが存在しないManaged Disksを使用されていないディスクとしています。

    • 対象リソースグループ名を指定する
    • 削除の場合は1を指定する。取得表示のみの場合は0を指定する。
    • 確認メッセージを表示する場合は-Forceを外してください。

#対象のRG名を指定
$rgName =“リソースグループ名"
$deleteUnattachedDisks=0

$managedDisks = Get-AzureRmDisk foreach ($md in $managedDisks) {
#リソースグループを指定しない場合は置き換える。
#if$md.ManagedBy -eq $null)

if($md.ManagedBy -eq $null| Where { $md.ResourceGroupName -eq $rgName }){

#削除の場合は1、確認だけの場合は0を指定

if($deleteUnattachedDisks -eq 1){

Write-Host “Deleting unattached Managed Disk with Id: $($md.Id)"

#確認メッセージを表示する場合は、-Forceを削除すること

$md | Remove-AzureRmDisk -Force

Write-Host “Deleted unattached Managed Disk with Id: $($md.Id) “

}else{

$md.Id

} } }

削除された場合は、以下のようなメッセージが表示されます。

Deleted unattached Managed Disk with Id: /subscriptions/”SubscriptionID”/resourceGroups/”RG名”/providers/Microsoft.Compute/disks/”Disk名”

使われていないAzure ネットワークインターフェースをまとめて削除するPowerShell

Managed Disksと同様に、使用されていないネットワークインターフェースの一覧の取得、削除を行ってみました。

接続先が存在しないネットワークインターフェースを使用されていないディスクとしています。

    • 対象リソースグループ名を指定する
    • 削除の場合は1を指定する。取得表示のみの場合は0を指定する。
    • 確認メッセージを表示する場合は-Forceを外してください。
#対象のRG名を指定
$rgName =“リソースグループ名"

$deleteNetworkIF=1

$NetworkIF = Get-AzureRmNetworkInterface foreach ($nic in $NetworkIF) {

#リソースグループを指定しない場合は、これに置き換える。
#if$nic.VirtualMachine -eq $null)

if($nic.VirtualMachine -eq $null| Where { $nic.ResourceGroupName -eq $rgName }){

#削除の場合は1、確認だけの場合は0を指定

if($deleteNetworkIF -eq 1){

Write-Host “Deleting unattached Network Interface with Name: $($nic.name)"

#確認メッセージを表示する場合は、-Forceを削除すること

$md | Remove-AzureRmNetworkInterface -Force

Write-Host “Deleting unattached Network Interface with Name: $($nic.Name) “

}else{

$nic.Id

} } }

削除された場合は、以下のようなメッセージが表示されます。

Deleted unattached Managed Disk with Id: /subscriptions/”SubscriptionID”/resourceGroups/”RG名”/providers/Microsoft.Network/networkInterfaces/"ネットワークインターフェース名”

仮想マシン(Azure VM)と一緒に削除はこちらで試しております。