Hi,
I'd like to share a thought about the current Snapdrive implementation of SDCLI. Currently there is (as far as i know) no support for direct access of snapdrive through powershell (plz correct me if i'm wrong). But I needed a way to get the disk list of a server to be able to do some crazy stuff with dataontap powershell toolkit. (like kicking in qtree snapmirror on all connected volumes, stuff like this)
as far as i see there is no easy way to get all output of sdcli to a powershell object so I tried it myself and would be happy if anybody may give me a hint if what i do is the right way or if there is a much easier way to accomplish what i'd like to do.
it's sort of a sdcli powershell wrapper..
BG Christoph
$output = &sdcli.exe disk list
$LoopCounts = $output.Count/25
$DiskList = @()
for ($i=0;$i -lt $LoopCounts;$i++)
{
#Write-Host $i
$Disk = New-Object PSObject -Property @{
UNCPath = ($output[$i].split(":",2))[1].trim()
LUNPath = ($output[$i+1].split(":",2))[1].trim()
StorageSystem = ($output[$i+2].split(":",2))[1].trim()
StorageSystemPath = ($output[$i+3].split(":",2))[1].trim()
Type = ($output[$i+4].split(":",2))[1].trim()
DiskSerialNumber = ($output[$i+5].split(":",2))[1].trim()
BackedbySnapshotCopy = ($output[$i+6].split(":",2))[1].trim()
Shared = ($output[$i+7].split(":",2))[1].trim()
BootOrSystemDisk = ($output[$i+8].split(":",2))[1].trim()
SCSIport = ($output[$i+9].split(":",2))[1].trim()
Bus = ($output[$i+10].split(":",2))[1].trim()
Target = ($output[$i+11].split(":",2))[1].trim()
LUN = ($output[$i+12].split(":",2))[1].trim()
Readonly = ($output[$i+13].split(":",2))[1].trim()
Size = ($output[$i+14].split(":",2))[1].trim()
SnapmirrorSource = ($output[$i+15].split(":",2))[1].trim()
SnapvaultPrimary = ($output[$i+16].split(":",2))[1].trim()
DiskPartitionStyle = ($output[$i+17].split(":",2))[1].trim()
CloneSplitRestorestatus = ($output[$i+18].split(":",2))[1].trim()
DiskID = ($output[$i+19].split(":",2))[1].trim()
VolumeName = ($output[$i+20].split(":",2))[1].trim()
Mountpoints = ($output[$i+21].split(":",2))[1].trim()
IPAddresses = ($output[$i+22].split(":",2))[1].trim()
iSCSIinitiator = ($output[$i+23].split(":",2))[1].trim()
}
$DiskList += $Disk
}
$DiskList | fl