It appears as if I have to do a lot of extra steps in order to use update commands with the powershell sdk.  For example, this is the detailed example for update-ncvol:
 
C:\PS>$q = Get-NcVol -Template
Initialize-NcObjectProperty $q VolumeIdAttributes
$q.VolumeIdAttributes.Name = "vol1|vol2"
$q.VolumeIdAttributes.OwningVserverName = "vserver1"
$a = Get-NcVol -Template
Initialize-NcObjectProperty $a VolumeIdAttributes
$a.VolumeIdAttributes.Comment = "Database volumes"
Update-NcVol -Query $q -Attributes $a
 
 
and it works when I try it out.  I am trying to gather and then update a set of volumes from a cluster by doing this:
 
$volumes = Get-NcVol
foreach ($vol in $volumes){
    $replaceWith = Get-NcVol -Template
    Initialize-NcObjectProperty $replaceWith VolumeIdAttributes 
    $replaceWith.VolumeIdAttributes.Comment = "test comment"
    Update-NcVol -Query $vol -Attributes $replaceWith
}
 
 
But it doesn't work.  Apparently I have no choice but to move information from the volumes I retrieved from the cluster to empty volumes in order to make it work?
 
 
 For instance, this works:
 
$volumes = Get-NcVol
foreach ($vol in $volumes){
   $query = Get-NcVol -Template
    Initialize-NcObjectProperty $query VolumeIdAttributes
    $query.Name = $vol.Name
    $query.Vserver = $vol.Vserver
 
    $replaceWith = Get-NcVol -Template
    Initialize-NcObjectProperty $replaceWith VolumeIdAttributes 
    $replaceWith.VolumeIdAttributes.Comment = "test comment"
 
    Update-NcVol -Query $query -Attributes $replaceWith
}
 
 
Is it necessary to do all these extra steps?  Wouldn't it make more sense if I could just use the queried vol object for the update command?  Please let me know if there's a better way.
 
Thanks