you can use Invoke-NaSsh to pull it for each volume. i happened to be working on a function with a similar structure so i just changed the lines to pull the volume FSIDs and it worked against the 8.1.3 controller i tested it against.
YMMV - this structure makes several assumptions like RPC access from the account your are running the function under and that you have keyless SSH setup - plus a complete lack of error handling but it is a starting point.
save as Get-NaVolFSID.ps1, edit $keyfile and dot source it (. .\Get-NaVolFSID.ps1) then you can run $FSID = Get-NaVolFSID <controller> or pipe a list of controllers to it like: $FSID = gc .\filerlist.txt | Get-NaVolFSID
Function Get-NaVolFSID{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[Alias('Filer','Node')]
[String[]]$Controller,
[Parameter(Mandatory=$False)]
[String]$keyfile = "<filename>.ppk"
)
Begin{
$Results = @()
}
Process{
foreach($C in $Controller){
connect-nacontroller $C > $null
$vols = get-navol
foreach ($vol in $vols){
$result = (Invoke-NaSsh -name root@$C -command "priv set advanced;vol read_fsid $vol" -PrivateKeyFile $keyfile -WarningAction SilentlyContinue) -split '\s+'
$FSID = $result[($result.count - 2)].replace('.','')
$Prop=[ordered]@{
'Controller' = $C
'Volume' = $vol.name
'FSID' = $FSID
}
$Obj=New-Object -TypeName PSObject -Property $Prop
$Results += $Obj
}
}
}
End{
#globally add aliasproperty
$results | add-member -MemberType AliasProperty -name VolumeName -value Volume
$results | add-member -MemberType AliasProperty -name Filer -value Controller
$results | add-member -MemberType AliasProperty -name Node -value Controller
Write-Output $Results
}
}