PowerShell工作流学习-2-工作流运行Powershell命令

关键点:

a)inlineScript 活动具有活动通用参数,但不具有PowerShell 通用参数,且inlineScript 脚本块中的命令和表达式不具有工作流的功能
b)默认inlineScript 活动在单独的进程中执行而不是和工作流同一进程中执行,但是可使用参数OutOfProcessActivity进行控制,如果需要删除或者还原相关配置使inlineScript 活动在工作流进程内或者进程外运行,请参考例b
c)工作流中定义的变量对 InlineScript 脚本块中的命令不可见,除非使用$Using修饰符
d)InlineScript 命令可以更改从工作流作用域导入的变量的值,但所做的更改在工作流作用域中不可见。 若要使其可见,则将更改的值返回到工作流作用域,请使用例d

e)PowerShell脚本(.ps1)需要在InlineScript 活动中运行

例b:

#工作流进程内运行

PS C:\Windows\system32> (Get-PSSessionConfiguration Microsoft.PowerShell.Workflow).OutOfProcessActivity
InlineScript

PS C:\Windows\system32>$o = New-PSWorkflowExecutionOption -OutOfProcessActivity ""

PS C:\Windows\system32>Set-PSSessionConfiguration Microsoft.PowerShell.Workflow -SessionTypeOption $o -Force

PS C:\Windows\system32> (Get-PSSessionConfiguration Microsoft.PowerShell.Workflow).OutOfProcessActivity

#还原配置,在工作流进程外运行

PS C:\Windows\system32> (Get-PSSessionConfiguration Microsoft.PowerShell.Workflow) | Unregister-PSSessionConfiguration 

PS C:\Windows\system32> Enable-PSRemoting -Force

PS C:\Windows\system32> (Get-PSSessionConfiguration Microsoft.PowerShell.Workflow).OutOfProcessActivity

InlineScript

例c:

workflow test-wf4
{
    $a = 3
    InlineScript {"Inline A0 = $a"}
    InlineScript {"Inline A1 = $Using:a"}
}

PS C:\Windows\system32> test-wf4
Inline A0 =
Inline A1 = 3

例d:

workflow test-wf5
{
    $a = 3

    InlineScript {$a = $using:a+1; "Inline A = $a"}
    "Workflow A = $a"

     $a = InlineScript {$a = $Using:a+1; $a}
     "Workflow New A = $a"
}   

PS C:\Windows\system32> test-wf5
Inline A = 4
Workflow A = 3
Workflow New A = 4

例e:

workflow test-wf6
{
    $ie = InlineScript
    {
        New-Object -ComObject InternetExplorer.Application -property @{navigate2="www.baidu.com"}
    }
    $ie.LocationName
} 

test-wf6

PS C:\Windows\system32> D:\无标题2.ps1
百度一下,你就知道
时间: 2024-08-29 08:40:30

PowerShell工作流学习-2-工作流运行Powershell命令的相关文章

在远程计算机运行PowerShell命令

在远程计算机运行PowerShell命令 检查PowerShell Remoting是否启用 在Windows Server 2008 R2上以管理员身份运行PowerShell,然后输入 Enter-PSSession -ComputerName localhost 返回如下截图: 说明该版本默认是没有启用PowerShell Remoting功能. 在Windows Server 2012 R2上,返回如下截图: 在Windows Server 2016上,返回如下截图: 说明在2012和2

PowerShell中运行Bcdedit命令出错

见下图,当我尝试在PowerShell执行bcdedit删除其中一个启动项时,出现错误:而在CMD中运行时则正常. 执行的命令是: bcdedit /delete {f33a2785-b94a-11e3-a6eb-00e0661386c5} /cleanup 出错的原因: (1)PowerShell中将{}中的内容当作计算式对待: (2)CMD中将{-}整体看作字符: 事实上{f33a2785-b94a-11e3-a6eb-00e0661386c5}就是字符: 由此衍生出: (1)PowerSh

PowerShell运行cmd命令

1.使用.exe扩展名 2.使用 cmd /c "" 3.在 PowerShell v3 中有另一种选择来解决这个问题,只需在命令行的任意位置添加 –% 序列(两个短划线和一个百分号)PowerShell 就不会再去解析剩下的部分 From:http://www.pstips.net/using-windows-powershell-to-run-old-command-line-tools-and-their-weirdest-parameters.html PowerShell运行

Powershell运行Invoke-Sqlcmd命令的先决条件

运行Invoke-Sqlcmd命令,使用这个命令需满足如下条件: 1.在运行服务器中安装SQL Server 2008 R2 Management ObjectsI 2.在运行命令 invoke-sqlcmd 前执行如下语句. 1 Add-PSSnapin SqlServerCmdletSnapin100 2 Add-PSSnapin SqlServerProviderSnapin100 参考原文内容: Since all of the steps I required weren't list

深入理解学习Git工作流

一.译序 工作流其实不是一个初级主题,背后的本质问题其实是有效的项目流程管理和高效的开发协同约定,不仅是Git或SVN等VCS或SCM工具的使用. 这篇指南以大家在SVN中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的Pull Request功能,体系地讲解了各种工作流的应用. 行文中实践原则和操作示例并重,对于Git的资深玩家可以梳理思考提升,而新接触的同学,也可以跟着step-by-step操作来操练学习并在实际工作中上手使用. 关

深入学习 Git 工作流

原文  https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解: 我们以使用SVN的工作流来使用git有什么不妥? git 方便的branch在哪里,团队多人如何协作?冲突了怎么办?如何进行发布控制? 经典的master-发布.develop-主开发.hotfix-不过修

[转]深入理解学习GIT工作流

深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎star查看最新更新内容, https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 我们以使用SVN的工作流来使用git有什么不妥? git 方便

深入理解学习Git工作流(转)

个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎star查看最新更新内容, https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 我们以使用SVN的工作流来使用git有什么不妥? git 方便的branch在哪里,团队多人如何协作?冲突了怎么办?如何进行发布控制?

PowerShell入门学习

一.概要 Powershell是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境. powershell需要.NET环境的支持,同时支持.NET对象.之所以将Powershell 定位为Power,是因为它完全支持对象,且其可读性,易用性,可以位居当前所有shell之首 powershell有四个版本,分别为1.0,2.0,3.0 ,4.0 在window7或者Windows Server 2008中,内置有PowerShell 2.0,可以升级为3.0,4.0. 在Win

Activiti工作流学习-----基于5.19.0版本(2)

二.activiti.cfg.xml的其他bean节点配置 2.1 新特性:Job Executor和Async Executor 从5.17.0版本的activiti开始提供作业执行者(Job Executor)和异步作业执行者(Async Executor),Async Executor执行表现更好,并且执行异步作业对数据库更加友善.activiti官方推荐使用Async Executor,并且一些老的Job Executor依旧有效.在Java EE 7运行环境中,JSR-236规范支持容