Share via


about_InlineScript

Kısa açıklama

Bir iş akışında InlineScript PowerShell komutlarını çalıştıran etkinliği açıklar.

Uzun açıklama

Etkinlik, InlineScript paylaşılan bir PowerShell oturumunun iş akışında komutları çalıştırır. InlineScript yalnızca iş akışlarında geçerlidir.

Sözdizimi

InlineScript {<script block>} <ActivityCommonParameters>

Ayrıntılı açıklama

Etkinlik, InlineScript paylaşılan bir PowerShell oturumunda komutları çalıştırır. Bir iş akışında başka türlü geçerli olmayan verileri ve komutları paylaşan komutları çalıştırmak için iş akışına ekleyebilirsiniz.

Betik InlineScript bloğu tüm geçerli PowerShell komutlarını ve ifadelerini içerebilir. Betik InlineScript bloğundaki komutlar ve ifadeler aynı oturumda çalıştırıldığından, içeri aktarılan modüller ve değişkenlerin değerleri de dahil olmak üzere tüm durumu ve verileri paylaşır.

Bir InlineScript döngü veya denetim deyimi ya da Paralel veya Sıralı betik bloğu dahil olmak üzere bir iş akışının veya iç içe geçmiş iş akışının herhangi bir yerine etkinlik yerleştirebilirsiniz.

EtkinlikInlineScript, PSPersist de dahil olmak üzere etkinlik ortak parametrelerine sahiptir. Ancak, bir InlineScript betik bloğundaki komutlar ve ifadeler denetim noktası oluşturma veya kalıcılık gibi iş akışı özelliklerine ve ortak iş akışı veya etkinlik parametrelerine sahip değildir. Daha fazla bilgi için bkz . about_ActivityCommonParameters.

InlineScript Değişkenleri

Varsayılan olarak, bir iş akışında tanımlanan değişkenler betik bloğundaki InlineScript komutlara görünmez. İş akışı değişkenlerini için görünür hale getirmek için InlineScriptkapsam değiştiricisini $Using kullanın. Kapsam $Using değiştirici, içindeki InlineScripther değişken için yalnızca bir kez gereklidir.

Kapsam değiştirici hakkında $Using daha fazla bilgi için bkz . about_Remote_Variables.

Aşağıdaki örnekte kapsam değiştiricinin $Using üst düzey iş akışı değişkeninin $a değerini betik bloğundaki InlineScript komutlar için kullanılabilir hale getirdiği gösterilmektedir.

workflow Test-Workflow {
  $a = 3

  ## Without $Using, the $a workflow variable isn't visible
  ## in inline script.
  InlineScript {"Inline A0 = $a"}

  ## $Using imports the variable and its current value.
  InlineScript {"Inline A1 = $Using:a"}
}

Test-Workflow
Inline A0 =
Inline A1 = 3

InlineScript'te değişkenleri döndürme

InlineScript komutları iş akışı kapsamından içeri aktarılan değişkenin değerini değiştirebilir, ancak değişiklikler iş akışı kapsamında görünmez. Bunları görünür hale getirmek için, aşağıdaki örnekte gösterildiği gibi değiştirilen değeri iş akışı kapsamına döndürebilirsiniz.

workflow Test-Workflow {
  $a = 3

  ##  Changes to the InlineScript variable value don't
  ##  change the workflow variable.
  InlineScript {
    $a = $Using:a+1;
    "Inline A = $a"
  }
  "Workflow A = $a"

  ##  To change the variable in workflow scope, return the
  ##  new value.
  $a = InlineScript {$b = $Using:a+1; $b}
  "Workflow New A = $a"
}

Test-Workflow
Inline A = 4
Workflow A = 3
Workflow New A = 4

Not

Betik bloğunda değişkenin $Using herhangi bir kullanımından önce kapsam değiştiricisine InlineScript sahip bir deyim görünmelidir.

İşlemde çalıştırma

Güvenilirliği artırmak için betik bloğundaki InlineScript komutlar, iş akışının çalıştırıldığı işlemden ayrı olarak kendi işlemlerinde çalıştırılır ve ardından çıktılarını iş akışı işlemine döndürür.

PowerShell'i iş akışı işleminde etkinliği çalıştırmaya InlineScript yönlendirmek için, cmdlet'ini kullanarak New-PSWorkflowExecutionOption oturum yapılandırmasının OutOfProcessActivity özelliğinden değeri kaldırınInlineScript.

Örnek

InlineScript Aşağıdaki iş akışında, PowerShell'de geçerli olan ancak iş akışlarında geçerli olmayan komutlar bulunur. Örneğin, New-Object ComObject parametresine sahip cmdlet.

workflow Test-Workflow
{
  $ie = InlineScript {
    $ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}

    $ie.Visible = $true
  }

  $ie
}

Test-Workflow

Ayrıca bkz.