2016-03-29 8 views
1

PowerShell ISCSIターゲットがマップされているドライブ文字を取得しようとしています。私はISCSIイニシエータ名を取得するために以下を使用しています。iscsiイニシエータ名からiscsiマップされたドライブ文字を取得します。

Get-IscsiTarget | ? {$_.IsConnected -eq $True} | Select -ExpandProperty NodeAddress 

私はそのドライブ文字を取得するために、にターゲットをリンクすることができます任意のフィールドを持っていないように見えますGet-Disk | Select *Get-PSDrive | Select *が、これらのcmdletsを使用して試してみました。

+0

iSCSIターゲットに複数の論理ユニットが存在することがあります.1つ以上のドライブが存在する可能性があります。別の方法を取るこの他の質問をチェックしてください:iSCSIセッションを始める前と後の両方のドライブの一覧を見てください:http://stackoverflow.com/questions/36286366/get-iscsi-mapped-drive-letter-from -iscsi-initiator-name –

+0

@gubblebozerあなたが私に与えたリンクは、別の質問ではありません。 – Richard

+0

Ugh ...カットアンドペーストが失敗します。これは私が意図した質問です:http://stackoverflow.com/questions/30957901/find-the-new-drives-connected-through-iscsi –

答えて

0

ISCSIターゲットごとに1つのアクティブなパーティション(予約済みではない)がある場合は、以下を使用して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; 
    } 
} 

これは、それが顧客のPowerShellオブジェクトにすべての情報を入れて、それを返し、接続されたすべてのiSCSIディスクをチェックし、それに対応するドライブ文字を取得します。

関連する問題