2015-06-20 3 views
0

Я пишу сценарий, который соединяется с целью через ISCSi. Мне нужно найти новые буквы дисков (F:, G:, & hellip;), которые создаются после подключения. Есть ли прямой способ найти это? Мой сценарий будетНайти новые диски, подключенные через iSCSI

New-IscsiTargetPortal -TargetPortalAddress $VirtualDeviceIp 
Connect-IscsiTarget -NodeAddress $VirtualDeviceIQN 
#Get the drives newly attached 

Хотя не сразу я попробовал другой способ сделать это.

$initial=Get-Volume 
New-IscsiTargetPortal -TargetPortalAddress $VirtualDeviceIp 
Connect-IscsiTarget -NodeAddress $VirtualDeviceIQN 
$final=Get-Volume 
#Now compare $initial and $final to find the newly attached disks 

Но я не знаю, реализовать вторую идею тоже :(

ответ

2

CompareDriveLetter свойство двух множеств:

Compare-Object $initial $final -Property 'DriveLetter' 

Расширение собственности даст вам только букву диска :

$driveLetter = Compare-Object $initial $final -Property 'DriveLetter' | 
       select -Expand 'DriveLetter' 

Чтобы быть в безопасности, вы можете добавить фильтр, который ограничивает результаты «правыми» элементами (т. вновь добавленные диски), исключая, таким образом, элементы «левой стороны» (то есть удаленные приводы):

$driveLetter = Compare-Object $initial $final -Property 'DriveLetter' | 
       ? { $_.SideIndicator -eq '=>' } | 
       select -Expand 'DriveLetter'