15Sep

Geek School: Menulis Skrip PowerShell Pertama Anda

Beberapa minggu yang lalu, The Geek menunjukkan kepada Anda bagaimana Anda dapat menggunakan command prompt untuk mengetahui kapan komputer Anda diawali dengan yang terakhir. Dalam instalasi terakhir Geek School for PowerShell ini, kita akan menulis perintah PowerShell yang dapat digunakan kembali untuk melakukan hal yang sama.

Pastikan untuk membaca artikel sebelumnya dalam seri:

  • Pelajari Cara Mengotomatiskan Windows dengan PowerShell
  • Belajar Menggunakan Cmdlet di PowerShell
  • Belajar Cara Menggunakan Objek di PowerShell
  • Belajar Memformat, Menyaring dan Membandingkan PowerShell
  • Belajar Menggunakan Remoting diPowerShell
  • Menggunakan PowerShell untuk Mendapatkan Informasi Komputer
  • Bekerja dengan Koleksi di PowerShell
  • Pelajari Cara Menggunakan Pekerjaan di PowerShell
  • Pelajari Cara Memperpanjang PowerShell
  • Mempelajari Variabel PowerShell, Input dan Keluaran

Menulis Skrip Pertama Anda

Hal pertama yang perlu dilakukan adalahcari cara untuk mengakses informasi yang kita cari. Karena kita berurusan dengan informasi manajemen, kita mungkin perlu melihat menggunakan WMI, yang memang memiliki kelas yang disebut Win32_OperatingSystem yang memungkinkan Anda melihat informasi verbose tentang sistem operasi Anda, termasuk yang terakhir kali dimulai.

Jadi sekarang kita tahu dimana kita bisa menemukan informasi yang kita cari, buka ISE dan ketik berikut ini.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |

Select-Object -Property CSName, LastBootUpTime

Catatan: Saya harus membagi kode saya lebih dari dua baris sehingga semuanya sesuai dengan tangkapan layar, namun jangan ragu untuk mengetikkannya dalam satu baris saja. Jika Anda memilih untuk membaginya menjadi dua baris, pastikan karakter pipa adalah karakter terakhir pada baris 1.

Sekarang klik tombol "Run Script" hijau atau tekan tombol F5 pada keyboard Anda untuk menguji kode. Waktu WMI

bisa sedikit samar. Dengan itu kami maksudkan jika Anda melihat properti LastBootUpTime, ia mengatakan 2013-03-19 di 18:26:21, namun karena alasan tertentu, orang-orang WMI memutuskan untuk menggabungkan semua itu menjadi satu string tunggal. Beruntung bagi kita, kita tidak perlu khawatir tentang parsing string secara manual karena ada cara yang lebih mudah untuk melakukannya, meski lebih maju. Anda perlu mengubah bagian Select-Object dari kode agar terlihat seperti ini:

Select-Object -Property CSName, @{ n = "Last Booted";

e ={ [Management. ManagementDateTimeConverter]: : ToDateTime( $ _. LastBootUpTime)}}

Apa yang kami lakukan di sini adalah membuat properti khusus yang disebut "Booted Terakhir" dan menentukan nilainya harus merupakan hasil dari panggilan ke statemen ToDateTimemetode pada properti LastBootUpTime dari objek pipa saat ini. Kode Anda sekarang harus terlihat seperti ini

Menjalankan kode sekarang akan menghasilkan waktu boot terakhir yang jauh lebih mudah dibaca.

Sekarang setelah kita puas dengan fungsi dasar skrip kita, kita perlu menyimpannya. Untuk kesederhanaan, mari kita simpan sebagai berikut:

C: \ Get-LastBootTime.ps1

Sekarang beralih ke bagian bawah ISE dan jalankan yang berikut ini:

C: \ Get-LastBootTime.ps1

Hebat! Script kami bekerja seperti yang diharapkan, namun masih ada satu masalah dengan skrip kami. Kami hardcoded nama komputer kami ingin mendapatkan waktu boot terakhir untuk. Alih-alih nilai hardcoding, sebaiknya kita memberikan parameter sehingga siapa pun yang menggunakan skrip dapat memilih komputer mana yang menjalankan skripnya. Untuk melakukan itu, pergi ke bagian atas naskah Anda dan lakukan hal berikut.

param(
[string] $ ComputerName
)

Kemudian ganti nilai localhost hardcod dengan variabel $ ComputerName. Skrip Anda seharusnya terlihat seperti ini:

Simpan skrip Anda, lalu kembali ke bagian bawah ISE dan lihat bantuan skrip Anda.

membantu C: \ Get-LastBootTime.ps1

Mengagumkan, jadi sekarang kita bisa menentukan nama komputer yang ingin kita dapatkan saat boot terakhir untuk menggunakan parameter ComputerName baru kita. Sayangnya, masih ada beberapa hal yang salah. Pertama, parameter ComputerName bersifat opsional dan kedua, itulah yang paling membantu yang pernah saya lihat, jadi mari kita perbaiki masalah itu dengan cepat. Untuk membuat parameter ComputerName wajib, ubah isi blok param menjadi berikut.

[Parameter( Wajib = $ true)] [string] $ ComputerName

Untuk membuat file bantuan yang lebih baik, metode yang paling umum adalah menggunakan bantuan berbasis komentar. Itu berarti kita hanya menambahkan komentar ekstra panjang ke bagian atas naskah.

& lt; #
. SYNOPSIS
Menunjukkan kapan terakhir PC Anda dimulai.
. DESCRIPTION
Ini adalah fungsi pembungkus WMI untuk mendapatkan waktu agar PC Anda mulai berjalan.
. PARAMETER ComputerName
Nama Komputer yang ingin Anda jalankan perintahnya.
. EXAMPLE
Get-LastBootTime -ComputerName localhost
. LINK
www.howtogeek.com
# & gt;

Setelah semua yang dilakukan, Anda harus berakhir dengan skrip terlihat seperti ini.

Sekarang mari kita periksa file bantuan baru kita.

Ahhh, tampak hebat! Setelah naskah kita selesai, kita harus melakukan satu hal: pengujian. Untuk ini, saya akan keluar dari ISE dan kembali ke konsol PowerShell agar kita dapat memastikan bahwa tidak ada anomali.

Jika Anda memulai dengan satu liner sederhana dan terus membangunnya seperti yang kami lakukan di buku petunjuk ini, Anda akan menguasainya dalam waktu singkat. Itu saja untuk kali ini orang, sampai jumpa di instalasi berikutnya Geek School.