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

Posted 万寿山真人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
百度一下,你就知道

 




以上是关于PowerShell工作流学习-2-工作流运行Powershell命令的主要内容,如果未能解决你的问题,请参考以下文章

Powershell - 在应用程序配置文件中找不到程序集绑定重定向

powershell 运行工作流程

Active Directory 命令在 PowerShell 下工作,但不适用于命令提示符

Powershell 3.0:保存工作脚本后,如果我关闭然后重新打开脚本,当我尝试运行它时会收到一条错误消息

Powershell“启动服务”cmdlet 不工作。也不向主机写入任何内容

PowerShell DSC学习资料