Skrip kuasa skrip penjadual tugas - Bagaimana Untuk

Skrip kuasa skrip penjadual tugas

bagaimana untuk menjalankan mana-mana program dari skrip powershell dan jalankan menggunakan penjadual tugas

Jumlah 5 Langkah

Langkah 1: buat skrip

tulis skrip powerhell untuk memohon program anda
Saya menulis ini untuk menyegerakkan pelayan di tapak terpencil dengan datacenter di ibu pejabat:

Skrip #custom untuk menjalankan profil kumpulan semula penyegerakan dan e-mel gabungan logfiles

$ hari = mendapat tarikh -Format "yyddMM"
jika ([intptr] :: saiz -eq 8) {
#OS ialah 64bit
$ AppPath = "$ Env: ProgramFiles (x86) Syncback"
}
lain {
#OS bukan 64bit
$ AppPath = "$ Env: ProgramFiles Syncback"
}
$ Servername = $ env: ComputerName
$ logname = $ today + "_" + $ Servername + "_Synclog.log"

Perintah #next mesti dijalankan sekali sahaja pada penggunaan pertama skrip ini
# new-EventLog -LogName SyncBack-sumber aplikasi

cd $ AppPath
invoke-expression ". SyncBack.exe -m SyncData" | keluar-null
Write-EventLog -LogName Application -Source SyncBack -eventid 1000 -tentian jenis maklumat -message "Proses SyncBack berakhir"
gci "$ AppPath Sync * log.txt" | Get-Content | tambah-kandungan "$ AppPath $ logname"

Send-MailMessage -Untuk '[email protected]' -Dari '[email protected]' -SmtpServer 'mailserver' -Subject "Tugas penyegerakan pada $ ServerName selesai" -Body 'dalam lampiran fail log penyegerakan' -Attachments $ logname

Langkah 2: edit skrip untuk keperluan anda

fikir anda bahawa skrip ini adalah kerja yang sedang berjalan
anda perlu menukar beberapa pembolehubah seperti contoh alamat e-mel yang anda hantar ke dan dari

juga, jika anda sudah biasa dengan syncback, anda akan tahu bagaimana untuk mengambil nama profil yang dipanggil anda dan log masuk mereka ke akaun

perintah invoke-expression piped out-null menjamin skrip akan menunggu sehingga proses telah berakhir
anda juga boleh menaikkan output perintah yang dipanggil anda ke dalam fail teks atau bahkan pembolehubah jika anda ingin menggunakannya untuk rujukan masa depan semasa skrip

menulis-eventlog adalah bagus untuk mempunyai, ini akan membolehkan anda untuk menulis output perintah atau keterangan anda sendiri ke dalam log peristiwa aplikasi pada pelayan
anda perlu mendaftarkan entri terlebih dahulu dengan perintah baru-eventlog

Saya masih perlu untuk melaksanakan jika kemudian menyekat untuk mencatat kejayaan atau kegagalan ke dalam log peristiwa
ini amat berguna kerana kami menggunakan Pusat Sistem untuk memantau semua pelayan
dengan cara itu saya boleh mencetuskan amaran sekiranya sebarang tugas sedemikian gagal

Langkah 3: Polisi Pelaksanaan Powershell

pastikan anda menukar dasar pelaksanaan untuk menyekat atau skrip anda tidak akan berjalan jika disalin dari komputer lain dan anda akan mendapat ralat berikut:

Fail C: windows SyncData.ps1 tidak dapat dimuat kerana pelaksanaan skrip dimatikan pada sistem ini. Sila lihat "mendapatkan bantuan tentang_signing" untuk maklumat lanjut.

masukkan set-executionpolicy menyekat dan selesaikan dengan menjawab Ya

Langkah 4: tetapkan skrip powerhell

ini adalah panggilan baris arahan untuk skrip powershell:

C: WINDOWS system32 WindowsPowerShell v1.0 powershell.exe -command "& 'c: windows SyncData.ps1'"

folder tingkap biasanya laluan yang dikenali supaya anda tidak perlu menentukan laluan penuh, itulah sebabnya saya menggunakannya tetapi anda boleh menggunakan folder lain yang anda suka selagi anda menentukan laluan penuh skrip

Langkah 5: tetapan semula penyegerakan semula

jika anda memanggil syncback, anda perlu menggunakan akaun yang sama untuk menjalankan tugas seperti yang anda buat ketika membuat profil

syncback menyimpan tetapan profil ini dalam registri pengguna supaya menggunakan mana-mana akaun lain tidak akan dapat membaca tetapan ini dan akan gagal pada pelaksanaan

cara paling mudah ialah menggunakan akaun pentadbir untuk log masuk ke pelayan, membuat profil dan masukkan kelayakan ini untuk menjalankan tugas

sebagai alternatif anda juga boleh mengimport tetapan ini ke dalam registri pengguna akaun yang anda ingin gunakan untuk tugas yang dijadualkan

ini hanya untuk menunjukkan kepada anda bagaimana untuk menggunakan powerhell untuk MENINGKATKAN mana-mana program lain yang anda mahu menjadualkan sebagai tugas

sebab saya beralih menggunakan powerhell dan bukannya memanggil program itu sendiri, saya boleh menggabungkan beberapa program yang akan dijalankan mengikut urutan dengan hanya satu jadual
menggunakan paip keluar-null akan memastikan program pertama telah selesai sebelum program seterusnya dipanggil

dalam kes ini, bagus untuk dapat menggabungkan log masuk ke dalam satu fail besar dan menghantarnya ke peti mel yang dipantau