Получить букву подключенного диска 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 клиента и вернет ее.

Другие вопросы по тегам