Aracılığıyla paylaş


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.