Ich erhalte eine Liste von VMS und seinen Attributen mit PowerShell-Skript von SCVMM. Ich möchte berechnen, wie viel Zeit eine VM an einem Tag oder in 1 Stunde ausgeschaltet wurde. Bitte helfen Sie mir, die Ausschaltzeit für jede VM zu berechnen, wenn sie ausgeschaltet ist. Unten läuft das Skript in jeder Stunde.Powershell-Skript für SCVMM
Unten ist mein Skript.
# 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
}
}
Wie ich bereits erwähnt habe, bekomme ich den Status, aber es gibt nicht die Dauer, für die VM ausgeschaltet war. Ich meine, eine VM war für 2 Stunden eine weitere 1 Stunde so. – Hemant