แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ แƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ PowerCLI แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 

แƒแƒ“แƒ แƒ” แƒ—แƒฃ แƒ’แƒ•แƒ˜แƒแƒœ, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ VMware แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜ แƒ›แƒแƒ“แƒ˜แƒก แƒ แƒฃแƒขแƒ˜แƒœแƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒ—, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ“แƒ˜แƒก PowerShell แƒแƒœ VMware PowerCLI.

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ”แƒฃแƒคแƒšแƒ”แƒ— PowerShell-แƒก แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒจแƒแƒ แƒก, แƒ•แƒ˜แƒ“แƒ แƒ” ISE-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ cmdlet-แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ โ€žแƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ’แƒ˜แƒ˜แƒกโ€œ แƒ’แƒแƒ›แƒ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒ“แƒแƒ—แƒ•แƒšแƒแƒก แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ—, แƒแƒฆแƒ›แƒแƒแƒฉแƒ”แƒœแƒ—, แƒ แƒแƒ› แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฎแƒ”แƒšแƒก แƒฃแƒฌแƒงแƒแƒ‘แƒ”แƒœ แƒ›แƒชแƒ˜แƒ แƒ” แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ”แƒ‘แƒก, แƒจแƒ”แƒกแƒแƒ›แƒฉแƒœแƒ”แƒ•แƒแƒ“ แƒœแƒ”แƒšแƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒ—. 

แƒแƒ› แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒแƒจแƒ˜ 2 แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ—:

  • PowerShell Runspaces โ€“ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒซแƒแƒคแƒ”แƒ‘แƒจแƒ˜; 
  • Get-View โ€“ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ PowerCLI แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, Get-WMIObject-แƒ˜แƒก แƒแƒœแƒแƒšแƒแƒ’แƒ˜ Windows-แƒจแƒ˜. แƒ”แƒก cmdlet แƒแƒ  แƒ˜แƒ–แƒ˜แƒ“แƒแƒ•แƒก แƒ—แƒแƒœแƒ›แƒฎแƒšแƒ”แƒ‘ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒ—. แƒฎแƒจแƒ˜แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ–แƒ” แƒ“แƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒ— แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒแƒ“แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ”แƒแƒ แƒ”แƒ–แƒ” แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜. แƒฌแƒแƒ“แƒ˜!

แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ แƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ PowerCLI แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜: Runspace

แƒแƒกแƒ” แƒ แƒแƒ›, Runspace แƒ’แƒแƒœแƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒšแƒ˜แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ— แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒญแƒแƒ›แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒก, แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒก แƒ“แƒ แƒ.แƒจ. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒฃแƒ—แƒจแƒ˜ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒแƒ˜แƒฎแƒ›แƒแƒ แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ— แƒ’แƒ˜แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒก, แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ Runspace แƒแƒ  แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ—แƒ˜แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ.

แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— แƒกแƒฌแƒแƒ•แƒšแƒ แƒแƒฅ: 
PowerShell Runspaces-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜: แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1

แƒ แƒแƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ Runspace-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ:

  • แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ” แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒ—,
  • แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ,
  • แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ.

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช Runspace แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ:

โ€แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’แƒแƒ‘แƒ แƒแƒ แƒ˜แƒก vSphere-แƒจแƒ˜ แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜แƒก แƒ“แƒ”แƒ•แƒœแƒ”แƒ‘แƒ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ แƒ—แƒฃแƒšแƒ˜ แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ. vCenter-แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒจแƒ”แƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ“แƒ แƒœแƒแƒฎแƒแƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜ VM แƒ›แƒแƒ˜แƒฎแƒ›แƒแƒ แƒก แƒ›แƒ”แƒข แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก. แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒแƒ— แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฌแƒฃแƒ—แƒ”แƒ‘แƒจแƒ˜ PowerShell-แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—.
แƒ›แƒ” แƒ’แƒแƒ•แƒแƒ–แƒ˜แƒแƒ แƒ”แƒ‘ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช VMware แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒกแƒชแƒ”แƒ›แƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒแƒœ vCenter-แƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒœ VM-แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ—.  
แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก PowerShell-แƒ˜แƒก แƒžแƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ•แƒ”แƒ‘แƒก, แƒ แƒแƒ—แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš ESXi แƒฐแƒแƒกแƒขแƒก แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒแƒก แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ VM-แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒชแƒแƒšแƒ™แƒ” Runspace-แƒจแƒ˜ แƒ“แƒ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒจแƒ”แƒแƒขแƒงแƒแƒ‘แƒ˜แƒœแƒแƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก PowerShell-แƒก แƒ“แƒแƒฃแƒงแƒแƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ“แƒแƒฎแƒฃแƒ แƒแƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ”แƒ‘แƒ˜, แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒแƒก แƒฐแƒแƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒ“แƒ แƒ“แƒแƒ”แƒšแƒแƒ“แƒแƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก.โ€

