SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PowerShell 2.0の新機能

PowerShell 2.0の新機能(3)
――バックグラウンドジョブ編

PowerShell 2.0のバックグラウンドジョブ

  • X ポスト
  • このエントリーをはてなブックマークに追加

親ジョブと子ジョブ

 PowerShellで実行されるジョブには親子関係があります。例えばInvoke-Commandコマンドレットを使用してlocalhostとHIRO-WIN7というリモートコンピュータにGet-Serviceコマンドレットを実行してみます(リスト10)。

リスト10
$sess = Invoke-Command -ComputerName localhost, HIRO-WIN7 -Command {Get-Service} -AsJob

 リスト10では2台のコンピューターに対してコマンドを実行していますが、Get-Jobコマンドレットを使用して、ジョブ情報を取得すると図6のように1件の情報しか返されないことが分かります。

図6 Get-Jobコマンドレットによるジョブの確認
図6 Get-Jobコマンドレットによるジョブの確認

 実は、これは「親ジョブ」というもので、実際には1つ1つの子供のジョブ(以降、子ジョブ)に分かれています。

 子ジョブを取得するには、Get-JobとFormat-Listコマンドレットを組み合わせてリスト11のように入力します(この確認方法はヘルプに載っています)。

リスト11
Get-Job | Format-List -Property Name, ChildJobs

 すると図7のようにNameに親ジョブのIDが、ChildNodesに子ジョブのIDが表示されます。

図7 親ジョブと子ジョブの確認
図7 親ジョブと子ジョブの確認

 以上で、親ジョブのIDも子ジョブのIDも取得できますので、後は本記事で紹介したコマンドレットを使用して、ジョブ結果を取得することが可能です。

まとめ

 今回紹介したバックグラウンドジョブは、専用のコマンドレットが準備されており、使用方法も難しいものではないことがお分かりいただけたかと思います。

 このようにPowerShell 2.0では強力なコマンドレットが多く搭載されていますので、今後もこの連載を通じて紹介していきたいと思います。どうぞお楽しみに。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
PowerShell 2.0の新機能連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4763 2010/01/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング