Azure VM-แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒฌแƒแƒจแƒšแƒ PowerShell-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—

PowerShell-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ IT แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒแƒฎแƒ“แƒ”แƒœแƒ”แƒœ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒจแƒ˜แƒ“แƒ, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก, แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— Azure-แƒ—แƒแƒœ. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, PowerShell-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” Azure แƒžแƒแƒ แƒขแƒแƒšแƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ. แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ แƒแƒ•แƒแƒšแƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—, PowerShell แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ”.

แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Ubuntu-แƒก, Red Hat-แƒก แƒแƒœ Windows-แƒก, PowerShell แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒ แƒ—แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜. แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— Azure PowerShellแƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ.

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— PowerShell VM-แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒชแƒ•แƒšแƒ”แƒšแƒแƒ“ Azure แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒจแƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒฌแƒแƒจแƒแƒšแƒแƒ— VM แƒ“แƒ แƒ›แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜.

Azure VM-แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒฌแƒแƒจแƒšแƒ PowerShell-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—

แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ! แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒกแƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒšแƒแƒ“ แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— แƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฌแƒ›แƒ”แƒœแƒ“แƒ แƒกแƒแƒ“แƒ”แƒ–แƒ˜แƒœแƒคแƒ”แƒฅแƒชแƒ˜แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—:

  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒ“แƒฃแƒšแƒ˜ 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 แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒก แƒแƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.)

แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก:

Azure VM-แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ แƒฌแƒแƒจแƒšแƒ 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 - แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒ˜แƒ’แƒ–แƒ”แƒ, แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ–แƒแƒ›แƒ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜แƒ. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒคแƒ แƒ แƒจแƒแƒ แƒก แƒฌแƒแƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ“แƒ แƒ“แƒแƒ”แƒงแƒ แƒ“แƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒแƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” VM-แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ—.

แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ VM-แƒ˜แƒก แƒฌแƒแƒจแƒšแƒแƒก Azure-แƒจแƒ˜?

แƒฌแƒแƒจแƒšแƒ˜แƒ—, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒœแƒ“แƒ”แƒก. แƒงแƒแƒ•แƒ”แƒšแƒ˜แƒ•แƒ” แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒ› แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก:

  • แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒœแƒแƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜
  • แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ”แƒ‘แƒ˜
  • แƒกแƒแƒฏแƒแƒ แƒ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜
  • แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒ“แƒ แƒ‘แƒšแƒแƒ™แƒ˜, แƒกแƒแƒ“แƒแƒช แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜
  • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜

แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒ“แƒ แƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ— แƒ›แƒแƒก Remove-AzrVirtualMachine - แƒ“แƒ แƒ˜แƒก แƒฌแƒแƒจแƒšแƒ˜แƒก แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ Azure VM-แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒงแƒแƒ•แƒ”แƒšแƒ˜แƒ•แƒ” แƒ–แƒ”แƒ›แƒแƒ—แƒฅแƒ›แƒฃแƒšแƒก.

แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒ’แƒ–แƒแƒ–แƒ” แƒ“แƒ แƒฏแƒ”แƒ  แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก (VM) แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— Get-AzVm. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ”แƒก แƒ˜แƒงแƒแƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒ WINSRV19 แƒ แƒ”แƒกแƒฃแƒ แƒก แƒฏแƒ’แƒฃแƒคแƒ˜แƒ“แƒแƒœ MyTestVMs.

แƒจแƒ”แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ— แƒ”แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ˜แƒก แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜ $vm:

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

แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒœแƒแƒกแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ—

Azure-แƒจแƒ˜ VM-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒแƒกแƒ”แƒ•แƒ” แƒกแƒ—แƒฎแƒแƒ•แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒœแƒแƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“ (แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒœแƒแƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜), แƒ แƒแƒ—แƒ แƒ—แƒฃ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ, แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒ›แƒแƒกแƒแƒคแƒฎแƒ•แƒ แƒ”แƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒแƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช VM แƒฌแƒแƒ˜แƒจแƒšแƒ”แƒ‘แƒ, แƒแƒ› แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒก แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒšแƒ แƒฃแƒ›แƒ˜แƒ–แƒœแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ. แƒ’แƒแƒ›แƒแƒ•แƒแƒกแƒฌแƒแƒ แƒแƒ— แƒ”แƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ.

  1. แƒฏแƒ”แƒ  แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒแƒ—, แƒ แƒแƒ›แƒ”แƒš แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒก แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก แƒ”แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ - แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ•แƒ˜แƒžแƒแƒ•แƒแƒ— แƒฅแƒแƒœแƒ”แƒ‘แƒ storageUri แƒกแƒแƒ’แƒœแƒ˜แƒก แƒœแƒแƒฌแƒšแƒแƒ•แƒ”แƒ‘แƒจแƒ˜ DiagnosticsProfile แƒฉแƒ•แƒ”แƒœแƒ˜ VM. แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒแƒ› แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒš แƒ’แƒแƒ›แƒแƒ—แƒฅแƒ›แƒแƒก:
    $diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
  2. แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ แƒ™แƒ•แƒ˜แƒแƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— 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)
    
  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-แƒก แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒฅแƒ•แƒก แƒ”แƒ แƒ—แƒ˜ (แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ”) แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ (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:

โ†’ GitHub

แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘, แƒ แƒแƒ› แƒ”แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ แƒฉแƒ”แƒ•แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ’แƒแƒ“แƒ’แƒ”แƒ‘แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜แƒก, แƒ“แƒ แƒแƒ˜แƒกแƒ แƒ“แƒ แƒคแƒฃแƒšแƒ˜แƒก แƒ“แƒแƒ–แƒแƒ’แƒ•แƒแƒจแƒ˜ Azure VM-แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