Invoke-AsWorkflow
Windows PowerShell İş Akışı olarak bir komut veya ifade çalıştırır.
Syntax
Command (Varsayılan)
Invoke-AsWorkflow
[-CommandName <String>]
[-Parameter <Hashtable>]
[-InputObject <Object>]
[<CommonParameters>]
Expression
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 Header özelliği oluşturmak için ServerName parametresini kullanır. komutu sonucu $s değişkenine kaydeder.
İkinci komut, Servers.csv dosyasındaki bilgisayarlarda bir Invoke-AsWorkflow komutu çalıştırmak için Get-ExecutionPolicy iş akışını kullanır. komut, iş akışında çalıştırılacak komutu belirtmek için Invoke-AsWorkflow parametresini kullanır.
Parameter cmdlet'in Invoke-AsWorkflow parametresini Scopedeğeriyle belirtmek için Get-ExecutionPolicy 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, ServerName değişkenindeki her nesnenin $s ö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 Scope cmdlet'in Get-ExecutionPolicy 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-ExecutionPolicyveya Set-NetFirewallRulegibi cmdlet'ini veya işlev adını girin.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Command
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Expression
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-InputObject
İşlem hattı girişine izin vermek için kullanılır.
Parametre özellikleri
| Tür: | Object |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | Hashtable |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Command
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
Object
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.