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 InlineScript
kapsam değiştiricisini $Using
kullanın. Kapsam $Using
değiştirici, içindeki InlineScript
her 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 InlineScript
oturum yapılandırmasının OutOfProcessActivity özelliğinden değeri kaldırınNew-PSWorkflowExecutionOption
.
Ö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.
PowerShell