I den här artikeln hittar du stegen för att ta bort en virtuell dator (VM) och dess beroenden från Azure Stack Hub.
Om du tar bort en virtuell dator från Azure Stack Hub är komponentberoendena; Datadiskar, virtuella nätverksgränssnitt och diagnostikcontainrar finns kvar i resursgruppen. Dessa objekt tas inte bort automatiskt tillsammans med os-disken. Följ stegen i den här artikeln för att ta bort os-skivan och komponentberoenden.
När du skapar en ny virtuell dator skapar du vanligtvis en ny resursgrupp och placerar alla beroenden i den resursgruppen. När du vill ta bort den virtuella datorn och alla dess beroenden kan du ta bort resursgruppen. Azure Resource Manager tar bort beroendena. Det finns tillfällen då du inte kan ta bort resursgruppen för att ta bort den virtuella datorn. Den virtuella datorn kan till exempel innehålla resurser som inte är beroenden för den virtuella dator som du vill behålla.
Du kan använda Azure Portal eller PowerShell för att ta bort den virtuella datorn och dess beroenden.
Om du inte kan ta bort resursgruppen finns beroendena antingen inte i samma resursgrupp eller så finns det andra resurser. Följ de här stegen:
- Öppna Azure Stack-användarportalen.
- Välj Virtuella datorer. Leta upp den virtuella datorn och välj sedan datorn för att öppna bladet Virtuell dator.
- Anteckna resursgruppen som innehåller beroenden för virtuella datorer och virtuella datorer.
- Välj Nätverk och anteckna nätverksgränssnittet.
- Välj Diskar och anteckna OS-disken och datadiskarna.
- Gå tillbaka till bladet Virtuell dator och välj Ta bort.
- Skriv ja för att bekräfta borttagningen och välj sedan Ta bort.
- Välj Resursgrupper och välj sedan resursgruppen.
- Ta bort beroendena genom att manuellt välja de objekt som du antecknade. För varje objekt väljer du Ta bort:
- Skriv ja för att bekräfta borttagningen och välj Ta bort.
- Vänta tills resursen har tagits bort helt.
- Du kan sedan ta bort nästa beroende.
Om du inte kan ta bort resursgruppen finns beroendena antingen inte i samma resursgrupp eller så finns det andra resurser. Följ stegen i det här avsnittet.
Anslut till Azure Stack Hub-miljön och uppdatera sedan följande variabler med namnet på den virtuella datorn och resursgruppen. Anvisningar om hur du ansluter PowerShell-sessionen till Azure Stack Hub finns i Ansluta till Azure Stack Hub med PowerShell som användare.
$machineName = 'VM_TO_DELETE'
$resGroupName = 'RESOURCE_GROUP'
$machine = Get-AzVM -Name $machineName -ResourceGroupName $resGroupName
Hämta vm-information och namn på beroenden. Kör följande cmdletar i samma session:
$azResParams = @{
'ResourceName' = $machineName
'ResourceType' = 'Microsoft.Compute/virtualMachines'
'ResourceGroupName' = $resGroupName
}
$vmRes = Get-AzResource @azResParams
$vmId = $vmRes.Properties.VmId
Ta bort containern för startdiagnostiklagring. Om datornamnet är kortare än 9 tecken ändrar du indexet till stränglängden i delsträngen när du skapar variabeln $diagContainer
.
Kör följande cmdletar i samma session:
$container = [regex]::match($machine.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
$diagContainer = ('bootdiagnostics-{0}-{1}' -f $machine.Name.ToLower().Substring(0, 9), $vmId)
$containerRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $container }).ResourceGroupName
$storeParams = @{
'ResourceGroupName' = $containerRg
'Name' = $container }
Get-AzStorageAccount @storeParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainer } | Remove-AzStorageContainer -Force
Ta bort det virtuella nätverksgränssnittet:
$machine | Remove-AzNetworkInterface -Force
Ta bort operativsystemdisken:
$osVhdUri = $machine.StorageProfile.OSDisk.Vhd.Uri
$osDiskConName = $osVhdUri.Split('/')[-2]
$osDiskStorageAcct = Get-AzStorageAccount | where { $_.StorageAccountName -eq $osVhdUri.Split('/')[2].Split('.')[0] }
$osDiskStorageAcct | Remove-AzStorageBlob -Container $osDiskConName -Blob $osVhdUri.Split('/')[-1] -Confirm:$true
Ta bort de datadiskar som är anslutna till den virtuella datorn:
if ($machine.StorageProfile.DataDisks.Name.Count -gt 0)
{
Write-Verbose -Message 'Deleting disks...'
foreach ($uri in $machine.StorageProfile.DataDisks.Vhd.Uri )
{
$dataDiskStorageAcct = Get-AzStorageAccount | where { $_.StorageAccountName -eq $uri.Split('/')[2].Split('.')[0]
$dataDiskStorageAcct | Remove-AzStorageBlob -Container $uri.Split('/')[-2] -Blob $uri.Split('/')[-1] -ea Ignore -Confirm:$true
}
}
Ta slutligen bort den virtuella datorn. Cmdleten tar lite tid att köra. Du kan granska komponenterna som är kopplade till den virtuella datorn genom att granska VM-objektet i PowerShell. Om du vill granska objektet läser du variabeln som innehåller VM-objektet. Skriv $machine
.
Om du vill ta bort den virtuella datorn kör du följande kommando i samma session:
$machine | Remove-AzVM -Force
Om du inte kan ta bort resursgruppen finns beroendena antingen inte i samma resursgrupp eller så finns det andra resurser. Följ stegen i det här avsnittet.
Anslut till Azure Stack Hub-miljön och uppdatera sedan följande variabler med namnet på den virtuella datorn och resursgruppen. Anvisningar om hur du ansluter PowerShell-sessionen till Azure Stack Hub finns i Ansluta till Azure Stack Hub med PowerShell som användare.
$machineName = 'VM_TO_DELETE'
$resGroupName = 'RESOURCE_GROUP'
$machine = Get-AzureRmVM -Name $machineName -ResourceGroupName $resGroupName
Hämta vm-information och namn på beroenden. Kör följande cmdletar i samma session:
$azResParams = @{
'ResourceName' = $machineName
'ResourceType' = 'Microsoft.Compute/virtualMachines'
'ResourceGroupName' = $resGroupName
}
$vmRes = Get-AzureRmResource @azResParams
$vmId = $vmRes.Properties.VmId
Ta bort containern för startdiagnostiklagring. Om datornamnet är kortare än 9 tecken ändrar du indexet till stränglängden i delsträngen när du skapar variabeln $diagContainer
.
Kör följande cmdletar i samma session:
$container = [regex]::match($machine.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
$diagContainer = ('bootdiagnostics-{0}-{1}' -f $machine.Name.ToLower().Substring(0, 9), $vmId)
$containerRg = (Get-AzureRmStorageAccount | where { $_.StorageAccountName -eq $container }).ResourceGroupName
$storeParams = @{
'ResourceGroupName' = $containerRg
'Name' = $container }
Get-AzureRmStorageAccount @storeParams | Get-AzureStorageContainer | where { $_.Name-eq $diagContainer } | Remove-AzureStorageContainer -Force
Ta bort det virtuella nätverksgränssnittet:
$machine | Remove-AzureRmNetworkInterface -Force
Ta bort operativsystemdisken:
$osVhdUri = $machine.StorageProfile.OSDisk.Vhd.Uri
$osDiskConName = $osVhdUri.Split('/')[-2]
$osDiskStorageAcct = Get-AzureRmStorageAccount | where { $_.StorageAccountName -eq $osVhdUri.Split('/')[2].Split('.')[0] }
$osDiskStorageAcct | Remove-AzureStorageBlob -Container $osDiskConName -Blob $osVhdUri.Split('/')[-1]
Ta bort de datadiskar som är anslutna till den virtuella datorn:
if ($machine.DataDiskNames.Count -gt 0)
{
Write-Verbose -Message 'Deleting disks...'
foreach ($uri in $machine.StorageProfile.DataDisks.Vhd.Uri )
{
$dataDiskStorageAcct = Get-AzureRmStorageAccount -Name $uri.Split('/')[2].Split('.')[0]
$dataDiskStorageAcct | Remove-AzureStorageBlob -Container $uri.Split('/')[-2] -Blob $uri.Split('/')[-1] -ea Ignore
}
}
Ta slutligen bort den virtuella datorn. Cmdleten tar lite tid att köra. Du kan granska komponenterna som är kopplade till den virtuella datorn genom att granska VM-objektet i PowerShell. Om du vill granska objektet läser du variabeln som innehåller VM-objektet. Skriv $machine
.
Om du vill ta bort den virtuella datorn kör du följande kommando i samma session:
$machine | Remove-AzureRmVM -Force