Here is what I ended up cobbling together to get this done with $esxcli. It's ugly, but gets the job done :-)
#Add static iSCSI targets to hosts
Connect-VIServer -Server view-vcenter.vdi.sf.local -User vdi\administrator -Password P@ssw0rd
$hosts = get-vmhost
#Define the IQNs to add
#Set $iqnprefix to cut down on length of commands
$iqnprefix = "iqn.2010-01.com.solidfire:bbup."
$volumeNames = @("desktop01","desktop02","desktop03","desktop04","desktop05","desktop06","desktop07","desktop08","desktop09","desktop10","desktop11","desktop12","desktop13","desktop14","desktop15","desktop16","desktop17","desktop18","desktop19","desktop20")
$volumeIDs = @(2514..2530 + 2535..2537)
#Storage virtual IP for the SolidFire system
$svip = "172.27.32.30"
$chapsecret = "j0iT18i17Vp4su>r"
$account = "VDI-Desktops"
foreach ($esx in $hosts) {
write-host "Getting iSCSI adapter for host $esx"
$hba = get-vmhost $esx | Get-VMHostHba -Type iScsi | Where {$_.Model -eq "iSCSI Software Adapter"}
write-host "Setting up esxcli"
$esxcli = get-esxcli -vmhost $esx
write-host "Configuring targets on host $esx"
for ($i = 0; $i -le 19; $i++) {
$target = $iqnprefix + $volumeNames[$i] + "." + $volumeIDs[$i]
write-host "Adding static target $target"
$esxcli.iscsi.adapter.discovery.statictarget.add($hba, $svip, $target)
$esxcli.iscsi.adapter.target.portal.auth.chap.set($hba, $svip, $account, $null, "uni", $false, "required", $target, $chapsecret)
}
}
#Disconnect-VIServer -Server * -Force -Confirm:$false
Write-Host "Done adding static targets" -ForegroundColor Green