Получить букву подключенного диска iscsi из имени инициатора iscsi
В PowerShell
Я пытаюсь получить букву диска, на которую сопоставлен целевой объект ISCSI. Я использую следующее, чтобы получить имя инициатора ISCSI.
Get-IscsiTarget | ? {$_.IsConnected -eq $True} | Select -ExpandProperty NodeAddress
Я пытался использовать Get-Disk | Select *
а также Get-PSDrive | Select *
но эти cmdlets
Похоже, у меня нет полей, с которыми я могу связать цель, чтобы получить букву диска.
1 ответ
Решение
Пока у вас есть один активный раздел (не считая зарезервированный) для цели ISCSI, вы можете использовать следующее, чтобы сопоставить адрес ISCSI с соответствующей буквой диска.
foreach ($disk in (Get-Disk | ?{$_.BusType -Eq "iSCSI"})){
$DriveLetter = ($disk | Get-Partition | ?{$_.Type -eq "Basic"}).DriveLetter
$ISCSI = $disk | Get-IscsiSession
[pscustomobject]@{
DiskNumber=$disk.Number;
DriveLetter=$DriveLetter;
InitiatorNodeAddress=$ISCSI.InitiatorNodeAddress;
InitiatorIP=$ISCSI.InitiatorPortalAddress;
Size=$disk.Size;
}
}
Это проверит все подключенные диски ISCSI и получит соответствующую букву диска, затем поместит всю информацию в объект PowerShell клиента и вернет ее.