Pastikan untuk membaca artikel sebelumnya dalam rangkaian:
- Pelajari Cara Mengotomatiskan Windows dengan PowerShell
- Belajar Menggunakan Cmdlet di PowerShell
- Mempelajari Cara Menggunakan Objek di PowerShell
- Belajar Memformat, Memfilter dan Membandingkan dalam PowerShell
- Belajar Menggunakan Remoting di PowerShell
- Menggunakan PowerShell untuk Mendapatkan Informasi Komputer
- Bekerja dengan Koleksi di PowerShell
Dan nantikan terus sisa serial ini sepanjang minggu.
Pekerjaan Latar Belakang
Hingga saat ini semua yang saya tunjukkan kepada Anda dalam PowerShell telah sinkron, yang berarti kami mengetikkan sesuatu ke dalam shell dan tidak dapat berbuat banyak sampai perintah tersebut selesai dijalankan. Di sinilah pekerjaan latar belakang masuk. Untuk memulai latar belakang, pekerjaan cukup melewati blok skrip ke cmdlet Start-Job.
Start-Job –Name GetFileList –Scriptblock {Get-ChildItem C: –Recurse}
Get-Job –Name GetFileList | Stop-Job
Get-Job –Name GetFileList | Receive-Job –Keep
Get-Job –Name GetFileList | Remove-Job
Ini akan menghapusnya dari daftar pekerjaan yang dikembalikan oleh Get-Job.
Pekerjaan Jarak Jauh
Beberapa pelajaran yang lalu, kami melihat bagaimana kami dapat menggunakan remoting untuk mengeksekusi perintah PowerShell pada mesin remote menggunakan Invoke-Command, tetapi apakah Anda tahu Anda juga dapat menggunakan Invoke-Command untuk memulai pekerjaan remoting di latar belakang? Untuk melakukannya, cukup tambahkan parameter –AsJob ke bagian akhir perintah Anda:
Invoke-Command -ComputerName Flash,Viper -Credential administrator -ScriptBlock {gci} –AsJob
Get-Job –Id 3 | Receive-Job –Keep –ComputerName Viper
Get-Job -Id 3 –IncludeChildJob
Get-Job -Id 5 | Receive-Job –Keep
Pekerjaan WMI
Pekerjaan WMI hampir sama dengan Pekerjaan Jarak Jauh, hanya membutuhkan parameter –AsJob yang akan ditambahkan ke cmdlet Get-WmiObject.
Pekerjaan Terjadwal
Tiga jenis pekerjaan terakhir yang kami lihat tidak persisten, yang berarti bahwa mereka hanya tersedia di sesi Anda saat ini. Pada dasarnya, itu berarti jika Anda memulai suatu pekerjaan dan kemudian membuka Konsol PowerShell lain dan menjalankan Get-Job, Anda tidak akan melihat pekerjaan apa pun. Namun, kembali ke konsol Anda menendang pekerjaan itu dari, Anda akan dapat melihat statusnya. Ini berbeda dengan Pekerjaan Terjadwal yang mana gigih. Pada dasarnya, Pekerjaan Terjadwal adalah blok skrip yang berjalan sesuai jadwal. Di masa lalu, pengaruh yang sama bisa dicapai menggunakan Windows Task Scheduler, yang benar-benar apa yang terjadi di bawah kap mesin. Untuk membuat Pekerjaan Terjadwal yang baru, kami melakukan hal berikut:
Register-ScheduledJob -Name GetEventLogs -ScriptBlock {Get-EventLog -LogName Security -Newest 100} -Trigger (New-JobTrigger -Daily -At 5pm) -ScheduledJobOption (New-ScheduledJobOption -RunElevated)
Ada banyak hal yang terjadi dalam perintah itu, jadi mari kita hancurkan.
- Pertama, kami memberikan Job Terjadwal kami nama GetEventLogs.
- Kami kemudian mengatakan bahwa ketika dipicu, kami ingin menjalankan konten blok skrip yang ditentukan, yang pada dasarnya mendapat 100 entri terbaru dari log kejadian Keamanan.
- Selanjutnya, kami tentukan pemicu. Karena parameter pemicu mengambil objek pemicu sebagai input, kami menggunakan perintah parenthetical untuk menghasilkan pemicu yang akan mati setiap hari pada jam 5 sore.
- Karena kita berurusan dengan event log, kita perlu menjalankan sebagai administrator, yang dapat kita tentukan dengan membuat objek ScheduledJobOption yang baru dan meneruskannya ke parameter ScheduledJobOption.
Get-ScheduledJob