แƒฌแƒงแƒแƒ แƒ: แƒ แƒแƒ’แƒแƒ  แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒแƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ I/O ESXi Dashboard-แƒ–แƒ”

แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, Runspace แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ:

โ€žแƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก แƒฃแƒแƒ›แƒ แƒแƒ• แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒก VM-แƒ“แƒแƒœ แƒ“แƒ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒฎแƒแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒฌแƒ”แƒ แƒก. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› VM-แƒ”แƒ‘แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ‘แƒ”แƒ•แƒ แƒ˜แƒ แƒ“แƒ 5-8 แƒฌแƒแƒ›แƒ˜ แƒ˜แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ”โ€œ. 

แƒฌแƒงแƒแƒ แƒ: Multithreading PowerCLI RunspacePool-แƒ˜แƒ—

แƒแƒฅ แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— Get-View, แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ›แƒแƒกแƒ–แƒ”. 

แƒ›แƒ”แƒแƒ แƒ” แƒ”แƒขแƒแƒžแƒ˜: Get-View

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก Get-View แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ, แƒฃแƒœแƒ“แƒ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก cmdlets แƒ–แƒแƒ’แƒแƒ“แƒแƒ“. 

Cmdlet-แƒ”แƒ‘แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒแƒกแƒแƒžแƒแƒ•แƒ”แƒ‘แƒšแƒแƒ“ API แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒฌแƒ˜แƒ’แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒแƒ แƒ‘แƒšแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒ’แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ แƒแƒช แƒซแƒ•แƒ”แƒš แƒ“แƒ แƒแƒจแƒ˜ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒก แƒแƒœ แƒแƒ  แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒก, PowerShell แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฎแƒ“แƒ˜แƒ— แƒแƒ› แƒ™แƒแƒ›แƒคแƒแƒ แƒขแƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ˜แƒ—. แƒ—แƒแƒ•แƒแƒ“ แƒกแƒ›แƒ“แƒšแƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒ˜แƒ: แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒคแƒ แƒ แƒ“แƒแƒ‘แƒแƒš แƒ“แƒแƒœแƒ”แƒ–แƒ”, แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ›แƒ–แƒ˜แƒแƒœแƒ˜ แƒ˜แƒœแƒ“แƒแƒ”แƒ—แƒ˜แƒก แƒแƒกแƒขแƒแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ˜ แƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒแƒฎแƒšแƒ, Get-View-แƒ—แƒแƒœ แƒจแƒ”แƒกแƒแƒ“แƒแƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒแƒ•แƒ˜แƒฆแƒแƒ— Get-VM cmdlet: แƒ˜แƒก แƒฌแƒ•แƒ“แƒ”แƒ‘แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒก แƒ“แƒ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ™แƒแƒ›แƒžแƒแƒ–แƒ˜แƒขแƒฃแƒ  แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก, แƒแƒœแƒฃ แƒแƒœแƒ˜แƒญแƒ”แƒ‘แƒก แƒ›แƒแƒก แƒกแƒฎแƒ•แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒก: VMHost, Datastore แƒ“แƒ แƒ.แƒจ.  

