Aracılığıyla paylaş


about_Workflows

Kısa açıklama

PowerShell İş Akışı özelliğine kısa bir giriş sağlar.

Uzun açıklama

PowerShell İş Akışı, Windows Workflow Foundation'ın avantajlarını PowerShell'e getirir ve iş akışları yazmanızı ve çalıştırmanızı sağlar.

PowerShell İş Akışı PowerShell 3.0'da kullanıma sunulmuştur ve modül PowerShell 5.1'e kadar kullanılabilir. PowerShell İş Akışı hakkında daha fazla bilgi için bkz . İş Akışları Kılavuzu ve Windows PowerShell İş Akışı Yazma.

İş akışları hakkında

İş akışları, ilgili etkinliklerin sıralı dizisini içeren komutlardır. Genellikle, genellikle heterojen ortamlarda yüzlerce bilgisayardan veri toplayarak ve bu bilgisayarlarda değişiklik yaparak uzun bir süre çalışırlar.

İş akışları XAML'de, Windows Workflow Foundation'da kullanılan dilde veya PowerShell dilinde yazılabilir. İş akışları genellikle modüllerde paketlenir ve yardım konularını içerir. Daha fazla bilgi için bkz . XAML'e Genel Bakış (WPF).

İş akışları, yeniden başlatmalardan kurtulabildiğinden ve yaygın hatalardan otomatik olarak kurtarabildiğinden BT ortamında kritik öneme sahiptir. İş akışı işlemeyi kesintiye uğratmadan oturumların ve iş akışlarını çalıştıran bilgisayarların bağlantısını kesebilir ve yeniden bağlayabilir, veri kaybı olmadan iş akışlarını saydam bir şekilde askıya alabilir ve sürdürebilirsiniz. Bir iş akışındaki her etkinlik günlüğe kaydedilebilir ve başvuru için denetlenebilir. İş akışları iş olarak çalıştırılabilir ve PowerShell'in Zamanlanmış İşler özelliği kullanılarak zamanlanabilir.

bir iş akışındaki durum ve veriler, iş akışının başında ve sonunda ve belirttiğiniz noktalarda kaydedilir veya kalıcı hale dönüştürülür. İş akışı kalıcılık noktaları, iş akışını kesintilerin ve hataların etkilerinden korumak için veritabanı anlık görüntüleri veya program denetim noktaları gibi çalışır. İş akışı bir hatadan kurtarılamıyorsa, kapsamlı bir iş akışını baştan yeniden çalıştırmak yerine kalıcı verileri kullanabilir ve son kalıcılık noktasından devam edebilirsiniz.

İş akışı gereksinimleri ve yapılandırması

PowerShell İş Akışı yapılandırması aşağıdaki öğelerden oluşur:

  • İş akışını çalıştıran bir istemci bilgisayar.
  • İstemci bilgisayarda veya uzak bir bilgisayarda pssession adlı bir iş akışı oturumu.
  • Yönetilen düğümler, iş akışı etkinliklerinden etkilenen hedef bilgisayarlar.

İş akışı oturumu gerekli değildir, ancak önerilir. PSSessions , bağlantısı kesilmiş iş akışı oturumlarını kurtarmak için PowerShell'in sağlam kurtarma ve Bağlantısız Oturumlar özelliklerinden yararlanabilir. Daha fazla bilgi için bkz. about_Remote_Disconnected_Sessions

İstemci bilgisayar ve iş akışı oturumunun çalıştığı bilgisayar yönetilen düğümler olabileceğinden, iş akışını tüm rolleri karşılayan tek bir bilgisayarda çalıştırabilirsiniz.

İstemci bilgisayar ve iş akışı oturumunun çalıştığı bilgisayar PowerShell 3.0 çalıştırıyor olmalıdır. Windows Server işletim sistemlerinin Sunucu Çekirdeği yükleme seçenekleri de dahil olmak üzere tüm uygun sistemler desteklenir.

