āĻļā§āĻā§āĻ°āĻ āĻŦāĻž āĻĒāĻ°ā§, āĻ¯ā§āĻā§āĻ¨ā§ VMware āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻ°ā§āĻāĻŋāĻ¨ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻāĻ¸ā§āĨ¤ āĻāĻāĻŋ āĻ¸āĻŦ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ¸ā§ PowerShell āĻŦāĻž VMware PowerCLIāĨ¤
āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ ISE āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ "āĻāĻŋāĻā§ āĻ§āĻ°āĻŖā§āĻ° āĻāĻžāĻĻā§" āĻāĻ° āĻāĻžāĻ°āĻŖā§ āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĨā§āĻā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ cmdlets āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻ°āĻ āĻāĻŋāĻā§āĻāĻž āĻāĻāĻŋāĻ¯āĻŧā§ PowerShell āĻāĻ¯āĻŧāĻ¤ā§āĻ¤ āĻāĻ°ā§āĻā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻļāĻ¤ āĻļāĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ āĻāĻŖāĻ¨āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻŦā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ¯ā§ āĻā§āĻ āĻ¸ā§āĻā§āĻ˛ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ¸ā§āĻā§āĻ˛ā§ āĻ˛āĻā§āĻˇāĻŖā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ§ā§āĻ° āĻāĻ¤āĻŋāĻ¤ā§ āĻāĻ˛ā§āĨ¤
āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§, 2 āĻāĻŋ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§:
- āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛ āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ - āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻĨāĻ āĻĨā§āĻ°ā§āĻĄā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ;
- āĻā§āĻ-āĻāĻŋāĻ - āĻāĻāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ PowerCLI āĻĢāĻžāĻāĻļāĻ¨, Windows-āĻ Get-WMIObject-āĻāĻ° āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻāĨ¤ āĻāĻ cmdlet āĻ¸āĻ¤ā§āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻĨāĻžāĻāĻž āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ¨ā§ āĻāĻ¨ā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻžāĻ°ā§ āĻ¤āĻĨā§āĻ¯ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĨ¤ āĻ āĻ¨ā§āĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¤āĻž āĻĻā§āĻ°ā§āĻ¤ āĻŦā§āĻ°āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§āĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻŋ āĻ¸āĻāĻā§āĻˇā§āĻĒā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŦ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻžāĻŦāĨ¤ āĻāĻ¸ā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯āĻāĻŋāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻžāĻ˛ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ¯āĻžāĻāĻ¯āĻŧāĻž!
āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ: āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻžāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻĒāĻ¨āĻŋ āĻ āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻŋāĻā§ āĻŽā§āĻŽāĻ°āĻŋ, āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻā§āĻ¯āĻŧā§ āĻĢā§āĻ˛āĻŦā§ā§ˇ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻ¯āĻŧā§āĻ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛ā§ āĻāĻŦāĻ āĻāĻ āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°āĻ āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§ āĻ¨āĻžā§ˇ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻžāĻ¨ā§ āĻļā§āĻāĻž āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛ āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻļā§āĻ°ā§: āĻĒāĻžāĻ°ā§āĻ 1
āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§ āĻĻā§āĻ¯āĻŧ:
- āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻĄ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸ā§āĻŽāĻŋāĻ¤ āĻāĻ°ā§ āĻāĻ¤āĻŋ,
- āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻžāĻ°ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨,
- āĻ¸ā§āĻ°āĻā§āĻˇāĻžāĨ¤
āĻāĻāĻžāĻ¨ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ˛ āĻ¯āĻāĻ¨ āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§:
"āĻ¸āĻā§āĻāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŦāĻŋāĻ°ā§āĻ§ vSphere-āĻ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨ āĻŽā§āĻā§āĻ°āĻŋāĻāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋāĨ¤ vCenter-āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ āĻāĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž āĻā§āĻ¨ VM āĻŦā§āĻļāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĨ¤ āĻāĻžāĻā§āĻ¯āĻā§āĻ°āĻŽā§, āĻāĻĒāĻ¨āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛āĻā§ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻŦ āĻ¯āĻž VMware āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ°āĻĻā§āĻ° āĻĻā§āĻ°ā§āĻ¤ vCenter āĻā§āĻĄāĻŧā§ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĄāĻŧ āĻāĻ°āĻā§āĻ° āĻĄā§āĻāĻž āĻ¸āĻš VM-āĻāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§āĨ¤
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ PowerShell āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ ESXi āĻšā§āĻ¸ā§āĻāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ā§ āĻ¨āĻŋāĻāĻ¸ā§āĻŦ VM āĻĨā§āĻā§ āĻāĻ°āĻā§āĻ° āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋāĻ° āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛āĻā§ āĻšā§āĻ¸ā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§āĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤"
āĻ¨ā§āĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ āĻāĻ° āĻāĻĒāĻ¯ā§āĻā§ āĻ¨āĻ¯āĻŧ:
âāĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛ā§āĻāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻāĻŋ āĻ¯āĻž āĻāĻāĻāĻŋ VM āĻĨā§āĻā§ āĻĒā§āĻ°āĻā§āĻ° āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ āĻ¨āĻ¤ā§āĻ¨ āĻĄā§āĻāĻž āĻ˛ā§āĻā§āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻšāĻ˛ āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻā§āĻ° āĻāĻŋāĻāĻŽ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨ā§ 5-8 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤"
āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ-āĻāĻŋāĻ āĻ˛āĻžāĻāĻŦā§, āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻ¤ā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ: āĻā§āĻ-āĻāĻŋāĻ
Get-View āĻā§āĻ¨ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¤āĻž āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ cmdlets āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨āĨ¤
API āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŦāĻ āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻžāĻāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻĻā§āĻāĻžāĻŦāĻ¨ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻŽāĻ¤ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ Cmdlets āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻĻāĻŋāĻ¨ā§ āĻ¯āĻž āĻāĻāĻļ āĻŦāĻž āĻĻā§āĻ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻā§āĻĄ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻŽāĻ°āĻž āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋāĨ¤ cmdlets āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ¨ āĻāĻžāĻĻā§ āĻ¨ā§āĻ: āĻāĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§, āĻ°ā§āĻĻā§āĻ°ā§āĻā§āĻā§āĻŦāĻ˛ āĻāĻžāĻ°āĻ¤ āĻĨā§āĻā§ āĻāĻāĻāĻ¨ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻĻāĻā§āĻˇ āĻšāĻžāĻ¤ā§ āĻ˛ā§āĻāĻžāĨ¤
āĻāĻāĻ¨, Get-View āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ Get-VM cmdlet āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ: āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¯ā§āĻāĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§: VMHost, Datastore āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤
Get-View āĻāĻ° āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻŋāĻā§ āĻ¯ā§āĻ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻ āĻ§āĻŋāĻāĻ¨ā§āĻ¤ā§, āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ¨ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¤āĻž āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻāĻāĻāĻĒā§āĻ āĻ āĻŦāĻā§āĻā§āĻāĻā§ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛āĻŦā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻāĻāĻ¨ā§āĻĄā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇāĻ¤ āĻšāĻžāĻāĻĒāĻžāĻ°-āĻāĻŋāĻ¤ā§, Get-WMIObject cmdlet āĻāĻāĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻ - āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻ āĻŋāĻ āĻāĻāĻāĨ¤
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ āĻŦāĻā§āĻā§āĻā§ āĻ°ā§āĻāĻŋāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ-āĻāĻŋāĻ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻāĻ¨ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻĨāĻž āĻāĻ¸ā§, āĻ¤āĻāĻ¨ āĻāĻ° āĻā§āĻ¨ā§ āĻĻāĻžāĻŽ āĻĨāĻžāĻā§ āĻ¨āĻžāĨ¤
āĻāĻĒāĻ¨āĻŋ VMware āĻŦā§āĻ˛āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
āĻā§āĻ-āĻāĻŋāĻ āĻāĻ° āĻā§āĻŽāĻŋāĻāĻž
āĻāĻāĻ¨ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦāĨ¤
āĻāĻāĻāĻŋ VM āĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛ā§āĻāĻž
āĻāĻāĻĻāĻŋāĻ¨ āĻāĻŽāĻžāĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§ āĻāĻŽāĻžāĻā§ āĻ¤āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻŦāĻ˛āĻ˛ā§āĻ¨āĨ¤ āĻāĻžāĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ°ā§āĻāĻŋāĻ¨: āĻāĻāĻāĻŋ āĻĄā§āĻĒā§āĻ˛āĻŋāĻā§āĻ Cloud.uuid āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻš āĻ¸āĻŽāĻ¸ā§āĻ¤ VM āĻā§āĻāĻā§āĻ¨ (āĻšā§āĻ¯āĻžāĻ, vCloud āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°ā§ āĻāĻāĻāĻŋ VM āĻā§āĻ˛ā§āĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ)āĨ¤
āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ¯āĻž āĻŽāĻ¨ā§ āĻāĻ¸ā§ āĻ¤āĻž āĻšāĻ˛:
- āĻ¸āĻŽāĻ¸ā§āĻ¤ VM-āĻāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ¨āĨ¤
- āĻā§āĻ¨ā§āĻāĻžāĻŦā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ°ā§āĻ¸.
āĻŽā§āĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻāĻŋ āĻāĻ āĻ¸āĻšāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻŋāĻ˛:
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
}
# ĐĐ°ĐģĐĩĐĩ Đ ĐŖĐĐĐĐ ĐŋĐ°ŅŅиĐŧ ĐŋĐžĐģŅŅĐĩĐŊĐŊŅĐš ŅĐĩСŅĐģŅŅĐ°Ņ
āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°. āĻāĻĢāĻŋāĻ° āĻŦāĻŋāĻ°āĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻŽāĻŋāĻ¨āĻŋāĻ āĻĻā§āĻ¯āĻŧā§āĻ āĻ˛ā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĒāĻ°āĻŋāĻ¸ā§āĻ°āĻžāĻŦāĻŖ āĻāĻĒāĻ° āĻ¸ā§āĻā§āĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨.
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ¸ā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻž āĻ¯āĻžāĻ:
2 āĻŽāĻŋāĻ¨āĻŋāĻ 47 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 10k VM āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻŦā§āĻ¨āĻžāĻ¸ āĻšāĻ˛ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°ā§āĻ° āĻ
āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸āĻžāĻāĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ, āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻ āĻ¸āĻžāĻĨā§ vCenter āĻĨā§āĻā§ āĻšā§āĻ¸ā§āĻ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻĒā§āĻ¤ā§ āĻŦāĻž āĻāĻ¯āĻŧā§āĻ āĻšāĻžāĻāĻžāĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻāĻ¨ āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸āĻā§āĻ˛āĻŋāĻ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĻā§āĻ§āĻžāĻ°ā§ āĻāĻ¸ā§ā§ˇ āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¤āĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨: āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛ āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸
āĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻ¯ā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻŽāĻ¨ā§ āĻāĻ¸ā§ āĻ¤āĻž āĻšāĻ˛ āĻ˛ā§āĻĒāĻāĻŋ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĨā§āĻ°ā§āĻĄā§, āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻā§: 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 āĻāĻŽāĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻŦāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻŦā§āĻ˛āĻā§āĻ° āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ¸ā§āĻ¨ $global:DefaultVIServers (-NotDefault āĻā§ āĻĻāĻŋāĻ¯āĻŧā§ Connect-VIServer) āĻŦāĻžāĻāĻĒāĻžāĻ¸ āĻāĻ°ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻžāĻ°ā§ āĻ¸ā§āĻļāĻ¨āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻŋ:
$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 $_
}
}
}
āĻāĻāĻ¨ āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ āĻĒā§āĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĨā§āĻ°ā§āĻĄāĻŋāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
- āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ VM-āĻāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻāĨ¤
- āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒā§āĻ°āĻŦāĻžāĻšā§ āĻāĻŽāĻ°āĻž Cloud.uuid āĻĒāĻžāĻāĨ¤
- āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻŋāĨ¤
- āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻāĻĄāĻāĻāĻāĻāĻĄāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ ā§āĻŦāĻĻā§āĻ§ āĻāĻ°ā§ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻ°āĻŋ: āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž 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
}
āĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋāĻ° āĻ¸ā§āĻ¨ā§āĻĻāĻ°ā§āĻ¯ āĻšāĻ˛ āĻ¯ā§ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻŦā§āĻ˛āĻ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°ā§āĻŽā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻž āĻļā§āĻˇāĻŖ!
āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻŋ:
55 āĻ¸ā§āĻā§āĻ¨ā§āĻĄāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻ āĻāĻžāĻ˛, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻāĻ¨āĻ āĻĻā§āĻ°ā§āĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ¤āĻŋāĻ¤ā§ āĻāĻ˛ā§āĻ¨: GetView
āĻāĻ˛ā§āĻ¨ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ āĻāĻŋ āĻā§āĻ˛.
āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦāĻžāĻā§āĻ°ā§, Get-VM cmdlet āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¤ā§ āĻ
āĻ¨ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧāĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, Get-AdvancedOptions cmdlet āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¤ā§ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧāĨ¤
āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻāĻžāĻŦāĻŋāĻ˛āĻž āĻāĻ°āĻŋāĨ¤
Get-AdvancedOptions āĻĒā§āĻĨāĻ āĻāĻŋāĻāĻŽ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻ¨ā§āĻ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻŦ āĻāĻ¨āĻžāĻĄāĻŧāĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ āĻ āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§ āĻāĻāĻ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ (Get-VM)āĨ¤ āĻāĻāĻŋ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻĄā§āĻāĻž āĻ āĻŦāĻā§āĻā§āĻā§ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻŦāĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻā§āĻāĻŋāĻ¤, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻā§ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻ°āĻŋāĨ¤
āĻšāĻžāĻ¤ā§āĻ° āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¨āĻĄāĻŧāĻžāĻāĻĄāĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŋ āĻšāĻ˛:
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 āĻāĻ° āĻŽāĻ¤āĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻāĻā§āĻŖ āĻĻā§āĻ°ā§āĻ¤ āĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻāĻāĻ¨ Get-VM-āĻāĨ¤ āĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ¨āĻ¯āĻŧ āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻāĻŋāĻ˛ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ ā§āĻā§: āĻā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĻāĻžāĻ¨āĻŦā§āĻ¯āĻŧ PSObject āĻĻāĻ°āĻāĻžāĻ°, āĻ¯āĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻļā§āĻ§ā§ VM-āĻāĻ° āĻ¨āĻžāĻŽ, āĻāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻāĻŋāĻ˛ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨?
āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, Get-AdvancedOptions āĻāĻāĻžāĻ°ā§ āĻŦāĻžāĻ§āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§. āĻ°āĻžāĻ¨āĻ¸ā§āĻĒā§āĻ¸ āĻĒā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻ¨ āĻāĻāĻžāĻ°āĻāĻŋāĻ˛ā§āĻ° āĻŽāĻ¤ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻŋ āĻ¸ā§āĻļāĻ¨ āĻšāĻ¸ā§āĻ¤āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ¯āĻŧāĻžāĻ āĻĨā§āĻ°ā§āĻĄ āĻā§āĻĄāĻŧā§ āĻāĻāĻāĻŋ āĻ§ā§āĻ° āĻāĻžāĻ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤ āĻā§āĻ˛ āĻāĻžāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¨āĻž.
āĻāĻ¸ā§āĻ¨ 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
āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻŋ:
9 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻ¸āĻš āĻĒā§āĻ°āĻžāĻ¯āĻŧ 10k āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻĻāĻžāĻ°ā§āĻŖ!
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°ā§āĻ°
āĻāĻāĻāĻŋ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ˛ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻ āĻ°ā§āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻŋāĻ āĻā§ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤āĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻ āĻŋāĻ¨āĨ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻāĻ¤āĻŋ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĻ° āĻ¸ā§āĻŽāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻžāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ āĻā§āĻŽā§āĻļāĻ¨ āĻāĻŦāĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻŽā§āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻŦā§āĻāĻžāĻ° āĻāĻ āĻŋāĻ¨ āĻāĻžāĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻ˛ā§āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻŦāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻžāĻ°āĻž āĻĨāĻžāĻŦāĻž āĻ¸āĻšāĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻžāĻĻā§āĻ° āĻĒāĻž āĻ¨ā§āĻ āĻ¤āĻžāĻ°āĻžāĻ āĻŦā§āĻ¯āĻŧāĻž āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻŽāĻ¤ā§āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com