立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

关于 Windows Workflow Foundation 对 PowerShell 3 支持的更多细节介绍

  • 2012-07-01
  • 本文字数:1019 字

    阅读完需:约 3 分钟

前不久,微软发布了关于 Windows PowerShell 工作流更多的一些细节。Windows PowerShell 工作流,也称作 PSWF,它是 PowerShell 3 中的特性,PSWF 可以让管理员“跨越多态机器、设备或 IT 过程可靠地执行长时间运行的任务”。由于我们谈及的是 Windows 工作流,因此这里的“长时间运行”可理解为数小时甚至数天。

虽然针对 PSWF 的工作流可以使用 Windows Workflow Foundation 中相同的 XAML 标记编写,但是大部分 PowerShell 用户可能更倾向于选择新的基于脚本的工作流语法。新语法是 PowerShell 的一个扩展,它增添了如下概念:

  • workflow:用于定义工作流。注意:工作流可以借助它嵌套在其他工作流中。
  • inlinescript:一般情况下,工作流中的每行操作都会分离执行。inlinescript 可以将一组行进行聚合,从而让它们可以共享本地变量。内联脚本块还能够让你使用一些工作流内部不让使用的 PowerShell 语法。
  • foreach –parallel: 并行执行构造体中的每一个条目。
  • parallel:并行执行构造体中的每一项任务,不过不会保证执行顺序。
  • sequence:按顺序执行构造体中的每一项任务。这通常用于并行块内部以构造一组顺序语句。

有一点很重要的是,PowerShell 工作流在许多方面都是完整 PowerShell 语法的子集。与一般的 PowerShell 脚本不同,PowerShell 工作流是静态编译的。这阻止了大量的动态特性,如定位参数与动态参数。另外,工作流需要在任意时刻进行持久化的需求也阻止了点语法调用方法。“这意味着你获得了一个可工作的活动对象,但如果工作流在生成对象调用与使用其方法调用间进行持久化,那么该对象无法工作。”

还有一些 cmdlets 不能作为工作流活动。如前面所述,工作流中的每一行会在自己的独立 PowerShell 会话中执行;因此所有改变 PowerShell 会话状态的 cmdlets 都没有意义。类似的,支持事务的 cmdlets 也在支持范畴之外。

PSWF 的设计以扩展性为主。具体来说,它设计用于向外扩展。一个工作流可以跨越“上千个托管结点“进行分布,这使得管理大型服务器群几乎同管理单台机器一样简单。例如,在若干机器上启动工作流,你只需要使用 PSComputerName 参数及机器名列表即可调用工作流。这些特性替换了普通的 PowerShell 远程处理特性。

长时间运行的工作流在后台运行可能更好一些。为了帮助实现这点,PSWF 集成了 PowerShell 任务基础架构。通过简单地借助 AsJob 参数调用工作流便可以使用常规的任务 cmdlets 了。

查看英文原文: More on Windows Workflow Foundation Support for PowerShell 3

2012-07-01 22:501297
用户头像

发布了 125 篇内容, 共 37.2 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

6小时搞定云原生:从基础概念到上手实践

京东科技开发者

云原生

分布式文件存储数据库 MongoDB

哈喽沃德先生

数据库 nosql mongodb mongo 非关系型数据库

架构作业:一致性hash

Nick~毓

week04总结

xxx

Linux内核系统结构

Linux 操作系统 内核 系统调用 操作系统结构

Docker架构

混沌畅想

Docker 容器 Docker架构

在线EXCEL编辑器-Luckysheet

奇异石榴果

Java 开源 Excel bigtable js

项目吐槽之需求分析一

Geek_XOXO

项目管理 pmp

week04 作业

xxx

编码之路,与君共勉

yes

程序人生

java安全编码指南之:线程安全规则

程序那些事

java安全编码 java安全 java安全编码指南 java代码规范 java代码安全

一文带你读懂 Swift 社区最新开源的算法库

镜画者

ios swift 算法 apple

1024!奈学教育致敬程序员3+2战略发布会重磅来袭

奈学教育

1024 奈学教育

一文读懂线程池的工作原理(故事白话文)

捡田螺的小男孩

Java 面试 线程池 线程池工作原理

甲方日常 36

句子

工作 随笔杂谈 日常

分布式缓存架构,消息队列,负载均衡

garlic

极客大学架构师训练营

spring-boot-route(二十三)开发微信公众号

Java旅途

Java Spring Boot

一份超级完整实用的PyCharm图解教程,8K字赶紧收藏起来

计算机与AI

Python IDLE 开发环境

【得物技术】谈谈缓存的一二三四五

得物技术

缓存 架构 技术 缓存穿透 缓存击穿

c++bind函数使用

良知犹存

c++

Scikit-Learn中的特征排名与递归特征消除

计算机与AI

学习 数据科学 特征选择 降维 scikit-learn

iOS性能优化 — 二、卡顿监控及处理

iOSer

性能优化 编程语言 监控 ios开发 卡顿

勾魂!在Github白嫖左程云1470页数据结构与算法+视频

996小迁

Java 架构 面试

C/C++最佳实践

jiangling500

c c++ 最佳实践

服了,这款开源类库可以帮你简化每一行代码

沉默王二

Java GitHub 后端 hutool

架构师训练营第2期 第1周 作业一:食堂就餐卡系统设计

老腊肉

发布3个月获得5K Star的Luckysheet - 基于MIT协议的开源电子表格

奇异石榴果

Java 开源 大前端 Excel html/css

Java中的5大队列,你知道几个?

王磊

Java

一文搞懂ReactNative生命周期的进化

凌宇之蓝

react.js 面试 大前端 React Native

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

小黄鱼

极客大学架构师训练营

架构师训练营第2期 第1周 作业二:学习总结.md

老腊肉

关于Windows Workflow Foundation对PowerShell 3支持的更多细节介绍_DevOps & 平台工程_Jonathan Allen_InfoQ精选文章