私は、複数の顧客がホストする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
私はLucDの関数に基づいてこれを試しました。結果には名前は含まれず、タイプと値のみが含まれます。 – McKenning
どのくらい "これが好き?"これは私がそれを実行するときにフォルダ名を返すので... – TessellatingHeckler
私はあなたのコマンドを正確に試して、それは型と値を与えるだけです。これは、Get-ViewがVirtualPortGroupオブジェクトを返す方法と関係します。直接取得する方法とは異なります。 – McKenning