PowerShell workflow是基于windows wolkflow fundation的 用于分布式运行多个任务的自动化管理工具。和PowerShell脚本有较大差别,例如:
1. 由workflow引擎执行
2. 日志和重试都是workflow引擎负责
3. 支持并行,顺序等执行方式
4. 可以运行,暂停,重启。支持检查点功能
5. 网络问题期间,数据可以保留
6. 等等
PS workflow中的每个PS命令都是一个独立的activity,每个activity运行在各自独立的环境,变量需要特殊凡是才能跨activity生效。可以用 InlineScript 的方式在activity中调用PS脚本
activity 加上 -PSPersist, 或者使用 checkpoint-worklflow命令设置检查点。检查点会保留当前状态,所以重新运行worklflow不会再重复运行checkpoint之前的部分。使用parallel,sequence 保留字来指定activities之间的执行属性,并发操作模式
workflow执行过程中可以重启电脑,使用 restart-computer -wait 参数即可。 -wait 参数会等待计算机重启后继续执行,如果目标机器是远程机器,不需要重新建立PS session
workflow可以直接用PS 编辑器设计,也可以用Visual Studio 中的workflow designer 基于GUI方式设计。值得注意的是,两种方式的结果并不兼容
所以workflow很适合争对多台计算机的,需要多个步骤,连续长时