2017-05-26 24 views
1

私は、複数の顧客がホストするESX環境のVM、データストア、およびネットワークを編成するためのスクリプトを作成しています。私がする必要があることの1つは、異なるオブジェクトの現在の位置を取得して移動する必要があるかどうかを確認することです。データストアのESXi仮想ポートグループの親フォルダを取得

、私は次の操作を実行できます。ネットワークで

$currentFolder = (Get-Datastore $datastore).ParentFolder.Name

、それは同じように動作しません:

$currentFolder = (Get-VirtualPortGroup -VMHost $esxhost -Name $network).ParentFolder.Name

これは結果を返しません。 VirtualPortGroupオブジェクトには「ParentFolder」プロパティはありません。

私の質問はです:VirtualPortGroupの親フォルダ名を取得する別の方法はありますか?

ANSWER:次のコードは、ワンライナーとして働いていました:

Get-Folder -Id (Get-View -ViewType Network -Filter @{'Name' = $network}).Parent

ネットワークはまた、同様のvDSに住んでいるので、私は、複数のネットワーク名をフィルタする基準を作成する必要がありました。私は、するには、Get-Viewコマンドをパイプすることでこれをやった:

Where {$_.Name -like "*$criteria*"}

私はまた、彼らが一致した場合、私は彼らが行きたい場所を確認するために、フォルダ名を比較するために必要なので、私は括弧内の行をラップ()そして、はこのように、最後に ".nameの" を追加しました:

(Get-Folder -Id (Get-View -ViewType Network -Filter @{'Name' = $network} | Where {$_.Name -like "*$criteria*"}).Parent).Name

答えて

1

何について...

$NetworkView = Get-View -ViewType Network -Filter @{'Name' = 'TestVLAN' } 
$PortGroupFolder = Get-Folder -Id $NetworkView.Parent 

VirtualPortGroupに関連していると思われます。各ESXiホスト/各VirtualSwitchで1回ですが、「ネットワーク」はvCenter上に1回しか表示されず、それがフォルダに格納されます。分散型スイッチを使用している場合は、これは異なる場合があります。

+0

私はLucDの関数に基づいてこれを試しました。結果には名前は含まれず、タイプと値のみが含まれます。 – McKenning

+0

どのくらい "これが好き?"これは私がそれを実行するときにフォルダ名を返すので... – TessellatingHeckler

+0

私はあなたのコマンドを正確に試して、それは型と値を与えるだけです。これは、Get-ViewがVirtualPortGroupオブジェクトを返す方法と関係します。直接取得する方法とは異なります。 – McKenning

関連する問題