PowerShell-แแก แแแแแงแแแแแแ แแแแแแ แแแ แแ IT แแแแแแแกแขแ แแขแแ แแแ แฌแแ แแแขแแแแ แแฎแแแแแ แกแฎแแแแแกแฎแแ แแแแชแแแแแแก แแแขแแแแขแแแแ แแแแก แแ แ แแฎแแแแ แจแแแ, แแ แแแแ แฆแ แฃแแแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแแแแ แแฃแจแแแแแกแแก, แแแแกแแแฃแแ แแแแ Azure-แแแ. แแแแแแ แ แจแแแแฎแแแแแจแ, PowerShell-แแก แกแแจแฃแแแแแแ แแฃแจแแแแ แแแแ แแ แฃแคแ แ แแแกแแฎแแ แฎแแแแแ แแ แกแฌแ แแคแแ, แแแแ แ Azure แแแ แขแแแแ แแฃแจแแแแ. แแแกแ แแ แแแแแแแแขแคแแ แแฃแแ แแฃแแแแแก แฌแงแแแแแแ, PowerShell แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแแแแกแแแแ แแแแ แแชแแฃแ แกแแกแขแแแแแ.
แแแฃแฎแแแแแแ แแแแกแ, แแงแแแแแ Ubuntu-แก, Red Hat-แก แแ Windows-แก, PowerShell แแแแแฎแแแ แแแแ แแแ แแแ แแฅแแแแ แฆแ แฃแแแแแแแ แ แแกแฃแ แกแแแ. แแแแฃแแแก แแแแแงแแแแแแ
แแ แกแขแแขแแแจแ แฉแแแ แแแแแแฎแแแแแ, แแฃ แ แแแแ แจแแแแซแแแแ แแแแแแงแแแแ PowerShell VM-แแก แแแแแก แจแแกแแชแแแแแแ Azure แฆแ แฃแแแแจแ, แแกแแแ แฌแแจแแแแ VM แแ แแแกแแแ แแแแแแจแแ แแแฃแแ แแแแแฅแขแแแ.
แแแแจแแแแแแแแแแ! แกแแแฃแจแแแกแแแแก แแแกแแแแแแแแแแ แแ แแแแแแแฌแงแแแ แฎแแแแแแก แแแฌแแแแแ แกแแแแแแแคแแฅแชแแ แกแแจแฃแแแแแแแแ:
- แแฅแแแ แแแแญแแ แแแแแ แแแแฃแแ Azure PowerShell แแแแฃแแ - แแแกแ แฉแแแแขแแแ แแแ แจแแกแแซแแแแแแแ PowerShell Gallery-แแแ แแ แซแแแแแแ
Install-Module Az
. - แแฅแแแ แฃแแแ แแแแแแกแขแฃแ แแ แแแแแแขแแคแแแแชแแ Azure แฆแ แฃแแแแจแ, แกแแแแช แแแ แขแฃแแแฃแ แ แแแแฅแแแ แแฃแจแแแแก แแ แซแแแแแแก แแแจแแแแแ
Connect-AzAccount
.
แแแ แแแแ, แแแแแ แจแแแฅแแแแ แกแแ แแแขแ, แ แแแแแแช แจแแชแแแแก Azure VM-แแก แแแแแก. แแแแแ แแแแฎแกแแแ VS Code แแ แจแแแแแฎแแ แแฎแแแ PowerShell แกแแ แแแขแ, แ แแแแแกแแช แ.แฌ Resize-AzVirtualMachine.ps1 โ แฉแแแ แแแแแแแขแแแ แแแก แแแแแก แแแฌแแแแแก, แ แแแแ แช แแแแแแแแ แแ แแแ แแกแแ แแแก.
แฉแแแ แแแแฎแแแ แฎแแแแแกแแฌแแแแแ VM แแแแแแก
แกแแแแ VM แแแแแก แจแแชแแแแ, แฃแแแ แแแแ แแแแแ แ แ แแ แแก แแแกแแฆแแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแแกแแแแก Azure แฆแ แฃแแแแจแ. แแแแกแแแแแก แแฅแแแ แฃแแแ แจแแแกแ แฃแแแ แแ แซแแแแแ Get-AzVMSize
.
แแกแ แ แแ, แแแ แขแฃแแแฃแ แ แแแแฅแแแแกแแแแก devvm01 แ แแกแฃแ แก แฏแแฃแคแแแแ Dev แฉแแแ แแแแฎแแแ แงแแแแ แจแแกแแซแแ แแแกแแฆแแ แแแแแก:
Get-AzVMSize -ResourceGroupName dev -VMName devvm01
(แ แแแแฃแ แแ แแแแแแแแจแ, แ แ แแฅแแ แฃแแแ, แแแชแแแแ ResourceGroupName=dev ะธ VMName=devvm01 แแฅแแแ แแแฃแแแแแแ แแฅแแแแก แกแแแฃแแแ แแแแจแแแแแแแแแก แแ แแแ แแแแขแ แแแแกแแแแก.)
แแ แซแแแแแ แแแแแ แฃแแแแก แจแแแแแแก:
แแก แแ แแก แงแแแแ แจแแกแแซแแ แแแแแก แแแ แแแแขแ, แ แแแแแแช แจแแแซแแแแ แแแงแแแแแก แแแชแแแฃแ แแแ แขแฃแแแฃแ แแแแฅแแแแแ.
แแแแแ แจแแแชแแแแแ แแแแฅแแแแก แแแแ
แแแแแแแแแ, แฉแแแ แแแแชแแแแ แแแแแก แแฎแแ แแแแแแแ Standard_B1ls - แแก แแแแแ แฉแแแแแแแแ แกแแแจแ แแแ แแแ แแแแแแแแ. (แ แแแแฃแ แแแแแแแชแแแแจแ, แ แ แแฅแแ แฃแแแ, แแฅแแแ แแ แฉแแแ แแแแแกแแแแ แแแแแก, แ แแแแแแช แแญแแ แแแแแ.)
- แฏแแ แแแแแแงแแแแ แแ แซแแแแแ
Get-AzVM
แฉแแแ แแแฆแแแ แแแคแแ แแแชแแแก แฉแแแแ แแแแแฅแขแแก (แแแ แขแฃแแแฃแ แ แแแแฅแแแแก) แจแแกแแฎแแ แชแแแแแจแ แจแแแแฎแแแ$virtualMachine
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
- แจแแแแแ แแ แแแแแฅแขแแแแ แแแฆแแแ แฅแแแแแแก
.HardwareProfile.VmSize
แแ แแแแงแแแแ แกแแกแฃแ แแแแ แแฎแแแ แแแแจแแแแแแแ:$virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
- แแฎแแ แแ แฉแแแ แฃแแ แแแแ แแแกแ แฃแแแแ VM แแแแแฎแแแแแก แแ แซแแแแแแก -
Update-AzVm
:Update-AzVM -VM devvm01 -ResourceGroupName dev
- แฉแแแ แแแ แฃแแแแ, แ แแ แงแแแแแคแแ แแ แแแ แแแ แฉแแแแ แ - แแแแกแแแแแก แแแแแ แแแแฎแแแ แแแคแแ แแแชแแแก แฉแแแแ แแแแแฅแขแแก แจแแกแแฎแแ แแ แแแแแแแแแ แแแ แฅแแแแแแก
$virtualMachine.HardwareProfile
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01 $virtualMachine.HardwareProfile
แแฃ แแฅ แแแแแแแฎแแแ Standard_B1ls - แแก แแแจแแแแก, แ แแ แงแแแแแคแแ แ แ แแแแแ, แแแแฅแแแแก แแแแ แจแแชแแแแแแ. แจแแแแซแแแแ แฃแคแ แ แจแแ แก แฌแแฎแแแแแ แแ แแแแงแ แแแแ แแฅแแแแก แฌแแ แแแขแแแแก แแแกแแแแก แแแแแงแแแแแแ แแ แแแ แแฃแแแ แ แแแแแแแแ VM-แแก แแแแแก แจแแชแแแแ.
แ แแช แจแแแฎแแแ VM-แแก แฌแแจแแแก Azure-แจแ?
แฌแแจแแแ, แงแแแแแคแแ แ แแ แแ แแก แแกแแแ แแแ แขแแแ แแ แแแ แขแแแ, แ แแแแ แช แจแแแซแแแแ แฉแแแแแก. แงแแแแแแแ แแแแก แจแแแแแ, แแฃแชแแแแแแแแ แแ แแแแฅแแแแกแแแ แแแแแแจแแ แแแฃแแ แแ แแแแแ แ แแกแฃแ แกแแก แแแแฆแแแ, แแแ แจแแ แแก:
- แฉแแขแแแ แแแแก แแแแแแแกแขแแแแก แจแแกแแแแฎแ แแแแขแแแแแ แแแ
- แฅแกแแแแก แแแขแแ แคแแแกแแแ
- แกแแฏแแ แ IP แแแกแแแแ แแแแ
- แกแแกแขแแแแก แแแกแแ แแ แแแแแ, แกแแแแช แแแแฎแแแ แแแกแ แกแขแแขแฃแกแ
- แแแแแชแแแแ แแแกแแแแ
แแแแขแแ, แฉแแแ แจแแแฅแแแแ แคแฃแแฅแชแแแก แแ แแฃแฌแแแแแ แแแก Remove-AzrVirtualMachine
- แแ แแก แฌแแจแแแก แแ แ แแฎแแแแ Azure VM-แก, แแ แแแแ แงแแแแแแแ แแแแแแฅแแฃแแก.
แฉแแแ แแแแแแแแ แ แกแขแแแแแ แขแฃแ แแแแแ แแ แฏแแ แแแฆแแแ แฉแแแแก แแแแแฅแขแก (VM) แแ แซแแแแแแก แแแแแงแแแแแแ Get-AzVm
. แแแแแแแแแ, แแก แแงแแก แแแแฅแแแ WINSRV19 แ แแกแฃแ แก แฏแแฃแคแแแแ MyTestVMs.
แจแแแแแแฎแแ แแก แแแแแฅแขแ แงแแแแ แแแก แแแแกแแแแกแแแ แแ แแแ แชแแแแแจแ $vm
:
$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs
แแแแขแแแแแ แแก แแแแฆแแแ แฉแแขแแแ แแแแก แแแแแแแกแขแแแฃแ แ แคแแแแแแแ
Azure-แจแ VM-แแก แจแแฅแแแแกแแก, แแแแฎแแแ แแแแแก แแกแแแ แกแแฎแแแก แจแแฅแแแแก แแแแขแแแแแ แ แฉแแขแแแ แแแแก แแแแแแแกแขแแแแก แจแแกแแแแฎแแ (แฉแแขแแแ แแแแก แแแแแแแกแขแแแแก แแแแขแแแแแ แ), แ แแแ แแฃ แฉแแขแแแ แแแแก แแ แแแแแแแแแ, แแ แแแแแแแแแก แแฆแแแกแแคแฎแแ แแแแ แฃแแแ แแแแแ แแแก. แแฃแแชแ, แ แแแแกแแช VM แฌแแแจแแแแ, แแ แแแแขแแแแแ แก แ แฉแแแ แแแกแ แแฎแแ แฃแแแแแ แแ แกแแแแแ. แแแแแแแกแฌแแ แแ แแก แกแแขแฃแแชแแ.
- แฏแแ แแแแแ แแแแแ, แ แแแแ แกแแชแแแแก แแแแแ แแจแก แแแฃแแแแแก แแก แแแแขแแแแแ แ - แแแแกแแแแก แกแแญแแ แแ แแแแแแแ แฅแแแแแ
storageUri
แกแแแแแก แแแฌแแแแแแจแDiagnosticsProfile
แฉแแแแ VM. แแแแกแแแแก แแ แแแงแแแแ แแ แ แแแฃแแแ แฃแ แแแแแแฅแแแก:$diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
- แแฎแแ แแฅแแแ แฃแแแ แแแแ แแแแแ แแแแขแแแแแ แแก แกแแฎแแแ แแ แแแแกแแแแแก แแฅแแแ แฃแแแ แแแแฆแแ VM ID แแ แซแแแแแแก แแแแแงแแแแแแ
Get-AzResource
:if ($vm.Name.Length -gt 9) { $i = 9 } else { $i = $vm.Name.Length - 1 } $azResourceParams = @{ 'ResourceName' = WINSRV 'ResourceType' = 'Microsoft.Compute/virtualMachines' 'ResourceGroupName' = MyTestVMs } $vmResource = Get-AzResource @azResourceParams $vmId = $vmResource.Properties.VmId $diagContainerName = ('bootdiagnostics-{0}-{1}' -f $vm.Name.ToLower().Substring(0, $i), $vmId)
- แจแแแแแแ, แฉแแแ แแแฆแแแ แ แแกแฃแ แกแแแแก แฏแแฃแคแแก แกแแฎแแแก, แ แแแแแกแแช แแแฃแแแแแก แแแแขแแแแแ แ:
$diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
- แแฎแแ แฉแแแ แแแแฅแแก แงแแแแแคแแ แ, แ แแช แแแญแแ แแแแ แแแแขแแแแแ แแก แแ แซแแแแแแ แฌแแกแแจแแแแแ
Remove-AzStorageContainer
:$saParams = @{ 'ResourceGroupName' = $diagSaRg 'Name' = $diagSa } Get-AzStorageAccount @saParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainerName } | Remove-AzStorageContainer -Force
VM-แแก แแแแฆแแแ
แแฎแแ แแแแแ แฌแแแจแแแแ แแแแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแ, แ แแแแแ แฉแแแ แฃแแแ แจแแแฅแแแแแ แชแแแแแ $vm
แจแแกแแแแแแกแ แแแแแฅแขแแกแแแแก. แแแ แแ, แแแแแ แแแฃแจแแแ แแ แซแแแแแ Remove-AzVm
:
$null = $vm | Remove-AzVM -Force
แฅแกแแแแก แแแขแแ แคแแแกแแก แแ แกแแฏแแ แ IP แแแกแแแแ แแแก แฌแแจแแ
แฉแแแแก VM-แก แฏแแ แแแแแ แแฅแแก แแ แแ (แแ แแฃแแแแช แ แแแแแแแแ) แฅแกแแแแก แแแขแแ แคแแแกแ (NIC) - แแแแกแแแแแก, แ แแ แแแแแฆแแ แแกแแแ, แ แแแแ แช แแ แแกแแญแแ แ, แแแแแ แแแแแแแแแ แกแแแฃแแ แแแแจแ NetworkInterfaces
แฉแแแแ VM แแแแแฅแขแ แแ แฌแแจแแแแ NIC แแ แซแแแแแแ Remove-AzNetworkInterface
. แแ แจแแแแฎแแแแแจแ, แแฃ แแ แกแแแแแก แแ แแแ แแแขแ แฅแกแแแแก แแแขแแ แคแแแกแ, แฉแแแ แแแงแแแแแ แชแแแแก. แแแแแแ แแฃแแแ, แแแแแแฃแแ NIC-แแกแแแแก แฉแแแ แจแแแแแแฌแแแแ แฅแแแแแแก IpConfiguration
แแแแก แแแกแแแแแแแ, แแฅแแก แแฃ แแ แ แแแขแแ แคแแแกแก แกแแฏแแ แ IP แแแกแแแแ แแ. แแฃ แแ แแ แแแแแแก, แฉแแแ แแแแแแฆแแแ แแแก แแ แซแแแแแแ Remove-AzPublicIpAddress
.
แแ, แกแฌแแ แแ แแกแแแ แแแแแก แแแแแแแแ, แกแแแแช แฉแแแ แแฃแงแฃแ แแแ แงแแแแ NIC-แก แแแ แงแฃแแจแ, แแจแแแ แแแ แแ แแแแแฌแแแแ แแ แแก แแฃ แแ แ แกแแฏแแ แ IP. แแฃ แแ แกแแแแแก, แแแจแแ แแแแแแแแแแแ แฅแแแแแ PublicIpAddress
แแแแแแแ แจแแกแแแแแแกแ แ แแกแฃแ แกแแก แกแแฎแแแ ID-แแ แแ แฌแแจแแแแ แแแ:
foreach($nicUri in $vm.NetworkProfile.NetworkInterfaces.Id) {
$nic = Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $nicUri.Split('/')[-1]
Remove-AzNetworkInterface -Name $nic.Name -ResourceGroupName $vm.ResourceGroupName -Force
foreach($ipConfig in $nic.IpConfigurations) {
if($ipConfig.PublicIpAddress -ne $null) {
Remove-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName -Name $ipConfig.PublicIpAddress.Id.Split('/')[-1] -Force
}
}
}
แกแแกแขแแแแก แแแกแแแก แแแแฆแแแ
OS แแแกแแ แแ แแก blob, แ แแแแแกแแแแกแแช แแ แแก แแ แซแแแแแ แฌแแจแแ Remove-AzStorageBlob
- แแแแ แแ แแแก แจแแกแ แฃแแแแแแแ, แแฅแแแ แฃแแแ แแแแงแแแแ แกแแญแแ แ แแแแจแแแแแแแแแ แแแกแ แแแ แแแแขแ แแแแกแแแแก. แแแแกแแแแแก, แแแ แซแแ, แแฅแแแ แฃแแแ แแแแฆแแ แกแแชแแแแก แแแแขแแแแแ แแก แกแแฎแแแ, แ แแแแแแช แจแแแชแแแก แกแแกแขแแแแก แแแกแแก แแ แจแแแแแ แแแแแกแชแแ แแแ แแ แแ แซแแแแแแก แจแแกแแแแแแก แจแแแแฎแแแก แแแแแ แแจแแแ แแ แแแ.
$osDiskUri = $vm.StorageProfile.OSDisk.Vhd.Uri
$osDiskContainerName = $osDiskUri.Split('/')[-2]
$osDiskStorageAcct = Get-AzStorageAccount | where { $_.StorageAccountName -eq $osDiskUri.Split('/')[2].Split('.')[0] }
$osDiskStorageAcct | Remove-AzStorageBlob -Container $osDiskContainerName -Blob $osDiskUri.Split('/')[-1]
แกแแกแขแแแแก แแแกแแแก แกแขแแขแฃแกแแก แแแแแแก แแแแฆแแแ
แแแแกแแแแแก, แ แแแแ แช แแฅแแแ แแแแแ แฃแแแ แแแฎแแแแ, แฉแแแ แแแฆแแแ แจแแกแแแแฎ แแแแขแแแแแ แก, แ แแแแแจแแช แแแแฎแแแ แแก แแแกแแ แแ, แ แแช แแฃแแแกแฎแแแแก, แ แแ แแแแแจแ แแแแแ แจแแแชแแแก status
, แแแแแกแชแแ แจแแกแแแแแแกแ แแแ แแแแขแ แแแ แฌแแจแแแก แแ แซแแแแแแก Remove-AzStorageBlob
:
$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob
แแ แแแแแก, แฉแแแ แแจแแแ แแแแแชแแแแ แแแกแแแแก
แฉแแแแก VM-แก แแแแแช แจแแแซแแ แฐแฅแแแแแก แแแกแแแแ แแแกแแ แแแแแแ แแแฃแแ แแแแแชแแแแแแ. แแฃ แแ แแ แแก แกแแญแแ แ, แฉแแแ แแแแแช แฌแแแจแแแ. แฏแแ แแแแแแแแแแแแ StorageProfile
แฉแแแแ VM แแ แแแแแแแ แฅแแแแแ Uri
. แแฃ แ แแแแแแแแ แแแกแแแ, แฉแแแ แแแฌแงแแแ แชแแแแก แแแแก แแแฎแแแแแ URI
. แแแแแแฃแแ URI-แกแแแแก แฉแแแ แแแแแแแ แจแแกแแแแแแก แกแแชแแแแก แแแแแ แแจแก แแแแแงแแแแแแ Get-AzStorageAccount
. แจแแแแแ แแแแแแแแแแแ แจแแแแฎแแแก URI, แ แแ แแแแแฆแแ แกแแกแฃแ แแแแ blob แกแแฎแแแ แแ แแแแแกแชแแ แฌแแจแแแก แแ แซแแแแแแก Remove-AzStorageBlob
แจแแแแฎแแแก แแแแแ แแจแแแ แแ แแแ. แแก แแกแ แแแแแแงแฃแ แแแ แแแแจแ:
if ($vm.DataDiskNames.Count -gt 0) {
foreach ($uri in $vm.StorageProfile.DataDisks.Vhd.Uri) {
$dataDiskStorageAcct = Get-AzStorageAccount -Name $uri.Split('/')[2].Split('.')[0]
$dataDiskStorageAcct | Remove-AzStorageBlob -Container $uri.Split('/')[-2] -Blob $uri.Split('/')[-1]
}
}
แแฎแแ แแ "แฉแแแ แแแแแฆแฌแแแ แแแแแแแ แแแกแแกแ แฃแแก!" แแฎแแ แฉแแแ แฃแแแ แจแแแแแ แแแแ แแ แแ แแแแแแแแแ แงแแแแ แแ แคแ แแแแแแขแแแแ. แแแแแแ แแแขแแ แ แแแแ แแแ แขแ แแแ แแแแฎแแแ แแแแแแก แจแฃแ แแแแแ แจแแฎแแแ แแ แแก แแแแแ แแแแแแแ. แแฅ แแ แแก แแแฃแแ แกแแแแแแ แกแแ แแแขแแก แ.แฌ Remove-AzrVirtualMachine.ps1:
โ
แแแแแแแแแแ, แ แแ แแก แแ แแฅแขแแแฃแแ แ แฉแแแแแ แแแแแแแแแแแแ แแฅแแแแ แซแแแแกแฎแแแแแก, แแ แแแกแ แแ แคแฃแแแก แแแแแแแแจแ Azure VM-แแแแแ แแฃแจแแแแแกแแก.
แฌแงแแ แ: www.habr.com