Get-View แƒ—แƒแƒ•แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ–แƒ” แƒแƒ  แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒก แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒš แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒ•แƒแƒซแƒšแƒ”แƒ•แƒก แƒ›แƒ™แƒแƒชแƒ แƒแƒ“ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒช แƒ’แƒแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒš แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ Windows Server-แƒจแƒ˜ แƒ“แƒ แƒ™แƒ”แƒ แƒซแƒแƒ“ Hyper-V-แƒจแƒ˜ Get-WMIObject cmdlet แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒ - แƒ˜แƒ“แƒ”แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ.

Get-View แƒ›แƒแƒฃแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒแƒ•แƒแƒœ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ–แƒ” แƒ แƒฃแƒขแƒ˜แƒœแƒฃแƒšแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒแƒฅแƒ›แƒ” แƒ”แƒฎแƒ”แƒ‘แƒ แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒ“แƒ แƒแƒ—แƒ˜ แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก, แƒ›แƒแƒก แƒคแƒแƒกแƒ˜ แƒแƒ  แƒแƒฅแƒ•แƒก.

แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— VMware แƒ‘แƒšแƒแƒ’แƒ–แƒ”: Get-View-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒแƒฎแƒšแƒ แƒ›แƒ” แƒ’แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒฅแƒ”แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. 

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ VM-แƒ˜แƒก แƒ’แƒแƒœแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ”แƒ แƒ— แƒ“แƒฆแƒ”แƒก แƒฉแƒ”แƒ›แƒ›แƒ แƒ™แƒแƒšแƒ”แƒ’แƒแƒ› แƒ›แƒ—แƒฎแƒแƒ•แƒ แƒ›แƒ˜แƒกแƒ˜ แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ. แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ แƒฃแƒขแƒ˜แƒœแƒแƒ: แƒ˜แƒžแƒแƒ•แƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ VM แƒ“แƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒขแƒ˜ cloud.uuid แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ— (แƒ“แƒ˜แƒแƒฎ, แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ VM-แƒ˜แƒก แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก vCloud Director-แƒจแƒ˜). 

แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก:

  1. แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ VM-แƒ˜แƒก แƒกแƒ˜แƒ.
  2. แƒ แƒแƒ’แƒแƒ แƒ›แƒ” แƒ’แƒแƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ” แƒกแƒ˜แƒ.

แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ˜แƒงแƒ แƒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜:

function Get-CloudUUID1 {
   # ะŸะพะปัƒั‡ะฐะตะผ ัะฟะธัะพะบ ะฒัะตั… ะ’ะœ
   $vms = Get-VM
   $report = @()

   # ะžะฑั€ะฐะฑะฐั‚ั‹ะฒะฐะตะผ ะบะฐะถะดั‹ะน ะพะฑัŠะตะบั‚, ะฟะพะปัƒั‡ะฐั ะธะท ะฝะตะณะพ ั‚ะพะปัŒะบะพ 2 ัะฒะพะนัั‚ะฒะฐ: ะ˜ะผั ะ’ะœ ะธ Cloud UUID.
   # ะ—ะฐะฝะพัะธะผ ะดะฐะฝะฝั‹ะต ะฒ ะฝะพะฒั‹ะน PS-ะพะฑัŠะตะบั‚ ั ะฟะพะปัะผะธ VM ะธ UUID
   foreach ($vm in $vms)
   {
       $table = "" | select VM,UUID

       $table.VM = $vm.name
       $table.UUID = ($vm | Get-AdvancedSetting -Name cloud.uuid).Value
          
       $report += $table
   }
# ะ’ะพะทะฒั€ะฐั‰ะฐะตะผ ะฒัะต ะพะฑัŠะตะบั‚ั‹
   $report
}
# ะ”ะฐะปะตะต ะ ะฃะšะะœะ˜ ะฟะฐั€ัะธะผ ะฟะพะปัƒั‡ะตะฝะฝั‹ะน ั€ะตะทัƒะปัŒั‚ะฐั‚

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ. แƒงแƒแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒฃแƒ—แƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒแƒก. แƒ“แƒแƒฎแƒฃแƒ แƒ”แƒ— แƒคแƒ˜แƒšแƒขแƒ แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒ–แƒแƒ›แƒแƒ— แƒ“แƒ แƒ:

แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ แƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ PowerCLI แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ แƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ PowerCLI แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

2 แƒฌแƒฃแƒ—แƒ˜ 47 แƒฌแƒแƒ›แƒ˜ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก 10k VM-แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ‘แƒแƒœแƒฃแƒกแƒ˜ แƒแƒ แƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ”แƒ‘แƒ˜แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ. แƒชแƒฎแƒแƒ“แƒ˜แƒ, แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก.

Runspaces แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜แƒ, แƒ•แƒ˜แƒœแƒช แƒกแƒแƒ›แƒแƒจแƒ•แƒ”แƒšแƒแƒจแƒ˜ แƒ›แƒแƒ“แƒ˜แƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒฐแƒแƒกแƒขแƒ˜แƒก แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ vCenter-แƒ“แƒแƒœ แƒแƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒแƒ—แƒ˜แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ. แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒแƒก แƒ›แƒแƒแƒฅแƒ•แƒก แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ.

แƒฉแƒแƒ แƒ—แƒ”แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ”: PowerShell Runspaces

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

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ: PowerCLI แƒแƒ  แƒ›แƒแƒ’แƒ•แƒชแƒ”แƒ›แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒ•แƒฎแƒกแƒœแƒแƒ— แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒกแƒ”แƒกแƒ˜แƒ vCenter-แƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ›แƒแƒ’แƒ•แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒแƒก แƒกแƒแƒกแƒแƒชแƒ˜แƒšแƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ:

You have modified the global:DefaultVIServer and global:DefaultVIServers system variables. This is not allowed. Please reset them to $null and reconnect to the vSphere server.

แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“, แƒฏแƒ”แƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ— แƒกแƒ”แƒกแƒ˜แƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒœแƒแƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—. แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› PowerShell แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ—แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒแƒœ ScriptBlock-แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒกแƒ”แƒกแƒ˜แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—, $global:DefaultVIServers-แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ— (Connect-VIServer -NotDefault แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒ—):

$ConnectionString = @()
foreach ($vCenter in $vCenters)
   {
       try {
           $ConnectionString += Connect-VIServer -Server $vCenter -Credential $Credential -NotDefault -AllLinked -Force -ErrorAction stop -WarningAction SilentlyContinue -ErrorVariable er
       }
       catch {
           if ($er.Message -like "*not part of a linked mode*")
           {
               try {
                   $ConnectionString += Connect-VIServer -Server $vCenter -Credential $Credential -NotDefault -Force -ErrorAction stop -WarningAction SilentlyContinue -ErrorVariable er
               }
               catch {
                   throw $_
               }
              
           }
           else {
               throw $_
           }
       }
   }

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒ— Multithreading Runspace Pools-แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—.  

แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜แƒ:

  1. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒ VM-แƒ˜แƒก แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒก.
  2. แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ  แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒจแƒ˜ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒก.uuid.
  3. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ”แƒ แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒจแƒ˜.
  4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒคแƒ˜แƒšแƒขแƒ แƒแƒ•แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก CloudUUID แƒ•แƒ”แƒšแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ“แƒแƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ˜แƒ—: แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ 1-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜แƒ, แƒแƒ แƒ˜แƒก VM-แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒซแƒ”แƒ‘แƒ—.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก:


