In dit artikel vindt u de stappen voor het verwijderen van een virtuele machine (VM) en de bijbehorende afhankelijkheden uit Azure Stack Hub.
Als u een VM verwijdert uit Azure Stack Hub, worden de onderdeelafhankelijkheden; dat wil gezegd dat gegevensschijven, virtuele netwerkinterfaces en diagnostische containers in de resourcegroep blijven. Deze items worden niet automatisch samen met uw besturingssysteemschijf verwijderd. Volg de stappen in dit artikel om de afhankelijkheden van uw besturingssysteemschijf en onderdeel te verwijderen.
Wanneer u een nieuwe virtuele machine maakt, maakt u doorgaans een nieuwe resourcegroep en plaatst u alle afhankelijkheden in die resourcegroep. Als u de VM en alle bijbehorende afhankelijkheden wilt verwijderen, kunt u de resourcegroep verwijderen. Azure Resource Manager verwijdert de afhankelijkheden. Er zijn momenten waarop u de resourcegroep niet kunt verwijderen om de VM te verwijderen; De VM kan bijvoorbeeld resources bevatten die geen afhankelijkheden zijn van de VM die u wilt behouden.
U kunt de Azure Portal of PowerShell gebruiken om uw VIRTUELE machine en de bijbehorende afhankelijkheden te verwijderen.
Als u de resourcegroep niet kunt verwijderen, bevinden de afhankelijkheden zich niet in dezelfde resourcegroep of zijn er andere resources. Volg deze stappen:
- Open de Azure Stack-gebruikersportal.
- Selecteer Virtuele machines. Zoek uw virtuele machine en selecteer vervolgens uw machine om de blade Virtuele machine te openen.
- Noteer de resourcegroep die de VM en VM-afhankelijkheden bevat.
- Selecteer Netwerken en noteer de netwerkinterface.
- Selecteer Schijven en noteer de besturingssysteemschijf en gegevensschijven.
- Ga terug naar de blade Virtuele machine en selecteer Verwijderen.
- Typ Ja om het verwijderen te bevestigen en selecteer vervolgens Verwijderen.
- Selecteer Resourcegroepen en selecteer vervolgens de resourcegroep.
- Verwijder de afhankelijkheden door handmatig de items te selecteren die u hebt genoteerd. Selecteer Verwijderen voor elk item:
- Typ Ja om het verwijderen te bevestigen en selecteer Verwijderen.
- Wacht totdat de resource volledig is verwijderd.
- Vervolgens kunt u de volgende afhankelijkheid verwijderen.
Als u de resourcegroep niet kunt verwijderen, bevinden de afhankelijkheden zich niet in dezelfde resourcegroep of zijn er andere resources. Volg de stappen in deze sectie.
Maak verbinding met uw Azure Stack Hub-omgeving en werk vervolgens de volgende variabelen bij met uw VM-naam en resourcegroep. Zie Verbinding maken met Azure Stack Hub met PowerShell als gebruiker voor instructies over het verbinden van uw PowerShell-sessie met Azure Stack Hub.
$machineName = 'VM_TO_DELETE'
$resGroupName = 'RESOURCE_GROUP'
$machine = Get-AzVM -Name $machineName -ResourceGroupName $resGroupName
Haal de VM-gegevens en de naam van afhankelijkheden op. Voer in dezelfde sessie de volgende cmdlets uit:
$azResParams = @{
'ResourceName' = $machineName
'ResourceType' = 'Microsoft.Compute/virtualMachines'
'ResourceGroupName' = $resGroupName
}
$vmRes = Get-AzResource @azResParams
$vmId = $vmRes.Properties.VmId
Verwijder de container voor diagnostische opslag voor opstarten. Als de computernaam korter is dan 9 tekens, wijzigt u de index in de tekenreekslengte in de subtekenreeks wanneer u de $diagContainer
variabele maakt.
Voer in dezelfde sessie de volgende cmdlets uit:
$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
De interface van het virtuele netwerk verwijderen:
$machine | Remove-AzNetworkInterface -Force
De schijf van het besturingssysteem verwijderen:
$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
Verwijder de gegevensschijven die zijn gekoppeld aan uw virtuele machine:
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
}
}
Verwijder ten slotte de VM. Het duurt even voordat de cmdlet is uitgevoerd. U kunt de onderdelen controleren die aan de VM zijn gekoppeld door het VM-object in PowerShell te controleren. Als u het object wilt controleren, raadpleegt u de variabele die het VM-object bevat. Typ $machine
.
Als u de VM wilt verwijderen, voert u in dezelfde sessie de volgende opdracht uit:
$machine | Remove-AzVM -Force
Als u de resourcegroep niet kunt verwijderen, bevinden de afhankelijkheden zich niet in dezelfde resourcegroep of zijn er andere resources. Volg de stappen in deze sectie.
Maak verbinding met uw Azure Stack Hub-omgeving en werk vervolgens de volgende variabelen bij met uw VM-naam en resourcegroep. Zie Verbinding maken met Azure Stack Hub met PowerShell als gebruiker voor instructies over het verbinden van uw PowerShell-sessie met Azure Stack Hub.
$machineName = 'VM_TO_DELETE'
$resGroupName = 'RESOURCE_GROUP'
$machine = Get-AzureRmVM -Name $machineName -ResourceGroupName $resGroupName
Haal de VM-gegevens en de naam van afhankelijkheden op. Voer in dezelfde sessie de volgende cmdlets uit:
$azResParams = @{
'ResourceName' = $machineName
'ResourceType' = 'Microsoft.Compute/virtualMachines'
'ResourceGroupName' = $resGroupName
}
$vmRes = Get-AzureRmResource @azResParams
$vmId = $vmRes.Properties.VmId
Verwijder de container voor diagnostische opslag voor opstarten. Als de computernaam korter is dan 9 tekens, wijzigt u de index in de tekenreekslengte in de subtekenreeks wanneer u de $diagContainer
variabele maakt.
Voer in dezelfde sessie de volgende cmdlets uit:
$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
De interface van het virtuele netwerk verwijderen:
$machine | Remove-AzureRmNetworkInterface -Force
De schijf van het besturingssysteem verwijderen:
$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]
Verwijder de gegevensschijven die zijn gekoppeld aan uw virtuele machine:
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
}
}
Verwijder ten slotte de VM. Het duurt even voordat de cmdlet is uitgevoerd. U kunt de onderdelen controleren die aan de VM zijn gekoppeld door het VM-object in PowerShell te controleren. Als u het object wilt controleren, raadpleegt u de variabele die het VM-object bevat. Typ $machine
.
Als u de VM wilt verwijderen, voert u in dezelfde sessie de volgende opdracht uit:
$machine | Remove-AzureRmVM -Force