VMS ve SCVMM'den gelen PowerShell betiğini kullanan özniteliklerinin listesini alıyorum. Bir VM'nin bir günde veya 1 saat içinde ne kadar süre kapatıldığını hesaplamak istiyorum. Lütfen kapalı kaldığında her bir VM için kapanma süresini nasıl hesaplayacağımı bana bildirin. Komut dosyası her 1 saatte çalışıyor.SCVMM için Powershell betiği
Scriptim aşağıda.
# CHANGE
# Specify the VMM Server
#Write-Host “Connecting to VMM server.....”
$VMMServer="calo-infvmm-01.calocosn.local"
$a = ((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmss")
$clouds = Get-SCCloud -VMMServer $VMMServer
#Write-Host “Connected to VMM server successffully..”
$vmHeader = [string]::Concat("VMId",",","SubscriptionId",",","VMName",",","OperatingSystem",",","Memory(MB)",",","CPUCount",",","DiskUsed(GB)",",","DiskAllocated(GB)",",","StorageClassification",",","Owner",",","CreationTime",",","SampleTime",",","Status")
Write-Output $vmHeader
ForEach ($cloud in $clouds)
{
$VMs = Get-scVirtualMachine -Cloud $cloud
ForEach ($VM in $VMs)
{
#if ($VM.Name -ne "TestCCE")
#{
# continue;
#}
$size = 0
$maxSize = 0
$classification = "Standard"
#Write-Output $VM
ForEach ($disk in $VM.VirtualHardDisks)
{
$classification = $disk.Classification
$size += $disk.Size/1gb
$parentDisk = $disk.ParentDisk
while($parentDisk)
{
$size += $parentDisk.Size/1gb
$parentDisk = $parentDisk.ParentDisk
}
$maxSize += $disk.MaximumSize/1gb
}
# CHANGE
# After the test works, we will acquire additional variables from VMM.
$vmText = [string]::Concat($vm.ID,",",$vm.UserRoleID,",",$vm.Name,",",$vm.OperatingSystem,",",$vm.Memory,",",$vm.CPUCount,",",$size,",",$maxSize,",",$classification,",",$vm.Owner,",",$vm.CreationTime,",",$a,",",$vm.Status)
Write-Output $vmText
}
}
Belirtildiği gibi, durumu alıyorum, ancak VM'nin kapalı olduğu süreyi vermiyor. Yani bir VM 2 saat boyunca 1 saat daha kapalıydı. – Hemant