Invoke-AsWorkflow
Windows PowerShell İş Akışı olarak bir komut veya ifade çalıştırır.
Sözdizimi
Invoke-AsWorkflow
[-CommandName <String>]
[-Parameter <Hashtable>]
[-InputObject <Object>]
[<CommonParameters>]
Invoke-AsWorkflow
[-Expression <String>]
[-InputObject <Object>]
[<CommonParameters>]
Description
Invoke-AsWorkflow
iş akışı herhangi bir komutu veya ifadeyi iş akışında satır içi betik olarak çalıştırır.
Bu iş akışları standart iş akışı semantiğini kullanır, tüm iş akışı ortak parametrelerine sahiptir ve durdurma, sürdürme ve kurtarma gibi iş akışlarının tüm avantajlarına sahiptir.
İş akışları, kritik verileri toplayan uzun süre çalışan komutlar için tasarlanmıştır, ancak herhangi bir komutu çalıştırmak için kullanılabilir. Daha fazla bilgi için bkz. about_Workflows.
Bu komuta iş akışı ortak parametreleri de ekleyebilirsiniz. İş akışı ortak parametreleri hakkında daha fazla bilgi için bkz. about_WorkflowCommonParameters
Bu iş akışı Windows PowerShell 3.0'da kullanıma sunulmuştur.
Örnekler
Örnek 1: cmdlet'i iş akışı olarak çalıştırma
Invoke-AsWorkflow -PSComputerName (Get-Content Servers.txt) -CommandName Get-ExecutionPolicy
PSComputerName PSSourceJobInstanceId Value
-------------- --------------------- -----
Server01 77b1cdf8-8226-4662-9067-cd2fa5c3b711 AllSigned
Server02 a33542d7-3cdd-4339-ab99-0e7cd8e59462 Unrestricted
Server03 279bac28-066a-4646-9497-8fcdcfe9757e AllSigned
localhost 0d858009-2cc4-47a4-a2e0-da17dc2883d0 RemoteSigned
Bu komut, Get-ExecutionPolicy
cmdlet'ini yüzlerce bilgisayarda iş akışı olarak çalıştırır.
komut, iş akışında çalışan cmdlet'i belirtmek için CommandName parametresini kullanır.
Komutun üzerinde çalıştığı bilgisayarları belirtmek için PSComputerName iş akışı ortak parametresini kullanır.
PSComputerName parametresinin değeri, Servers.txt dosyasından bilgisayar adlarının listesini alan bir Get-Content
komutudur.
Parametre değeri, Windows PowerShell'i değeri kullanmadan önce Get-Command
komutunu çalıştırmaya yönlendirmek için parantez içine alınır.
Tüm uzak komutlarda olduğu gibi, komut yerel bilgisayarda çalışıyorsa (PSComputerName parametresinin değeri yerel bilgisayarı içeriyorsa), Windows PowerShell'i "Yönetici olarak çalıştır" seçeneğiyle başlatmanız gerekir.
Örnek 2: Parametrelerle bir cmdlet çalıştırma
$s = Import-Csv .\Servers.csv -Header ServerName, ServerID
Invoke-AsWorkflow -CommandName Get-ExecutionPolicy -Parameter @{Scope="Process"} -PSComputerName {$s.ServerName} -PSConnectionRetryCount 5
İlk komut, Servers.csv dosyasındaki içerikten bir nesne oluşturmak için Import-Csv
cmdlet'ini kullanır. komut, hedef bilgisayarların adlarını içeren ve "uzak düğümler" olarak da bilinen sütun için bir ServerName
özelliği oluşturmak için Header
parametresini kullanır. komutu sonucu $s
değişkenine kaydeder.
İkinci komut, Servers.csv dosyasındaki bilgisayarlarda bir Get-ExecutionPolicy
komutu çalıştırmak için Invoke-AsWorkflow
iş akışını kullanır. komut, iş akışında çalıştırılacak komutu belirtmek için Invoke-AsWorkflow
CommandName parametresini kullanır.
Get-ExecutionPolicy
cmdlet'in Scope
parametresini İşlemdeğeriyle belirtmek için Invoke-AsWorkflow
Parameter
parametresini kullanır. Komut, komutu her bilgisayarda beş denemeyle sınırlamak için PSConnectionRetryCount
iş akışı ortak parametresini ve uzak düğümlerin (hedef bilgisayarlar) adlarını belirtmek için PSComputerName
iş akışı ortak parametresini de kullanır.
PSComputerName
parametresinin değeri, $s
değişkenindeki her nesnenin ServerName
özelliğini alan bir ifadedir.
Bu komutlar, yüzlerce bilgisayarda iş akışı olarak bir Get-ExecutionPolicy
komutu çalıştırır.
Komut, yürütme ilkesini geçerli oturumda almak için Get-ExecutionPolicy
cmdlet'in Scope
parametresini İşlem değeriyle kullanır.
Örnek 3: İfadeyi iş akışı olarak çalıştırma
Invoke-AsWorkflow -Expression "ipconfig /all" -PSComputerName (Get-Content DomainControllers.txt) -AsJob -JobName IPConfig
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 IpConfig PSWorkflowJob Completed True Server01, Server01... Invoke-AsWorkflow
Bu komut, Invoke-AsWorkflow
iş akışını kullanarak DomainControllers.txt dosyasında listelenen bilgisayarlarda bir Ipconfig komutunu iş akışı işi olarak çalıştırır.
komut, çalıştırılacak ifadeyi belirtmek için Expression
parametresini kullanır.
Uzak düğümlerin (hedef bilgisayarlar) adlarını belirtmek için PSComputerName
iş akışı ortak parametresini kullanır.
Komut ayrıca iş akışını "Ipconfig" iş adıyla her bilgisayarda arka plan işi olarak çalıştırmak için AsJob
ve JobName
iş akışı ortak parametrelerini kullanır.
Komut, her bilgisayardaki iş akışı işlerini içeren bir ContainerParentJob
nesnesi (System.Management.Automation.ContainerParentJob
) döndürür.
Parametreler
-CommandName
Belirtilen cmdlet'i veya gelişmiş işlevi iş akışı olarak çalıştırır.
Update-Help
, Set-ExecutionPolicy
veya Set-NetFirewallRule
gibi cmdlet'ini veya işlev adını girin.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Expression
Bu cmdlet'in iş akışı olarak çalıştırıldığı ifadeyi belirtir.
İfadeyi "ipconfig /all"
gibi bir dize olarak girin.
İfade boşluk veya özel karakterler içeriyorsa, ifadeyi tırnak içine alın.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-InputObject
İşlem hattı girişine izin vermek için kullanılır.
Tür: | Object |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-Parameter
CommandName
parametresinde belirtilen komutun parametrelerini ve parametre değerlerini belirtir.
Her anahtarın parametre adı ve değeri parametre değeri olan @{ExecutionPolicy="AllSigned"}
gibi bir karma tablo girin.
Karma tablolar hakkında bilgi için bkz. about_Hash_Tables.
Tür: | Hashtable |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
Herhangi bir nesneyi bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
None
Bu komut kendi çıkışını döndürmez, ancak çalıştırdığınız iş akışı çıkış döndürebilir.
İlişkili Bağlantılar
PowerShell