Cmdlet'leri içeren iş akışlarını çalıştırmak için yönetilen düğümlerin Windows PowerShell 2.0 veya üzeri olması gerekir. İş akışı cmdlet'leri içermediği sürece yönetilen düğümler PowerShell gerektirmez. PowerShell'i olmayan bilgisayarlarda Windows Yönetim Araçları (WMI) ve Ortak Bilgi Modeli (CIM) komutları içeren iş akışlarını çalıştırabilirsiniz.

İş akışlarını alma

İş akışları genellikle modüllerde paketlenir. İş akışı içeren modülü içeri aktarmak için modüldeki herhangi bir komutu kullanın veya cmdlet'ini Import-Module kullanın. Modüller, modüldeki herhangi bir komutun ilk kullanımında otomatik olarak içeri aktarılır.

Bilgisayarınızda yüklü modüllerdeki iş akışlarını bulmak için cmdlet'in CommandType parametresini kullanınGet-Command.

Get-Command -CommandType Workflow

İş akışlarını çalıştırma

bir iş akışı çalıştırmak için aşağıdaki yordamı kullanın.

  1. Yönetilen düğüm yerel bilgisayar olduğunda bu adım gerekli değildir. Aksi takdirde, istemci bilgisayarda PowerShell'i Yönetici olarak çalıştır seçeneğiyle başlatın.

    Start-Process PowerShell -Verb RunAs
    
  2. İş akışı oturumunu çalıştıran bilgisayarda ve cmdlet'ler içeren iş akışlarından etkilenen yönetilen düğümlerde PowerShell uzaktan iletişimini etkinleştirin.

    Bu adımı katılan her bilgisayarda yalnızca bir kez yapmanız gerekir.

    Bu adım yalnızca cmdlet'ler içeren iş akışları çalıştırılırken gereklidir. İş akışları oturumu istemci bilgisayarda veya PowerShell 3.0 çalıştıran yönetilen düğümlerde çalışmadığı sürece istemci bilgisayarda uzaktan iletişimi etkinleştirmeniz gerekmez.

    uzaktan iletişim özelliğini etkinleştirmek için cmdlet'ini Enable-PSRemoting kullanın.

    Enable-PSRemoting -Force
    

    Komut Dosyası Yürütme Grubu İlkesini Aç ayarını kullanarak uzaktan iletişim özelliğini etkinleştirebilirsiniz. Daha fazla bilgi için bkz. about_Group_Policy_Ayarlar ve about_Execution_Policies.

  3. İş akışı oturumunu New-PSWorkflowSession oluşturmak için veya New-PSSession cmdlet'lerini kullanın.

    Cmdlet, New-PSWorkflowSession hedef bilgisayarda yerleşik Microsoft.PowerShell.Workflow oturum yapılandırmasını kullanan bir oturum başlatır. Bu oturum yapılandırması betikleri, tür ve biçimlendirme dosyalarını ve iş akışları için tasarlanmış seçenekleri içerir.

    Veya cmdlet'ini New-PSSession kullanın. ConfigurationName parametresini kullanarak Microsoft.PowerShell.Workflow oturum yapılandırmasını belirtin. Bu komut, cmdlet'ini kullanmakla New-PSWorkflowSession aynıdır.

    Alternatif olarak cmdlet'ini New-PSSession kullanabilirsiniz. ConfigurationName parametresini kullanarak Microsoft.PowerShell.Workflow oturum yapılandırmasını belirtin.

    Yerel bilgisayarda:

    $ws = New-PSWorkflowSession
    

    Uzak bir bilgisayarda:

    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    

    İş akışı oturumu bilgisayarında Yönetici istrator iseniz, iş akışı oturumu yapılandırması için özel seçenek ayarları oluşturmak için cmdlet'ini kullanabilirsinizNew-PSWorkflowExecutionOption. Ayrıca, oturum yapılandırmasını değiştirmek için cmdlet'ini kullanın Set-PSSessionConfiguration .

    $sto = New-PSWorkflowExecutionOption -MaxConnectedSessions 150
    Invoke-Command -ComputerName Server01 `
    {Set-PSSessionConfiguration Microsoft.PowerShell.Workflow `
    -SessionTypeOption $Using:sto}
    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    
  4. İş akışını iş akışı oturumunda çalıştırın. Yönetilen düğümlerin, hedef bilgisayarların adlarını belirtmek için PSComputerName iş akışı ortak parametresini kullanın.

    Aşağıdaki örneklerde adlı Test-Workflowiş akışı çalıştırılır.

    Yönetilen düğüm, iş akışı oturumunu barındıran bilgisayardır:

    Invoke-Command -Session $ws {Test-Workflow}
    

    Yönetilen düğümlerin uzak bilgisayarlar olduğu yer.

    Invoke-Command -Session $ws{
    Test-Workflow -PSComputerName Server01, Server02 }
    

    Aşağıdaki örnek, Test-Workflow yüzlerce bilgisayarda öğesini çalıştırır. Get-Content Cmdlet, bilgisayar adlarını bir metin dosyasından alır ve yerel bilgisayardaki değişkene kaydeder$Servers.

    Invoke-Command$Using, değişkeni yerel oturumda tanımlamak için kapsam değiştiricisini $Servers kullanır. Kapsam değiştirici hakkında $Using daha fazla bilgi için bkz . about_Remote_Variables.

    $Servers = Get-Content Servers.txt
    Invoke-Command -Session $ws {Test-Workflow -PSComputerName $Using:Servers }
    

