2016-09-28 15 views
0

私はクラスタで利用可能なデータストアのリストを取得する方法を見つけようとしています。 これまでのところ、私はこれまでのところ得た:clastersおよびデータストアが、名前の一覧が表示されます PowerCLI - カスターで利用可能なデータストアを見つける

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

がvCenterサーバのものと一致していません。 これを実行しているとき、私は名前が、カスター情報なしの両方を見ることができます:

Get-Datastore | select id,name 

私はCLUSTERNAME(名前 - 最初のコマンドから)持っているので、私は一緒にそれらの情報を入手するにはどうすればよい - 秒から、DatastoreName(名前をコマンド)。

答えて

0

右それは私にしばらく時間がかかったが、私はここから参加-オブジェクトのfuctionの使用でそれを行う方法が見つかりました: 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

これは名前の代わりにID

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

NOPを、それはそれではない - それは、と私は同じ出力を提供します私が最初に投稿した2行は、 – Paul

+0

がidの代わりに名前を取得する編集を追加しました...それよりもはるかにクリーンな方法はありませんでした。うまくいけば、pscustomobject –

0
$datastore = Get-Datastore 
$datastore.extensionData 

を取得するためにそれを

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

編集を行うようだ。これは、あなたの店のよりdetaileのリストが表示されます。これは難しいです。私はAPIを通してそれをやらなければならないかもしれないと思う。

+0

nopを使用するために、PowerShell 3.0以降で動作していることを期待しています。それは私の最初の2行の出力と同じです – Paul

関連する問題