2013-01-25 11 views
6

Devo raccogliere i tipi di archiviazione allegati di ciascun server nel nostro ambiente: diverse centinaia di server W2K3/W2K8.Come determinare il tipo di archiviazione (SAN/NAS/disco locale) in remoto, usando PowerShell?

Uno script sarebbe molto utile per determinare se la memoria collegata è SAN/SAN mirrored/NAS/local o una combinazione di questi. Il problema è che non ho trovato alcuna soluzione valida.

Stavo pensando a uno script, e il meglio che potevo capire avrebbe fatto qualcosa di simile al seguente:

  • Se il server utilizza SAN, Veritas Storage Foundation è sempre installato, quindi vorrei cercarlo con gwmi win32_product. Questo è molto lento e questo non fornisce le informazioni se lo spazio di archiviazione è SAN o SAN.
  • Se la memoria collegata è NAS, ci deve essere un IP di destinazione ISCSI, e in qualche modo lo cercherò.

Realmente non penso che questi metodi siano accettabili comunque. Potresti per favore aiutarmi a trovare un modo migliore per determinare in qualche modo i tipi di archiviazione allegati?

La ringrazio molto

+0

Avete PS2.0 sui server W2k3? –

+0

usa diskpart? ex diskpart, seleziona disco 1, disco di dettaglio: il tipo sarà iSCSI per disco SAN –

+0

Hai capito come farlo * localmente *? (Vale a dire una domanda remota o una domanda di informazioni sul sistema?) – Richard

risposta

0

Si potrebbe probabilmente trovare informazioni in una delle seguenti classi WMI:

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

Allora ... fare qualcosa di simile:

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

ho trovato un articolo su come accedere al servizio VDS in PowerShell. Getting More Information About You Cluster LUN’s

Massaggiato il codice un po 'per ottenere il tipo. Funziona anche sul 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))" 
     } 

    } 
} 
Problemi correlati