2013-07-30 37 views
1

假设我有一些集群磁盘,我可以从cmdlet get-clusterresource中取出它们。如何从PowerShell get-clusterresource cmdlet获取诸如“c:”,“d:”等驱动器号?

PS N:\> get-clusterresource | ?{$_.resourcetype.name -eq "Physical Disk"} 

Name    State  Group    ResourceType 
----    -----  -----    ------------ 
Cluster Disk 1 Online  Cluster Group  Physical Disk 
Cluster Disk 2 Online  SQLServer   Physical Disk 
Cluster Disk 3 Online  SQLServer   Physical Disk 
Cluster Disk 4 Online  SQLServer   Physical Disk 
Cluster Disk 5 Online  SQLServer   Physical Disk 
Cluster Disk 6 Online  WINCLUSTER  Physical Disk 
Cluster Disk 7 Online  SQLServer   Physical Disk 
Cluster Disk 8 Online  SQLServer   Physical Disk 
Cluster Disk 9 Online  SQLServer   Physical Disk 

如何获得相应的驱动器号?这些磁盘可能不在同一个节点上。

我试过使用get-clusterparameter cmdlet,但它不包含此信息。

谢谢。

+0

驱动器盘符是指一个逻辑磁盘。 ..不是物理磁盘。不确定要理解你的问题。 – JPBlanc

回答

2

一些快速google搜索止跌回升this article可能这样被采用:

Get-ClusterResource | ? { $_.ResourceType.Name -eq "Physical Disk" } | % { 
    $resourceName = $_.Name 

    $resource = gwmi MSCluster_Resource -Namespace root/mscluster | 
       ? { $_.Name -eq $resourceName } 
    $disk  = gwmi -Namespace root/mscluster -Query ` 
       "ASSOCIATORS OF {$resource} WHERE ResultClass=MSCluster_Disk" 
    $partition = gwmi -Namespace root/mscluster -Query ` 
       "ASSOCIATORS OF {$disk} WHERE ResultClass=MSCluster_DiskPartition" 

    $partition | select Path 
} 

或者你也可以做到这一点在这样的管道:

$diskqry = 'ASSOCIATORS OF {{{0}}} WHERE ResultClass=MSCluster_Disk' 
$partqry = 'ASSOCIATORS OF {{{0}}} WHERE ResultClass=MSCluster_DiskPartition' 

Get-ClusterResource | ? { $_.ResourceType.Name -eq 'Physical Disk' } ` 
    | % { gwmi MSCluster_Resource -Namespace root/mscluster -Filter "Name='$_'" } ` 
    | % { gwmi -Namespace root/mscluster -Query ($diskqry -f $_) } ` 
    | % { gwmi -Namespace root/mscluster -Query ($partqry -f $_) } ` 
    | select Path 
相关问题