2016-09-28 116 views
0

我试图找到一种方法来获取数据存储在集群中可用的列表。 到目前为止,我能走到今天:PowerCLI - 在数据存储中查找数据存储

$1 = get-view -viewtype ClusterComputeResource 
$1 | select name,datastore 

,将列出clasters和数据存储,但名称不匹配那些在vCenter Server中。 我可以看到这两个名字,但没有卡斯特信息运行这个时:

Get-Datastore | select id,name 

我如何获得这些信息一起,所以我有集群名称(名称 - 从第一个命令),数据存储名称(姓名 - 从第二命令)。

回答

0

右键我花了一段时间,但我发现,与使用加入-对象机能的研究从这里做这件事的方式: https://blogs.msdn.microsoft.com/powershell/2012/07/13/join-object/

$cluster = get-cluster | select name | % {$counter = -1} {$counter++; $_ | Add-Member -Name Cluster_ID -Value $counter -MemberType NoteProperty -PassThru} 
$cluster | ft -auto 
$clusterid = read-host "select cluster" 
$VMCLUSTER = $cluster[$clusterid] 

# Select Datastore 
$1 = get-view -viewtype ClusterComputeResource | where name -like $vmcluster.name | select name,datastore 
$table1 = @() 
foreach ($datastore in $1.Datastore) { 
$table = " " | select datastore_ID,Cluster_Name 
$table.datastore_ID = $datastore 
$table.Cluster_name = $1.Name 
$table1 += $table 
} 

$datastores = Join-Object -Left $table1 -Right (Get-datastore | select id,name,FreeSpaceGB,CapacityGB) -Where { $args[0].datastore_ID -eq $args[1].id} -LeftProperties 'Cluster_Name' -RightProperties * -Type AllInLeft 
$datastores | % {$counter = -1} {$counter++; $_ | Add-Member -Name Datastore_ID -Value $counter -MemberType NoteProperty -PassThru} | select Datastore_ID,Cluster_Name,Name,FreeSpaceGB,CapacityGB | Sort-Object FreeSpaceGB -Descending | ft -AutoSize 
$datastoreid = read-host "Select Datastore (enter Datastore_ID)" 
$selected_datastore = $datastores[$datastoreid] 
0

这似乎做

(get-cluster).extensiondata | fl name,datastore 

编辑得到名称,而不是ID

$clusters = get-cluster 
Foreach ($cluster in $clusters) 
{ 
    $cluster | get-datastore | % { 
    [pscustomobject] @{ 
    'cluster' = $cluster.name 
    'datastore' = $_.name 
    } 
    } 
} 
+0

NOP,这不是它 - 它给我的输出相同我发布的前两行 – Paul

+0

添加了一个名称而不是id的编辑...没有看到任何更清晰的方式来做到这一点。希望你在PowerShell 3.0或更新版本中使用pscustomobject –

0
$datastore = Get-Datastore 
$datastore.extensionData 

这会给你的店铺更detaile列表。这个很难。我想我可能需要通过API来完成。

+0

nop,那不是它 - 它给了我与我发布的前两行相同的输出 – Paul