Beranda » bagaimana » Geek School Menulis Skrip PowerShell Penuh Pertama Anda

    Geek School Menulis Skrip PowerShell Penuh Pertama Anda

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

    Pastikan untuk membaca artikel sebelumnya dalam seri ini:

    • Pelajari Cara Mengotomatiskan Windows dengan PowerShell
    • Belajar Menggunakan Cmdlet di PowerShell
    • Mempelajari Cara Menggunakan Objek di PowerShell
    • Belajar Memformat, Memfilter, dan Membandingkan di PowerShell
    • Belajar Menggunakan Remoting di PowerShell
    • 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 Output

    Menulis Naskah Pertama Anda

    Hal pertama yang perlu kita lakukan adalah menemukan cara untuk mengakses informasi yang kita cari. Karena kita berhadapan dengan informasi manajemen, kita mungkin perlu melihat menggunakan WMI, yang memang memiliki kelas bernama Win32_OperatingSystem yang memungkinkan Anda untuk melihat informasi verbose tentang sistem operasi Anda, termasuk terakhir kali dimulai..

    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 |

    Select-Object -Property CSName, LastBootUpTime

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

    Sekarang klik tombol "Run Script" berwarna hijau atau tekan tombol F5 pada keyboard Anda untuk menguji kodenya.

    Waktu WMI bisa sedikit samar. Maksud kami jika Anda melihat properti LastBootUpTime, katanya 2013-03-19 pada 18:26:21, tetapi untuk beberapa alasan orang-orang WMI memutuskan untuk menggabungkan semua itu menjadi satu string. Beruntung bagi kami, kami tidak perlu khawatir tentang penguraian string secara manual karena ada cara yang lebih mudah untuk melakukannya, meskipun lebih maju. Anda perlu mengubah bagian Select-Object dari kode agar terlihat seperti ini:

    Select-Object -Property CSName, @ n = ”Boot Terakhir”;

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

    Apa yang kami lakukan di sini adalah membuat properti khusus yang disebut "Boot Terakhir" dan menetapkan bahwa nilainya harus merupakan hasil dari memanggil metode statis ToDateTime pada properti LastBootUpTime dari objek pipa saat ini. Kode Anda sekarang akan terlihat seperti ini.

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

    Sekarang kami puas dengan fungsionalitas dasar skrip kami, kami harus menyimpannya. Untuk kesederhanaan, mari kita simpan sebagai berikut:

    C: \ Get-LastBootTime.ps1

    Sekarang beralihlah 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 mencatat dengan keras nama komputer yang kami inginkan untuk mendapatkan waktu boot terakhir. Alih-alih nilai-nilai hardcoding, kami lebih baik memberikan parameter sehingga siapa pun yang menggunakan skrip dapat memilih komputer mana yang mereka jalankan skrip. Untuk melakukannya, buka bagian atas skrip Anda dan lakukan yang berikut.

    param (
    [string] $ ComputerName
    )

    Kemudian ganti nilai localhost dengan hardcoded dengan variabel $ ComputerName. Script Anda sekarang akan terlihat seperti ini:

    Simpan skrip Anda, lalu 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 ingin kita dapatkan waktu boot terakhir untuk menggunakan parameter ComputerName baru. Sayangnya, masih ada beberapa hal yang salah. Pertama, parameter ComputerName adalah opsional dan kedua, itu membantu paling jelek yang pernah saya lihat, jadi mari kita memperbaiki masalah tersebut dengan cepat. Untuk membuat parameter ComputerName wajib, ubah isi blok param sebagai berikut.

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

    Sedangkan untuk membuat file bantuan yang lebih baik, metode yang paling umum adalah dengan menggunakan bantuan berbasis komentar. Itu berarti kami hanya menambahkan komentar ekstra panjang ke bagian atas skrip keluar.

    <#
    .RINGKASAN
    Ditampilkan saat terakhir PC Anda mulai hidup.
    .DESKRIPSI
    Ini adalah fungsi pembungkus WMI untuk mendapatkan waktu ketika PC Anda terakhir kali dinyalakan.
    .PARAMETER ComputerName
    Nama Komputer yang ingin Anda jalankan perintahnya.
    .CONTOH
    Dapatkan-LastBootTime -ComputerName localhost
    .LINK
    www.howtogeek.com
    #>

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

    Sekarang mari kita pergi dan periksa file bantuan baru kami.

    Ahhh, tampak hebat! Sekarang skrip kami selesai, kami memiliki satu hal yang harus dilakukan: pengujian. Untuk ini, saya akan keluar dari ISE dan kembali ke konsol PowerShell agar kita dapat memastikan bahwa tidak ada keganjilan.

    Jika Anda mulai dengan satu liner sederhana dan terus membangun ke atasnya seperti yang kami lakukan dalam panduan ini, Anda akan segera menguasainya. Itu saja untuk saat ini teman-teman, sampai jumpa di instalasi Geek School berikutnya.