none
Get-VM | where {$_.State -eq 'Running'}  を使ってマシン名だけ抜き出したい

    質問

  • はじめまして。

    停電などでホストOSを停止する前にRinning状態の仮想OSマシンだけをテキストファイルに落とし、

    復電後に、そのテキストファイルを読み込み、Rinningだった仮想OSマシンだけ起動させようと考えています。

    そこで

    Get-VM | where {$_.State -eq 'Running'} 

    を使って、結果をテキストファイルを落とすと、

    ・ヘッダー(1行目)

    ・マシンの状態(2行目以降の マシン名の隣)

    が出力されてしまい、これらが不要です。

    ファイル操作でこれらの不要文字を削除するプログラムを書けばよいと思いますが、

    PowerShellの機能で簡単に処理する方法があれば教えて頂けると助かります。

    例えばヘッダー部はあとで削除するのは仕方ないとして、 | で状態は抜き出さない

    ようにするなどしてなどでも構いません。

    よろしくお願いします。

    2017年9月7日 14:00

回答

すべての返信

  • Select-Objectの-ExpandPropertyを使います。

    Get-VM | where {$_.State -eq 'Running'} | Select-Object -ExpandProperty Name

    2017年9月7日 14:08
  • 佐祐理様

    早急な回答を頂き、誠にありがとうございました。

    Select-obeject のプロパティはいろいろあって役に立ちそうですね。

    明日試してみます。

    今後ともよろしくお願いします。

    2017年9月7日 15:30
  • 本日管理しているサーバーで実行してみました。

    その結果、希望通りのデータを抜き出すことができました。

    最近Power Shellの勉強を始めたばかりですが、デバッグもできるし、

    いろいろなことができるんですね。

    また分からないことがでてきましたら質問させて頂きます。

    ありがとうございました。

    2017年9月8日 13:56