İş akışı ortak parametrelerini kullanma

İş akışı ortak parametreleri, PowerShell'in tüm iş akışlarına otomatik olarak eklediği bir parametre kümesidir. PowerShell, iş akışı CmdletBinding özniteliğini kullanmasa bile cmdlet ortak parametrelerini tüm iş akışlarına ekler.

Örneğin, aşağıdaki iş akışı parametre tanımlamaz. Ancak, iş akışını çalıştırdığınızda hem CommonParameters hem de WorkflowCommonParameters vardır.

workflow Test-Workflow {Get-Process}
Get-Command Test-Workflow -Syntax
Test-Workflow [<WorkflowCommonParameters>] [<CommonParameters>]

İş akışı ortak parametreleri, çalışan iş akışları için gerekli olan çeşitli parametreleri içerir. Örneğin, PSComputerName ortak parametresi iş akışının etkilediği yönetilen düğümleri belirtir.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02
}

PSPersist iş akışı ortak parametresi, iş akışı verilerinin ne zaman kalıcı olduğunu belirler. Kalıcılık noktası tanımlamayan iş akışlarına etkinlikler arasında kalıcılık noktası eklemenize olanak tanır.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPersist:$True
}

Diğer iş akışı ortak parametreleri, yönetilen düğümlere uzak bağlantının özelliklerini belirtmenize olanak tanır. Adları ve işlevleri, dahil olmak üzere Invoke-Commanduzaktan iletişim cmdlet'lerinin parametrelerine benzer.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPort 443
}

İş akışı oturumu için bağlantıyı tanımlayan uzaktan iletişim parametrelerini yönetilen düğümlere bağlantıyı tanımlayan iş akışı ortak parametrelerinden PS-prefixed ayırt etmeye dikkat edin.

$ws = New-PSSession -ComputerName Server01 -ConfigurationName Microsoft.PowerShell.Workflow

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSConfigurationName Microsoft.PowerShell.Workflow
}

Bazı iş akışı ortak parametreleri, farklı uzak düğümler için farklı iş akışı ortak parametre değerleri belirtmenize olanak tanıyan PSParameterCollection parametresi gibi iş akışları için benzersizdir. İş akışı ortak parametrelerinin listesi ve açıklaması için bkz . about_WorkflowCommonParameters.

Ayrıca bkz.