0

以下のスクリプトの実行中に、まれにエラーが発生します。SCVMM サーバーからデータを取得して CSV ファイルにコピーするスクリプトを作成しました。このスクリプトは 15 分ごとに実行されます。スケジューラを使用してこれをスケジュールしました。ただし、ここでの問題は、警告を下回り、必要なデータを CSV ファイルにコピーしていないことがあります。ほとんどの場合、実行中です。エラーをスローしているインスタンスはほとんどありません。

Get-SCCloud : 指定されたコンピューター名を解決できなかったため、VMM は VMM 管理サーバー calo-infvmm-01.calocosn.local に接続できません。

2016-05-15 19:01:30,334 INFO 実行中のシステム コマンド: C:\cc-working\scripts\PowerShell\VMHours\Sydney\GetStorageDetails.bat -d 20160515 > C:\cc-working\usage_files\VMUphours\Sydney\出力\VMHours_20160515.csv
2016-05-15 19:01:33,874 WARN Get-SCCloud: VMM が VMM 管理サーバーに接続できません
2016-05-15 19:01:33,874 指定されたコンピューター名を
2016-05-15 19:01:33,890 WARN が解決されました。(エラーID:1601)
2016-05-15 19:01:33,890 警告
2016-05-15 19:01:33,890 WARN コンピューター名が正しいことを確認してから、操作を再試行してください。もしも
2016-05-15 19:01:33,890 WARN 問題が解決しない場合は、ネットワーク管理者に連絡してください。
2016-05-15 19:01:33,890 警告 C:\cc-working\scripts\PowerShell\VMHours\Sydney\usage.ps1:7 char:11
2016-05-15 19:01:33,890 警告 + $clouds = Get-SCCloud -VMMServer $VMMServer
2016-05-15 19:01:33,890 警告 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-05-15 19:01:33,890 警告 + CategoryInfo: ReadError: (:) [Get-SCCloud]、CarmineException
2016-05-15 19:01:33,890 警告 + FullyQualifiedErrorId: 1601、Microsoft.SystemCenter.VirtualMachineManage
2016-05-15 19:01:33,890 警告 r.Cmdlets.GetSCCloudCmdlet
2016-05-15 19:01:34,373 INFO コマンドが終了値 '0' で正常に完了しました
2016-05-15 19:01:34,389 自動検出からの INFO リーダー文字セット: ASCII
2016-05-15 19:01:34,389 情報入力: ファイル [C:\cc-working\usage_files\VMUphours\Sydney\Output\VMHours_20160515.csv]
2016-05-15 19:01:34,404 INFO コレクション フィード: Sydney-VMHours-Collection

以下は私のスクリプトです:

$VMMServer = "calo-infvmm-10001.calocosn.local"
$a = ((Get-Date).ToUniversalTime()).ToString("yyyyMMddTHHmmss")

$clouds = Get-SCCloud -VMMServer $VMMServer

$vmHeader = [string]::Concat("VMId",",","SubscriptionId",",","VMName",",","OperatingSystem",",","Memory(MB)",",","CPUCount",",","DiskUsed(GB)",",","DiskAllocated(GB)",",","StorageClassification",",","Owner",",","CreationTime",",","SampleTime",",","Status",",","StartAction",",","StopAction")
Write-Output $vmHeader

foreach ($cloud in $clouds) {
    $VMs = Get-SCVirtualMachine -Cloud $cloud
    foreach ($VM in $VMs) {
        $size = 0
        $maxSize = 0
        $classification = "Standard"
        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
        }
        $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,",",$vm.StartAction,",",$vm.StopAction)
        Write-Output $vmText
    }
}
4

0 に答える 0