Ok, I see what happened.
The 2nd block is to create the empty properties in the object.
There the Value should be $null, like this
$report=@()
foreach($vminGet-VM){
$row=New-ObjectPSObject-Property@{Name=$vm.Name}
$i=1
Get-HardDisk-VM$vm|%{
$row|Add-Member-Name"Disk #$($i) Name"-Value$_.Name-MemberTypeNoteProperty
$row|Add-Member-Name"Disk #$($i)"-Value$_.FileName.Split("/")[1] -MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)path"-Value$_.FileName-MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)Capacity(MB)"-Value ($_.CapacityGB*1024) -MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)Controller"-Value ($_|Get-ScsiController).Name-MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)Datastore"-Value$_.FileName.Split(']')[0].TrimStart('[') -MemberTypeNoteProperty
$i++
}
while($i-le8){
$row|Add-Member-Name"Disk #$($i) Name"-Value$null-MemberTypeNoteProperty
$row|Add-Member-Name"Disk #$($i)"-Value$null-MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)path"-Value$null-MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)Capacity(MB)"-Value$null-MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)Controller"-Value$null-MemberTypeNoteProperty
$row|Add-Member-Name"Disk$($i)Datastore"-Value$null-MemberTypeNoteProperty
$i++
}
$report+=$row
}
$report |Export-Csv-pathvirtual_disks2.csv-notype