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.
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
İş 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.
İş akışı oturumunu
New-PSWorkflowSession
oluşturmak için veyaNew-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 kullanmaklaNew-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 kullanabilirsiniz
New-PSWorkflowExecutionOption
. Ayrıca, oturum yapılandırmasını değiştirmek için cmdlet'ini kullanınSet-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
İş 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-Workflow
iş 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-Command
uzaktan 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.
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin