【3分で流し読み】PowerShell Workflowってなんだっけ?

こんばんは。前の記事でAzure Automationを触っていて気になったことがあったので、自分の備忘メモも兼ねた流し読み記事にまとめておこうと思います。

今回のテーマはPowerShell Workflowです。Azure Automationでは、開発にPowerShellコアだけでなくPowerShell Workflowも利用できるようになっていて、なんだこれ、と思ったのがきっかけです。

それではまいります。

PowerShell Workflowとは

  • Windows Powershellバージョン3.0(2012年9月リリース)で導入された機能
  • 実行時間の長い、並列化されたタスクの実行を可能にするWindows Workflow Foundation (WF)の上に構築されている
  • この機能を使うことで、長時間実行、反復実行、並列実行、中断、停止、再起動等が可能となる
  • が、2018年にリリースされたPowerShell Coreシリーズには搭載されていない
  • 理由はPowerShell Coreのベースとなっている.NET CoreでWindows Workflow Foundationがサポートされていないため
  • が、必要とされていない機能というわけではなく、今後はPowerShellのネイティブな機能で並列・コンカレンシー処理をできるようにしていく、という方向性らしい

公式ドキュメントにもちらほらと説明が見つかった。

ワークフローとは、時間のかかるタスクを実行する手順や、複数のデバイスや管理対象ノード間で複数の手順の調整を必要とする手順をプログラミングで連結した手順のシーケンスです。Windows PowerShell ワークフローを使用することで、IT 担当者や開発者は、マルチデバイス管理アクティビティのシーケンス (ワークフロー内の 1 つのタスク) を、ワークフローとして作成できます。 仕様により、ワークフローは、長時間実行したり、反復実行したり、並列実行したり、中断したり、停止したり、再起動することができます。 中断後に再開することもできますし、ネットワークの停止やコンピューターの再起動など、予期しない中断の後に実行を継続することもできます。

https://docs.microsoft.com/ja-jp/previous-versions/windows/server/jj134242(v=ws.11)?redirectedfrom=MSDN

ワークフローが通常のスクリプトよりも優れている点としては、同時に複数のデバイスに対して操作を実行できることや、障害から自動的に復元できることなどがあります。 Windows PowerShell ワークフローは、Windows Workflow Foundation を活用した Windows PowerShell スクリプトです。 ワークフローは Windows PowerShell の構文で記述され、Windows PowerShell によって起動されますが、Windows Workflow Foundation によって処理されます。

https://docs.microsoft.com/ja-jp/system-center/sma/overview-powershell-workflows?view=sc-sma-2022#windows-powershell-workflows

Azure Automationの公式ドキュメントにも説明あった。

PowerShell ワークフローのコードは PowerShell スクリプト コードとほぼ同じですが、いくつかの重要な変更点があります。

https://docs.microsoft.com/ja-jp/azure/automation/automation-powershell-workflow#learn-differences-between-powershell-workflow-code-and-powershell-script-code

参考文献:

https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.2#powershell-workflow

(寄り道)Windows Workflow Foundationとは?

なんかまた知らない技術が出てきました。Windows Workflow Foundation・・・・?詳しく調べる元気が残っていなかったので、リンクで勘弁してください・・笑

  • ワークフローを定義・実行・管理する技術
  • .NET Framework3.0の一部
  • ワークフローは”アクティビティ”の集合として定義される

https://ja.wikipedia.org/wiki/Windows_Workflow_Foundation

https://docs.microsoft.com/ja-jp/dotnet/framework/windows-workflow-foundation/overview

はやってるの?

流行ってなさそう。笑

Google Trendでみると、世界のインタレストはPowerShell Coreに移行した頃から下降トレンドの模様。かつアメリカとインドとイギリスだけ、という面白い状況。

また、日本に絞ってみるとまったくインタレストがなかった・・・使ってる人はほぼいないのかな・・?

まとめ

というわけで、PowerShell Coreではそもそも使うこともできない機能(かつ、今後ネイティブの機能で並列・コンカレンシー実行をできるようにしていく模様)なので気にしなくてよさそうですが、Azure AutomationなどPower Shell Workflowがサポートされている環境では、PowerShellワークフローがウリにしている並列・コンカレンシー実行が必要な場合には選択肢になりえそうです。

とはいえ、Azure AutomationもいつまでWindows PowerShellをサポートするのかは謎なので、特段不自由がなければPowerShell Coreを利用しておくとよさそうだなと個人的には思いました。

以上、PowerShell Workflowの概要流し読みでした。少しでも参考になりましたら幸いです。

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。