function Get-VMCloudUUID {
   param (
       [string[]]
       [ValidateNotNullOrEmpty()]
       $vCenters = @(),
       [int]$MaxThreads,
       [System.Management.Automation.PSCredential]
       [System.Management.Automation.Credential()]
       $Credential
   )

   $ConnectionString = @()

   # ะกะพะทะดะฐะตะผ ะพะฑัŠะตะบั‚ ั ัะตััะธะพะฝะฝั‹ะผ ะบะปัŽั‡ะพะผ
   foreach ($vCenter in $vCenters)
   {
       try {
           $ConnectionString += Connect-VIServer -Server $vCenter -Credential $Credential -NotDefault -AllLinked -Force -ErrorAction stop -WarningAction SilentlyContinue -ErrorVariable er
       }
       catch {
           if ($er.Message -like "*not part of a linked mode*")
           {
               try {
                   $ConnectionString += Connect-VIServer -Server $vCenter -Credential $Credential -NotDefault -Force -ErrorAction stop -WarningAction SilentlyContinue -ErrorVariable er
               }
               catch {
                   throw $_
               }
              
           }
           else {
               throw $_
           }
       }
   }

   # ะŸะพะปัƒั‡ะฐะตะผ ัะฟะธัะพะบ ะฒัะตั… ะ’ะœ
   $Global:AllVMs = Get-VM -Server $ConnectionString

   # ะŸะพะตั…ะฐะปะธ!
   $ISS = [system.management.automation.runspaces.initialsessionstate]::CreateDefault()
   $RunspacePool = [runspacefactory]::CreateRunspacePool(1, $MaxThreads, $ISS, $Host)
   $RunspacePool.ApartmentState = "MTA"
   $RunspacePool.Open()
   $Jobs = @()

# ScriptBlock ั ะผะฐะณะธะตะน!)))
# ะ˜ะผะตะฝะฝะพ ะพะฝ ะฑัƒะดะตั‚ ะฒั‹ะฟะพะปะฝัั‚ัŒัั ะฒ ะฟะพั‚ะพะบะต
   $scriptblock = {
       Param (
       $ConnectionString,
       $VM
       )

       $Data = $VM | Get-AdvancedSetting -Name Cloud.uuid -Server $ConnectionString | Select-Object @{N="VMName";E={$_.Entity.Name}},@{N="CloudUUID";E={$_.Value}},@{N="PowerState";E={$_.Entity.PowerState}}

       return $Data
   }
# ะ“ะตะฝะตั€ะธั€ัƒะตะผ ะฟะพั‚ะพะบะธ

   foreach($VM in $AllVMs)
   {
       $PowershellThread = [PowerShell]::Create()
# ะ”ะพะฑะฐะฒะปัะตะผ ัะบั€ะธะฟั‚
       $null = $PowershellThread.AddScript($scriptblock)
# ะ˜ ะพะฑัŠะตะบั‚ั‹, ะบะพั‚ะพั€ั‹ะต ะฟะตั€ะตะดะฐะดะธะผ ะฒ ะบะฐั‡ะตัั‚ะฒะต ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ัะบั€ะธะฟั‚ัƒ
       $null = $PowershellThread.AddArgument($ConnectionString)
       $null = $PowershellThread.AddArgument($VM)
       $PowershellThread.RunspacePool = $RunspacePool
       $Handle = $PowershellThread.BeginInvoke()
       $Job = "" | Select-Object Handle, Thread, object
       $Job.Handle = $Handle
       $Job.Thread = $PowershellThread
       $Job.Object = $VM.ToString()
       $Jobs += $Job
   }

# ะกั‚ะฐะฒะธะผ ะณั€ะฐะดัƒัะฝะธะบ, ั‡ั‚ะพะฑั‹ ะฝะฐะณะปัะดะฝะพ ะพั‚ัะปะตะถะธะฒะฐั‚ัŒ ะฒั‹ะฟะพะปะฝะตะฝะธะต ะทะฐะดะฐะฝะธะน
# ะ˜ ะทะดะตััŒ ะถะต ะฟั€ะธะฑะธะฒะฐะตะผ ะพั‚ั€ะฐะฑะพั‚ะฐะฒัˆะธะต ะทะฐะดะฐะฝะธั
   While (@($Jobs | Where-Object {$_.Handle -ne $Null}).count -gt 0)
   {
       $Remaining = "$($($Jobs | Where-Object {$_.Handle.IsCompleted -eq $False}).object)"

       If ($Remaining.Length -gt 60) {
           $Remaining = $Remaining.Substring(0,60) + "..."
       }

       Write-Progress -Activity "Waiting for Jobs - $($MaxThreads - $($RunspacePool.GetAvailableRunspaces())) of $MaxThreads threads running" -PercentComplete (($Jobs.count - $($($Jobs | Where-Object {$_.Handle.IsCompleted -eq $False}).count)) / $Jobs.Count * 100) -Status "$(@($($Jobs | Where-Object {$_.Handle.IsCompleted -eq $False})).count) remaining - $remaining"

       ForEach ($Job in $($Jobs | Where-Object {$_.Handle.IsCompleted -eq $True})){
           $Job.Thread.EndInvoke($Job.Handle)     
           $Job.Thread.Dispose()
           $Job.Thread = $Null
           $Job.Handle = $Null
       }
   }

   $RunspacePool.Close() | Out-Null
   $RunspacePool.Dispose() | Out-Null
}


function Get-CloudUUID2
{
   [CmdletBinding()]
   param(
   [string[]]
   [ValidateNotNullOrEmpty()]
   $vCenters = @(),
   [int]$MaxThreads = 50,
   [System.Management.Automation.PSCredential]
   [System.Management.Automation.Credential()]
   $Credential)

   if(!$Credential)
   {
       $Credential = Get-Credential -Message "Please enter vCenter credentials."
   }

   # ะ’ั‹ะทะพะฒ ั„ัƒะฝะบั†ะธะธ Get-VMCloudUUID, ะณะดะต ะผั‹ ั€ะฐัะฟะฐั€ะฐะปะปะตะปะธะฒะฐะตะผ ะพะฟะตั€ะฐั†ะธัŽ
   $AllCloudVMs = Get-VMCloudUUID -vCenters $vCenters -MaxThreads $MaxThreads -Credential $Credential
   $Result = $AllCloudVMs | Sort-Object Value | Group-Object -Property CloudUUID | Where-Object -FilterScript {$_.Count -gt 1} | Select-Object -ExpandProperty Group
   $Result
}

แƒแƒ› แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒกแƒ˜แƒšแƒแƒ›แƒแƒ–แƒ” แƒ˜แƒกแƒแƒ, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒ›แƒกแƒ’แƒแƒ•แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒจแƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ ScriptBlock-แƒ˜แƒก แƒ“แƒ แƒ˜แƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒกแƒขแƒ แƒ˜แƒ›แƒ˜แƒœแƒ’แƒก. แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ” แƒ”แƒก!

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ–แƒแƒ›แƒแƒ•แƒ— แƒ“แƒ แƒแƒก:

แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ แƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ PowerCLI แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

55 แƒฌแƒแƒ›แƒ˜. แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ˜แƒงแƒแƒก. 

แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ›แƒ”แƒแƒ แƒ” แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ”แƒ–แƒ”: GetView

แƒ›แƒแƒ“แƒ˜ แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒแƒ— แƒ แƒ˜แƒกแƒ˜ แƒ‘แƒ แƒแƒšแƒ˜แƒ.
แƒฃแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ”แƒก แƒงแƒแƒ•แƒšแƒ˜แƒกแƒ, Get-VM cmdlet-แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.
แƒ›แƒ”แƒแƒ แƒ”แƒช, Get-AdvancedOptions cmdlet-แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.
แƒฏแƒ”แƒ  แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒ˜แƒ•แƒฎแƒ”แƒ“แƒแƒ—. 

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

แƒฎแƒ”แƒšแƒ˜แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒ›แƒแƒซแƒ แƒแƒแƒ‘แƒ˜แƒ— แƒ”แƒก แƒแƒ แƒ˜แƒก:


VM | Get-AdvancedSetting -Name Cloud.uuid -Server $ConnectionString | Select-Object @{N="VMName";E={$_.Entity.Name}},@{N="CloudUUID";E={$_.Value}},@{N="PowerState";E={$_.Entity.PowerState}}

แƒ˜แƒฅแƒชแƒ”แƒ•แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒจแƒ˜:


$VM | Where-Object {($_.ExtensionData.Config.ExtraConfig | Where-Object {$_.key -eq "cloud.uuid"}).Value -ne $null} | Select-Object @{N="VMName";E={$_.Name}},@{N="CloudUUID";E={($_.ExtensionData.Config.ExtraConfig | Where-Object {$_.key -eq "cloud.uuid"}).Value}},@{N="PowerState";E={$_.summary.runtime.powerstate}}

แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” Get-AdvancedOptions, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ แƒฏแƒ”แƒ  แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. 

แƒแƒฎแƒšแƒ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ—-VM. แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒฌแƒ แƒแƒคแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒแƒฅแƒ›แƒ” แƒแƒฅแƒ•แƒก แƒ แƒ—แƒฃแƒš แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒก. แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ: แƒ แƒแƒขแƒแƒ› แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ“แƒ แƒแƒ›แƒแƒ–แƒ แƒ–แƒ”แƒœแƒ˜ PSOแƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜, แƒ แƒแƒชแƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ VM-แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ แƒ“แƒ แƒกแƒแƒฎแƒ˜แƒคแƒแƒ—แƒ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ?  

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒ“แƒแƒœ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒแƒ‘แƒ แƒ™แƒแƒšแƒ”แƒ‘แƒ Get-AdvancedOptions-แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—. Runspace Pools-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒฎแƒšแƒ แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒ”แƒกแƒ˜แƒ˜แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒกแƒแƒก แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒœแƒ”แƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒ˜แƒ–แƒ”แƒ‘แƒ squat แƒซแƒแƒคแƒ”แƒ‘แƒจแƒ˜. แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ™แƒแƒ แƒ’แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. 

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— ExtensionData-แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒก: แƒ”แƒก แƒกแƒฎแƒ•แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜แƒ, แƒ—แƒฃ แƒแƒ แƒ Get-View แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜. 

แƒ›แƒแƒ“แƒ˜แƒ— แƒ›แƒแƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ— PowerShell-แƒ˜แƒก แƒแƒกแƒขแƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒฃแƒซแƒ•แƒ”แƒšแƒ”แƒก แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒแƒก: แƒ”แƒ แƒ—แƒ˜ แƒฎแƒแƒ–แƒ˜ แƒคแƒ˜แƒšแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ“แƒแƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒแƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฌแƒ˜แƒœแƒ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ”แƒ‘แƒ แƒ”แƒšแƒ”แƒ’แƒแƒœแƒขแƒฃแƒ แƒแƒ“ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒฎแƒแƒ–แƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ”แƒ แƒ— แƒกแƒ”แƒกแƒ˜แƒแƒ–แƒ”:


$AllVMs = Get-View -viewtype VirtualMachine -Property Name,Config.ExtraConfig,summary.runtime.powerstate | Where-Object {($_.Config.ExtraConfig | Where-Object {$_.key -eq "cloud.uuid"}).Value -ne $null} | Select-Object @{N="VMName";E={$_.Name}},@{N="CloudUUID";E={($_.Config.ExtraConfig | Where-Object {$_.key -eq "cloud.uuid"}).Value}},@{N="PowerState";E={$_.summary.runtime.powerstate}} | Sort-Object CloudUUID | Group-Object -Property CloudUUID | Where-Object -FilterScript {$_.Count -gt 1} | Select-Object -ExpandProperty Group

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ–แƒแƒ›แƒแƒ•แƒ— แƒ“แƒ แƒแƒก:

แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ แƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ PowerCLI แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

9 แƒฌแƒแƒ›แƒ˜ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก 10 แƒแƒ—แƒแƒกแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ— แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ•แƒ แƒ˜แƒ—. แƒ“แƒ˜แƒ“แƒ˜!

แƒ˜แƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ แƒแƒ› แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

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

PS: แƒแƒ•แƒขแƒแƒ แƒ˜ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒแƒก แƒฃแƒฎแƒ“แƒ˜แƒก แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒ”แƒ•แƒ แƒก แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒฌแƒ”แƒฃแƒšแƒ˜ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ—แƒแƒ—แƒ”แƒ‘แƒ˜แƒ—. แƒ“แƒ แƒ›แƒแƒ—แƒแƒช แƒ™แƒ˜, แƒ•แƒ˜แƒกแƒแƒช แƒคแƒ”แƒฎแƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒฅแƒ•แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ‘แƒแƒ แƒ™แƒแƒœแƒกแƒขแƒ แƒ˜แƒฅแƒขแƒแƒ แƒ˜.

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

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