2013-01-25 25 views
6

Tôi phải thu thập các loại lưu trữ đính kèm của mỗi máy chủ trong môi trường của chúng tôi: Hàng trăm máy chủ W2K3/W2K8.Làm thế nào để xác định loại lưu trữ (SAN/NAS/đĩa cục bộ) từ xa, sử dụng PowerShell?

Một tập lệnh sẽ rất hữu ích để xác định xem bộ nhớ được đính kèm là SAN/SAN mirrored/NAS/local hoặc kết hợp các tập lệnh này hay không. Vấn đề là tôi đã không thực sự tìm thấy bất kỳ giải pháp tốt.

Tôi đã suy nghĩ về một kịch bản, và tốt nhất mà tôi có thể hình dung ra sẽ làm một cái gì đó như sau:

  • Nếu máy chủ sử dụng SAN, Veritas lưu trữ Foundation luôn cài đặt, vì vậy tôi sẽ tìm kiếm nó với gwmi win32_product. Điều này thực sự chậm và điều này không cung cấp thông tin nếu lưu trữ là SAN hoặc SAN được nhân đôi.
  • Nếu bộ nhớ được đính kèm là NAS, phải có ip mục tiêu ISCSI và tôi sẽ tìm kiếm bằng cách nào đó.

Tôi thực sự không nghĩ rằng các phương pháp này là chấp nhận được. Bạn có thể vui lòng giúp tôi tìm cách tốt hơn để xác định loại lưu trữ đính kèm không?

Thank you very much

+0

Bạn có PS2.0 trên máy chủ W2k3 không? –

+0

sử dụng diskpart? ex diskpart, chọn đĩa 1, đĩa chi tiết: loại sẽ là iSCSI cho SAN đĩa –

+0

Bạn đã làm việc ra làm thế nào để làm điều này * cục bộ *? (Ie. Đây có phải là câu hỏi từ xa hay câu hỏi thông tin hệ thống?) – Richard

Trả lời

0

Bạn có thể tìm thấy các thông tin trong một trong các lớp WMI sau:

Win32_LogicalDisk http://msdn.microsoft.com/en-us/library/windows/desktop/aa394173(v=vs.85).aspx

Win32_Volume http://msdn.microsoft.com/en-us/library/windows/desktop/aa394515(v=vs.85).aspx

Win32_DiskDrive http://msdn.microsoft.com/en-us/library/windows/desktop/aa394132(v=vs.85).aspx

Sau đó ... làm điều gì đó như:

Get-AdComputer Server* | Foreach-Object { Get-WmiObject -Class Win32_DiskDrive -ComputerName $_.Name } 
1

Tôi đã tìm thấy một bài viết về cách truy cập dịch vụ VDS trong PowerShell. Getting More Information About You Cluster LUN’s

Xoa bóp mã một chút để lấy loại. Hoạt động ngay cả vào năm 2003.

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Storage.Vds") | Out-Null 
$oVdsServiceLoader = New-Object Microsoft.Storage.Vds.ServiceLoader 
$oVdsService = $oVdsServiceLoader.LoadService($null) 
$oVdsService.WaitForServiceReady() 
$oVdsService.Reenumerate() 
$cDisks = ($oVdsService.Providers |% {$_.Packs}) |% {$_.Disks} 
$cPacks = $oVdsService.Providers |% {$_.Packs} 

foreach($oPack in $cPacks) 
{ 
    If($oPack.Status -eq "Online") 
    { 
     foreach($oDisk in $oPack.Disks) 
     { 
      Write-Host "$($oDisk.FriendlyName) ($($oDisk.BusType))" 
     } 


     foreach($oVolume in $oPack.Volumes) 
     { 
      Write-Host "`t$($oVolume.AccessPaths) ($($oVolume.Label))" 
     } 

    } 
} 
Các vấn đề liên quan