αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚ αž“αž·αž„αž›αž»αž” Azure VMs αžŠαŸ„αž™αž”αŸ’αžšαžΎ PowerShell

αžŠαŸ„αž™αž”αŸ’αžšαžΎ PowerShell αžœαž·αžŸαŸ’αžœαž€αžš αž“αž·αž„αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ IT αž’αŸ’αžœαžΎαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž€αžΆαžšαž„αžΆαžšαž•αŸ’αžŸαŸαž„αŸ—αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž€αŸ’αž“αž»αž„αž”αžšαž·αžœαŸαžŽαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž‡αžΆαž˜αž½αž™αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αž–αž€ αž‡αžΆαž–αž·αžŸαŸαžŸαž‡αžΆαž˜αž½αž™ Azure αž•αž„αžŠαŸ‚αžšαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžαŸ’αž›αŸ‡αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαžαžΆαž˜αžšαž™αŸˆ PowerShell αž‚αžΊαž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž› αž“αž·αž„αž›αžΏαž“αž‡αžΆαž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαžαžΆαž˜αžšαž™αŸˆαžœαž·αž”αž•αžαžαž› Azure αŸ” αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž›αž€αŸ’αžαžŽαŸˆαž†αŸ’αž›αž„αžœαŸαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αžœαžΆ PowerShell αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŽαžΆαž˜αž½αž™αŸ”

αž˜αž·αž“αžαžΆαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Ubuntu, Red Hat ឬ Windows αž‘αŸ PowerShell αž’αžΆαž…αž‡αž½αž™αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž“αž’αžΆαž“αž–αž–αž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αžŠαŸ„αž™αž”αŸ’αžšαžΎαž˜αŸ‰αžΌαžŒαž»αž› Azure PowerShellαž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αžŽαžΆαž˜αž½αž™αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ PowerShell αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžαžΌαžšαž‘αŸ†αž αŸ† VM αž“αŸ…αž€αŸ’αž“αž»αž„ Azure cloud αž€αŸαžŠαžΌαž…αž‡αžΆαž›αž»αž” VM αž“αž·αž„αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚ αž“αž·αž„αž›αž»αž” Azure VMs αžŠαŸ„αž™αž”αŸ’αžšαžΎ PowerShell

αžŸαŸ†αžαžΆαž“αŸ‹! αž€αž»αŸ†αž—αŸ’αž›αŸαž…αž›αžΆαž„αžŠαŸƒαž“αžΉαž„αž‘αžΉαž€αž’αžΆαž€αž»αž› αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž„αžΆαžšαŸ–

  • αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž˜αŸ‰αžΌαžŒαž»αž› αž˜αŸ‰αžΌαžŒαž»αž› Azure PowerShell - αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αž–αžΈ PowerShell Gallery αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Install-Module Az.
  • αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€ Azure αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Connect-AzAccount.

αžŠαŸ†αž”αžΌαž„ αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž“αžΉαž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ†αž αŸ† Azure VM αŸ” αžαŸ„αŸ‡αž”αžΎαž€ VS Code αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαŸ’αž‚αŸ’αžšαžΈαž” PowerShell αžαŸ’αž˜αžΈαž˜αž½αž™αž αŸ…αžαžΆ αž”αŸ’αžŠαžΌαžšαž‘αŸ†αž αŸ†-AzVirtualMachine.ps1 β€” αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž”αŸ†αžŽαŸ‚αž€β€‹αž“αŸƒβ€‹αž€αžΌαžŠβ€‹αž‘αŸ…β€‹αžœαžΆβ€‹αž“αŸ…β€‹αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž™αžΎαž„αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž‘αŸ†αž αŸ† VM αžŠαŸ‚αž›αž˜αžΆαž“

αž˜αž»αž“αž–αŸαž›αž’αŸ’αž“αž€αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ†αž αŸ† VM αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αžαžΆαžαžΎαž‘αŸ†αž αŸ†αžŽαžΆαžŠαŸ‚αž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž“αŸ…αž€αŸ’αž“αž»αž„ Azure cloudαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Get-AzVMSize.

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž devvm01 αž–αžΈαž€αŸ’αžšαž»αž˜αž’αž“αž’αžΆαž“ dev αž™αžΎαž„αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž‘αŸ†αž αŸ†αžŠαŸ‚αž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ–

