Saya sedang mengerjakan beberapa skrip otomatisasi rilis yang menggunakan Powershell untuk memperbarui tugas terjadwal yang ada yang menjalankan berbagai aplikasi. Dalam skrip saya, saya bisa mengatur Path dan Direktori Kerja aplikasi, tetapi sepertinya tidak menyimpan perubahan kembali ke tugas.
function CreateOrUpdateTaskRunner {
param (
[Parameter(Mandatory = $TRUE, Position = 1)][string]$PackageName,
[Parameter(Mandatory = $TRUE, Position = 2)][Version]$Version,
[Parameter(Mandatory = $TRUE, Position = 3)][string]$ReleaseDirectory
)
$taskScheduler = New-Object -ComObject Schedule.Service
$taskScheduler.Connect("localhost")
$taskFolder = $taskScheduler.GetFolder('\')
foreach ($task in $taskFolder.GetTasks(0)) {
# Check each action to see if it references the current package
foreach ($action in $task.Definition.Actions) {
# Ignore actions that do not execute code (e.g. send email, show message)
if ($action.Type -ne 0) {
continue
}
# Ignore actions that do not execute the specified task runner
if ($action.WorkingDirectory -NotMatch $application) {
continue
}
# Find the executable
$path = Join-Path $ReleaseDirectory -ChildPath $application | Join-Path -ChildPath $Version
$exe = Get-ChildItem $path -Filter "*.exe" | Select -First 1
# Update the action with the new working directory and executable
$action.WorkingDirectory = $exe.DirectoryName
$action.Path = $exe.FullName
}
}
}
Sejauh ini saya belum dapat menemukan fungsi Simpan yang jelas dalam dokumentasi ( https://msdn.microsoft.com/en-us/library/windows/desktop/aa383607(v=vs.85).aspx ). Apakah saya mengambil pendekatan yang salah di sini, dan perlu dipusingkan dengan tugas XML?
Versi 2.0 (lihat serverfault.com/questions/666671/… untuk beberapa masalah terkait verson saya!). Jika solusi Anda bekerja dengan Powershell versi yang lebih baru yang didukung oleh Server 2008 R2 maka itu akan memberi saya "dorongan" ekstra untuk mendapatkan server ditingkatkan :-)
—
David Keaveny
Server 2008R2 mendukung hingga 4.0 saat ini. Lihat Persyaratan Windows PowerShell: technet.microsoft.com/en-us/library/hh847769.aspx
—
Davidw
Get-Host
untuk mencari tahu.