Beberapa minggu yang lalu, The Geek menunjukkan kepada Anda bagaimana Anda dapat menggunakan command prompt untuk menemukan kapan komputer Anda dinyalakan 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 rangkaian:
Hal pertama yang perlu kita lakukan adalah menemukan 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 untuk melihat informasi lengkap tentang sistem operasi Anda, termasuk yang terakhir kali dimulainya.
Jadi sekarang kita tahu di mana kita dapat menemukan informasi yang kita cari, buka ISE dan ketik yang berikut.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Pilih-Objek -Property CSName, LastBootUpTime
Catatan: Saya harus membagi kode saya lebih dari dua baris sehingga semuanya cocok dengan screenshot, tetapi merasa bebas untuk mengetikkannya pada satu baris. Jika Anda memilih untuk membaginya menjadi dua garis, harap pastikan bahwa karakter pipa adalah karakter terakhir pada baris 1.
Sekarang klik tombol "Run Script" hijau atau tekan tombol F5 pada keyboard Anda untuk menguji kode.
WMI kali bisa menjadi sedikit samar. Maksud kami jika Anda melihat properti LastBootUpTime, ia mengatakan 2013-03-19 di 18:26:21, tetapi untuk beberapa alasan, orang-orang WMI memutuskan untuk menggabungkan semua itu ke dalam string tunggal. Beruntung bagi kami, kami tidak perlu khawatir mengurai string secara manual karena ada cara yang lebih mudah untuk melakukannya, meskipun lebih maju. Anda harus mengubah bagian Select-Object dari kode agar terlihat seperti ini:
Pilih-Objek -Property CSName, @ nn "Last Booted";
e = [Management.ManagementDateTimeConverter] :: ToDateTime ($ _. LastBootUpTime)
Apa yang kami lakukan di sini adalah membuat properti kustom yang disebut "Last Booted" dan menetapkan bahwa nilainya harus merupakan hasil pemanggilan metode statis ToDateTime pada properti LastBootUpTime dari objek pipeline saat ini. Kode Anda sekarang seharusnya terlihat seperti ini.
Menjalankan kode sekarang akan menghasilkan waktu boot terakhir yang jauh lebih mudah dibaca.
Sekarang kami puas dengan fungsi dasar skrip kami, kami harus menyimpannya. Untuk mempermudah, mari kita simpan sebagai berikut:
C: \ Get-LastBootTime.ps1
Sekarang beralih ke bagian bawah ISE dan jalankan yang berikut:
C: \ Get-LastBootTime.ps1
Besar! Skrip kami berfungsi seperti yang diharapkan, namun masih ada satu masalah dengan skrip kami. Kami mengarsipkan nama komputer yang kami inginkan untuk mendapatkan waktu boot terakhir. Alih-alih nilai-nilai hardcoding, kita sebaiknya memberikan parameter sehingga siapa pun yang menggunakan skrip dapat memilih komputer mana mereka menjalankan skrip terhadap. Untuk melakukan itu, pergi ke bagian atas skrip Anda dan lakukan yang berikut ini.
param (
[string] $ ComputerName
)
Kemudian ganti nilai localhost hardcoded dengan variabel $ ComputerName. Skrip Anda seharusnya sekarang terlihat seperti ini:
Simpan skrip Anda, kemudian kembali ke bagian bawah ISE dan lihat bantuan untuk skrip Anda.
bantuan C: \ Get-LastBootTime.ps1
Luar biasa, jadi sekarang kita dapat menentukan nama komputer yang kita inginkan untuk mendapatkan waktu boot terakhir untuk menggunakan parameter ComputerName yang baru. Sayangnya, masih ada beberapa hal yang salah. Pertama, parameter ComputerName adalah opsional dan kedua, itulah bantuan paling jelek yang pernah saya lihat, jadi mari perbaiki masalah tersebut dengan cepat. Untuk membuat parameter ComputerName wajib, ubah isi blok param menjadi yang berikut.
[Parameter (Mandatory = $ 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.
<#
.RINGKASAN
Acara saat terakhir PC Anda dinyalakan.
.DESKRIPSI
Ini adalah fungsi wrapper WMI untuk mendapatkan waktu yang PC Anda terakhir jalankan.
.PARAMETER ComputerName
Nama Komputer yang ingin Anda jalankan perintahnya.
.CONTOH
Get-LastBootTime -ComputerName localhost
.LINK
www.howtogeek.com
#>
Setelah semua yang dilakukan, Anda harus berakhir dengan skrip yang terlihat seperti ini.
Mari sekarang pergi dan periksa file bantuan baru kami.
Ahhh, tampak hebat! Sekarang skrip kami selesai, kami memiliki satu hal terakhir yang harus dilakukan: pengujian. Untuk ini, saya akan keluar dari ISE dan kembali ke konsol PowerShell hanya agar kami dapat memastikan bahwa tidak ada anomali.
Jika Anda memulai dengan satu liner sederhana dan terus membangunnya seperti yang kami lakukan dalam panduan ini, Anda akan segera menguasainya. Itu saja untuk orang-orang kali ini, sampai jumpa di instalasi Geek School selanjutnya.