Get-AzVMSize -ResourceGroupName dev -VMName devvm01

(αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹, αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž αžΆαž–αž·αž, αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ ResourceGroupName=dev ΠΈ VMName= devvm01 αž’αŸ’αž“αž€αž“αžΉαž„αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαž˜αŸ’αž›αŸƒαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” )

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αžΉαž„αžαŸ’αžšαž‘αž”αŸ‹αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡αŸ–

αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚ αž“αž·αž„αž›αž»αž” Azure VMs αžŠαŸ„αž™αž”αŸ’αžšαžΎ PowerShell

αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαž‘αŸ†αž αŸ†αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αŸ”

αžαŸ„αŸ‡αž”αŸ’αžαžΌαžšαž‘αŸ†αž αŸ†αž‘αžΆαž“

αž§αž‘αžΆαž αžšαžŽαŸ αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžαžΌαžšαž‘αŸ†αž αŸ†αž‘αŸ…αž‘αŸ†αž αŸ†αžαŸ’αž˜αžΈαŸ” Standard_B1ls - αž‚αžΆαžαŸ‹αžŸαŸ’αžαž·αžαž“αŸ…αž›αŸ†αžŠαžΆαž”αŸ‹αž‘αžΈαž˜αž½αž™αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžαžΆαž„αž›αžΎαŸ” (αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΈαžœαž·αžαž–αž·αž αž’αŸ’αž“αž€αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‘αŸ†αž αŸ†αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” )

  1. αžŠαŸ†αž”αžΌαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Get-AzVM αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαžœαžαŸ’αžαž»αžšαž”αžŸαŸ‹αž™αžΎαž„ (αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž) αžŠαŸ„αž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸαžšαž˜αž½αž™αŸ” $virtualMachine:
    $virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
  2. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž™αž€αž‘αŸ’αžšαž–αŸ’αž™αžŸαž˜αŸ’αž”αžαŸ’αžαž·αž–αžΈαžœαžαŸ’αžαž»αž“αŸαŸ‡αŸ” .HardwareProfile.VmSize αž αžΎαž™αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαžαŸ’αž˜αžΈαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ–
    $virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
  3. αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž– VM - Update-AzVm:
    Update-AzVM -VM devvm01 -ResourceGroupName dev
  4. αž™αžΎαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αŸ’αž’ - αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž™αžΎαž„αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαžœαžαŸ’αžαž»αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αŸ’αžαž„αž‘αŸ€αž αž αžΎαž™αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž’αž…αž›αž“αž‘αŸ’αžšαž–αŸ’αž™ $virtualMachine.HardwareProfile:
    $virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
    $virtualMachine.HardwareProfile

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžƒαžΎαž‰αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ Standard_B1ls - αž“αŸ„αŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž›αŸ†αžŠαžΆαž”αŸ‹αž‘αŸ†αž αŸ†αžšαž”αžŸαŸ‹αžšαžαž™αž“αŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αž“αŸ’αžαž‘αŸ…αž˜αž»αžαž‘αŸ€αž αž“αž·αž„αž”αž“αŸ’αžαž—αžΆαž–αž‡αŸ„αž‚αž‡αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ†αž αŸ† VMs αž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αžΆαžšαŸαž˜αž½αž™αŸ”

αž…αž»αŸ‡αž€αžΆαžšαž›αž»αž” VM αž“αŸ…αž€αŸ’αž“αž»αž„ Azure αžœαž·αž‰?

αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž›αž»αž” αž˜αž·αž“αž˜αŸ‚αž“αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αžαŸ’αžšαž„αŸ‹αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž“αŸ„αŸ‡αž‘αŸαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαž€αž…αŸαž‰αž“αžΌαžœαž’αž“αž’αžΆαž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αŸαŸ‡ αžšαž½αž˜αž‘αžΆαŸ†αž„αŸ–

  • αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αž€αžΆαžšαžœαž·αž“αž·αž…αŸ’αž†αŸαž™
  • αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αŸ”
  • αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžŸαžΆαž’αžΆαžšαžŽαŸˆ
  • αžαžΆαžŸαž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž“αž·αž„αž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€
  • αžαžΆαžŸαž‘αž·αž“αŸ’αž“αž“αŸαž™

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž˜αž»αžαž„αžΆαžšαž˜αž½αž™αž αžΎαž™αž αŸ…αžœαžΆαŸ” Remove-AzrVirtualMachine - αž αžΎαž™αžœαžΆαž“αžΉαž„αž›αž»αž”αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚ Azure VM αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαžΆαž„αž›αžΎαž•αž„αžŠαŸ‚αžšαŸ”

