2017-01-11 11 views
0

VMWare環境ですべてのスナップショットのリストを取得しています。これらのVMからのVM​​Wareサーバータグ情報も同様ですが、これを行う方法がわかりません。私は、タグ情報を取得し、それが "SizeGB"の下に置くことを望んでいました。これを行う方法はありますか?出力テキストファイルにVMタグを追加する方法

ここ

はタグ情報なしで私のスクリプトです:

# Adding PowerCLI Snap-in to use cmdlets to connect to vSphere 
Add-PSSnapin VMware.VimAutomation.Core 

# Connect to vCenter 
Connect-ViServer -server $vCenter -ErrorAction Stop 

# Write header on report 
Write-Output "VMWare Snapshot Report for $(get-date -f MM-dd-yyyy)" | 
    Out-File $Log -Append 

# Get VM Snapshot Information for all Snapshots and send that information to 
# c:\automation\AllSnapshots.txt 
Get-VM | Get-Snapshot | Where-Object { 
    $_.Created -lt (Get-Date).AddDays(-3) 
} | Format-List vm, name, created, sizegb | Out-File $Log -Append 

# Disconnect from vCenter 
Disconnect-VIServer -Server * -Force -Confirm:$false 

答えて

0
# Adding PowerCLI Snap-in to use cmdlets to connect to vSphere 
Add-PSSnapin VMware.VimAutomation.Core 

# Connect to vCenter 
Connect-ViServer -server $vCenter -ErrorAction Stop 

# Write header on report 
Write-Output "VMWare Snapshot Report for $(get-date -f MM-dd-yyyy)" | 
    Out-File $Log -Append 

# Get VM Snapshot Information for all Snapshots and send that information to 
# c:\automation\AllSnapshots.txt 
$output = @() 
foreach ($vm in Get-VM) { 
    $tags = ((Get-TagAssignment -Entity $vm | select -ExpandProperty Tag).Name -join ", ") 
    foreach ($snapshot in $vm | Get-Snapshot | Where-Object { $_.Created -lt (Get-Date).AddDays(-3) }) { 
     $obj = [PSCustomObject]@{VM = $vm.Name; Name = $snapshot.Name; Created = $snapshot.Created; SizeGB = $snapshot.SizeGB; Tags = $tags} 
     $output += $obj 
    } 
} 
$output | Format-List | Out-File $Log -Append 

# Disconnect from vCenter 
Disconnect-VIServer -Server * -Force -Confirm:$false 
+0

私はこれを使用してみましたし、ファイル –

+0

に行く何も出力アウトファイルコマンドレットを削除する場合は、コンソールでの任意の出力を参照してくださいがありませんか? これはvCenter 5.5とPowerCLI 6.0でうまく動作します。 – t1meless

+0

実際に動作します!ありがとうございました! –

関連する問題