Возникла необходимость почистить место на datastore. В связи с чем и родились следующие скрипты.
$vCenter = $args[0]
echo 'Connect to vCenter'
Connect-VIServer $vCenter
echo '------------------------------------'
$Report = @()
echo 'Get-VMs'
foreach ($item in Get-VM) {
foreach ($item2 in Get-HardDisk $item) {
$VMInfo = {} | Select VMName,Disk
$VMInfo.VMName = $item.name
$VMInfo.Disk = $item2.filename
$Report += $VMInfo
}
}
$Report = $Report | Sort-Object VMName
IF ($Report -ne "") {
$Report | Export-Csv .\$vCenter.log -NoTypeInformation
}
Disconnect-VIServer -Confirm:$false
Скрипт №2: Составление списка файлов, находящихся на datastore, вместе с их директориями и именами datastore.
$vCenter = $args[0]
echo 'Connect to vCenter'
Connect-VIServer $vCenter
$Report = @()
echo 'Get-VMs'
foreach ($item in get-datastore) {
$item
new-psdrive -location $item -name ds -psprovider VimDatastore -Root "\"
Set-Location ds:\
foreach ($f in Get-ChildItem) {
set-location $f
foreach ($o in get-childitem) {
echo "------------------------file information--------------------------------"
$filelist = {} | Select datastorename,foldername,filename
$filelist.datastorename = $item.Name
$filelist.foldername = $f.Name
$filelist.filename = $o.name
write-host $item.name"; "$f.name"; "$o.name
$report += $filelist
}
}
Set-Location d:\projects\powercli\getvm\
remove-psdrive -name ds
}
# $Report = $Report | Sort-Object VMName
IF ($Report -ne "") {
$Report | Export-Csv .\datastore.log -NoTypeInformation
}
Disconnect-VIServer -Confirm:$false
Вывод всего лишнего в следующей серии, так нет времени на написании скрипта.
Комментариев нет:
Отправить комментарий