αž™αžΎαž„αž‘αŸ…αžœαž·αž’αžΈαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž αžΎαž™αžŠαŸ†αž”αžΌαž„αž‘αž‘αž½αž›αž”αžΆαž“αžœαžαŸ’αžαž»αžšαž”αžŸαŸ‹αž™αžΎαž„ (VM) αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Get-AzVm. αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαžŸαžΌαž˜αž±αŸ’αž™αžœαžΆαž‡αžΆαž‘αžΆαž“ WINSRV19 αž–αžΈαž€αŸ’αžšαž»αž˜αž’αž“αž’αžΆαž“ MyTestVMs.

αž…αžΌαžšβ€‹αžšαž€αŸ’αžŸαžΆβ€‹αž‘αž»αž€β€‹αžœαžαŸ’αžαž»β€‹αž“αŸαŸ‡β€‹αžšαž½αž˜β€‹αž‡αžΆβ€‹αž˜αž½αž™β€‹αž“αžΉαž„β€‹αž›αž€αŸ’αžαžŽαŸˆβ€‹αžŸαž˜αŸ’αž”αžαŸ’αžαž·β€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹β€‹αž‘αŸ…β€‹αž‡αžΆβ€‹αž’αžαŸαžš $vm:

$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs

αž€αžΆαžšαžŠαž€αž€αž»αž„αžαžΊαž“αŸαžšαž…αŸαž‰αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž―αž€αžŸαžΆαžšαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜

αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž VM αž“αŸ…αž€αŸ’αž“αž»αž„ Azure αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαž€αž»αž„αžαžΊαž“αŸαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αžΆαžšαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜ (αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αž€αžΆαžšαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜) αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜ αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΎαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› VM αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž” αž€αž»αž„αžαžΊαž“αŸαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž»αž€αžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αžαž’αžαŸ’αžαž·αž—αžΆαž–αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αž‚αŸ„αž›αž”αŸ†αžŽαž„αž₯αž‘αžΌαžœαž“αŸαŸ‡αŸ” αž…αžΌαžšαž™αžΎαž„αž‡αž½αžŸαž‡αž»αž›αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸαŸ‡αŸ”

  1. αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž…αžΌαžšαž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αžαžΆαžαžΎαž‚αžŽαž“αžΈαž•αŸ’αž‘αž»αž€αž˜αž½αž™αžŽαžΆαž‡αžΆαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αžšαž”αžŸαŸ‹αž€αž»αž„αžαžΊαž“αŸαžš - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαžŸαŸ’αžœαŸ‚αž„αžšαž€αž‘αŸ’αžšαž–αŸ’αž™αžŸαž˜αŸ’αž”αžαŸ’αžαž· storageUri αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ„αŸ‡αžœαŸ€αž“αžšαž”αžŸαŸ‹αžœαžαŸ’αžαž» DiagnosticsProfile VM αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž”αŸ’αžšαžΎαž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαž“αŸαŸ‡αŸ–
    $diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
  2. αž₯αž‘αžΌαžœαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŸαŸ’αžœαŸ‚αž„αžšαž€αžˆαŸ’αž˜αŸ„αŸ‡αž€αž»αž„αžαžΊαž“αŸαžš αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž™αž€αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ VM αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ 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)
    
  3. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αžšαž»αž˜αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž€αž»αž„αžαžΊαž“αŸαžšαž‡αžΆαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αŸ–
    $diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
  4. αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž›αž»αž”αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ 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 αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αžαŸ‚αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž˜αž½αž™ (αž¬αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž…αŸ’αžšαžΎαž“) (NICs) - αžŠαžΎαž˜αŸ’αž”αžΈαž›αž»αž”αž–αž½αž€αžœαžΆαž…αŸαž‰αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹ αžŸαžΌαž˜αž…αžΌαž›αž‘αŸ…αž˜αžΎαž›αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž· NetworkInterfaces αžœαžαŸ’αžαž» VM αžšαž”αžŸαŸ‹αž™αžΎαž„αž αžΎαž™αž›αž»αž” NIC αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Remove-AzNetworkInterface. αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αž½αž™ αž™αžΎαž„αž”αŸ’αžšαžΎαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αŸ” αž‘αž“αŸ’αž‘αžΉαž˜αž“αžΉαž„αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ NIC αž“αžΈαž˜αž½αž™αŸ—αž™αžΎαž„αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž‘αŸ’αžšαž–αŸ’αž™αžŸαž˜αŸ’αž”αžαŸ’αžαž· IpConfiguration αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸαžšαž€αžƒαžΎαž‰ αž™αžΎαž„αž“αžΉαž„αž›αž»αž”αžœαžΆαž…αŸαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Remove-AzPublicIpAddress.

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΌαžŠαž”αŸ‚αž”αž“αŸαŸ‡ αžŠαŸ‚αž›αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž› NICs αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ† αž›αž»αž”αž–αž½αž€αžœαžΆ αž αžΎαž™αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžαžΎαž˜αžΆαž“ 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 αž‚αžΊαž‡αžΆαž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αž˜αžΆαž“αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž›αž»αž”αžœαžΆαŸ” 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]

