Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   [решено] Узнать UUID луна подключенного к серверу. (http://forum.oszone.net/showthread.php?t=314089)

dihlof0s 21-04-2016 08:56 2628222

Узнать UUID луна подключенного к серверу.
 
Добрый день.
По FC серверу отдано несколько лунов с СХД, я знаю UUID лунов(посмотрел на схд). Как можно узнать UUID диска в винде?
UUID вида 600000E00D100000001005FC00310000

AkP 21-04-2016 09:57 2628245

Это WWN, Его можно увидеть в HKLM\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target id 0\Logical Unit id 0
Нули - ваша цифра
параметр DeviceIdentifierPage, "визулально" 16 пар, начиная с 9-той пары "цифорок", в двоичном редакторе "визуально" 2-рой и 3-тий ряды

Но вообще-то, если вам нужно их как то идентифицировать в винде (зачем?), и размеры одинаковые, делайте Луны разного размера с шагом, в 10 МБ например.

dihlof0s 21-04-2016 11:19 2628279

Нашел на просторах интернета подходящий скрипт.
http://blog.tenera.no/?p=220

Код:

$strComputer = "."
 $colDiskDrives = get-wmiobject -query "Select * From Win32_DiskDrive" -computer $strComputer
 
 $allDrive = @()
 
 Foreach ($drive in $colDiskDrives)
      {
          $o_drive = New-Object PSObject
          $a = $drive.DeviceID.Replace("\", "\\")
 
          if($drive.serialnumber -ne $null)
              {
                  $o_drive | Add-Member -type NoteProperty -Name UUID -value $drive.SerialNumber
                  $colPartitions = get-wmiobject -query "Associators of {Win32_DiskDrive.DeviceID=""$a""} WHERE AssocClass = Win32_DiskDriveToDiskPartition" -computer $strComputer
                  Foreach ($Partition in $colPartitions)
                  {
                      $b = $Partition.DeviceID
                      $colLogicalDisk = get-wmiobject -query "Associators of {Win32_DiskPartition.DeviceID=""$b""} WHERE AssocClass = Win32_LogicalDiskToPartition" -computer $strComputer
 
                      If ($colLogicalDisk.Caption -ne $null)
                          {
                              $o_drive | Add-Member -type NoteProperty -Name DriveLetter -value $colLogicalDisk.Caption.ToString()
                          }
                      Else
                          {
                              #No letter assigned.
                          }
                  }
              }
          else
          {
              #No UUID found.
          }
 
      $allDrive += $o_drive
      }
 $allDrive


AkP 21-04-2016 11:58 2628291

Просто интересно стало, для чего может это понадобиться?
Предполагаю что презентованные луны одинакова размера, иначе они и так однозначно определяются. От СХД до конечной точки, физической или виртуальной, они хорошо видны по номеру LUN.
Внутри ОС они либо имеют разный размер, либо достаточно зайти внутрь чтобы сразу понять какой буквой диска он должен быть. Как то сильно сомнительно, что копировать UUID вставлять в скрипт, получать ответ и присваивать букву диска, быстрее чем просто присвоить любую конечную букву и определить по содержимому. Просто в голову не приходит, зачем еще это может понадобиться.


Время: 08:54.

Время: 08:54.
© OSzone.net 2001-