αž€αžΆαžšαž›αž»αž” Blob αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžαžΆαžŸαž”αŸ’αžšαž–αŸαž“αŸ’αž’

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΆαž“αž‘αžΆαž™αžšαž½αž…αž αžΎαž™ αž™αžΎαž„αž™αž€αž’αž»αž„αž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αžαžΆαžŸαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ αž αžΎαž™αž˜αžΆαž“αž“αŸαž™αžαžΆ blob αž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž˜αžΆαž“ statusαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‘αŸ…αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž›αž»αž” Remove-AzStorageBlob:

$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob

αž αžΎαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž™αžΎαž„αžŠαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŒαžΈαžŸαž…αŸαž‰

VM αžšαž”αžŸαŸ‹αž™αžΎαž„αž’αžΆαž…αž“αŸ…αžαŸ‚αž˜αžΆαž“αžαžΆαžŸαžŠαŸ‚αž›αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžœαžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸαž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αŸ αž™αžΎαž„αž“αžΉαž„αž›αž»αž”αžœαžΆαž…αŸ„αž›αž•αž„αžŠαŸ‚αžšαŸ” αž…αžΌαžšαž™αžΎαž„αž‰αŸ‚αž€αžœαžΆαž‡αžΆαž˜αž»αž“αžŸαž·αž“ StorageProfile VM αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž‘αŸ’αžšαž–αŸ’αž™αžŸαž˜αŸ’αž”αžαŸ’αžαž· Uri. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αžαžΆαžŸαž‡αžΆαž…αŸ’αžšαžΎαž“αž™αžΎαž„αžšαŸ€αž”αž…αŸ†αžœαžŠαŸ’αžαž˜αž½αž™αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜ URI. αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ URI αž“αžΈαž˜αž½αž™αŸ— αž™αžΎαž„αž“αžΉαž„αžšαž€αžƒαžΎαž‰αž‚αžŽαž“αžΈαž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ Get-AzStorageAccount. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‰αŸ‚αž€ URI αž•αŸ’αž‘αž»αž€αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžšαž„αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ αž αžΎαž™αž”αž‰αŸ’αž‡αžΌαž“αžœαžΆαž‘αŸ…αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž›αž»αž” 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]
    }
}

αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡ "αž™αžΎαž„αž”αžΆαž“αžˆαžΆαž“αžŠαž›αŸ‹αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸαžšαžΈαž€αžšαžΆαž™!" αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžαŸ‚αž˜αž½αž™αž‘αžΆαŸ†αž„αž˜αžΌαž›αž–αžΈαž”αŸ†αžŽαŸ‚αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžŠαŸαžŸαž”αŸ’αž”αž»αžšαžŸ Adam Bertram αž”αžΆαž“αž‡αž½αž”αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž•αŸ’αž›αžΌαžœ αž αžΎαž™αž’αŸ’αžœαžΎαžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž‚αŸαž αŸ…αžαžΆ αž›αž»αž”-AzrVirtualMachine.ps1:

β†’ GitHub

αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž’αŸ’αž“αž€αžšαž€αžƒαžΎαž‰αž‚αž“αŸ’αž›αžΉαŸ‡αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž€αžΆαžšαžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„ αž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ Azure VMs αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