Menemukan PowerShell

PowerShell adalah shell baris perintah dan bahasa skrip dalam satu. PowerShell dimulai di Windows. Ini dimaksudkan untuk membantu otomatisasi tugas untuk tugas administrasi tetapi sekarang telah berkembang menjadi lintas platform dan dapat digunakan untuk berbagai tugas.

Hal yang membuat PowerShell unik adalah menerima dan mengembalikan objek .NET, bukan teks. Fakta ini memudahkan untuk menghubungkan perintah yang berbeda dalam seri, dalam alur.

Bahkan kemudian, Anda mungkin perlu memijat hasilnya sedikit.

Untuk apa PowerShell dapat digunakan?

Penggunaan PowerShell telah berkembang sejak hari-hari ketika itu hanya Windows. Ini masih digunakan untuk otomatisasi tugas Windows, tetapi hari ini, Anda dapat menggunakan untuk berbagai tugas seperti:

  • Manajemen cloud. PowerShell dapat digunakan untuk mengelola sumber daya cloud. Misalnya, Anda dapat mengambil informasi tentang sumber daya cloud, serta memperbarui atau menyebarkan sumber daya baru.
  • CI/CD. Ini juga dapat digunakan sebagai bagian dari alur Integrasi Berkelanjutan/Penyebaran Berkelanjutan.
  • Mengotomatiskan tugas untuk Direktori Aktif dan Exchange. Anda dapat menggunakannya untuk mengotomatiskan hampir semua tugas di Windows seperti membuat pengguna di Direktori Aktif dan kotak surat di Exchange.

Ada lebih banyak area penggunaan tetapi daftar sebelumnya memberi Anda petunjuk bahwa PowerShell telah datang jauh.

Siapa yang menggunakan PowerShell?

PowerShell sangat kuat dan banyak orang, bekerja dalam banyak peran, dapat mendapat manfaat dari menggunakannya. Secara tradisional, PowerShell telah digunakan oleh peran Administrator Sistem tetapi sekarang digunakan oleh orang-orang yang menyebut diri Mereka DevOps, Cloud Ops, dan bahkan Pengembang.

Cmdlet Powershell

PowerShell dilengkapi dengan ratusan perintah yang telah diinstal sebelumnya. Perintah PowerShell disebut cmdlet; diucapkan sebagai command-lets.

Nama setiap cmdlet terdiri dari pasangan Kata Kerja-Kata Benda . Contohnya:Get-Process Konvensi penamaan ini memudahkan untuk memahami apa yang dilakukan cmdlet. Ini juga memudahkan untuk menemukan perintah yang Anda cari. Saat mencari cmdlet untuk digunakan, Anda dapat memfilter kata kerja atau kata benda.

Menggunakan cmdlet untuk menjelajahi PowerShell

Ketika Anda pertama kali mengambil PowerShell, mungkin terasa mengintimidasi karena tampaknya ada begitu banyak hal yang perlu dipelajari. PowerShell dirancang untuk membantu Anda belajar sedikit demi sedikit, sesuai kebutuhan Anda.

PowerShell menyertakan cmdlet yang membantu Anda menemukan PowerShell. Dengan menggunakan ketiga cmdlet ini, Anda dapat menemukan perintah apa yang tersedia, apa yang mereka lakukan, dan jenis apa yang mereka operasikan.

  • Get-Verb. Menjalankan perintah ini mengembalikan daftar kata kerja yang dipatuhi sebagian besar perintah. Respons mencakup deskripsi tentang apa yang dilakukan kata kerja ini. Karena sebagian besar perintah mengikuti penamaan ini, perintah menetapkan ekspektasi pada apa yang dilakukan perintah. Ini membantu Anda memilih perintah yang sesuai dan apa yang harus diberi nama perintah, jika Anda membuatnya.
  • Get-Command. Perintah ini mengambil daftar semua perintah yang diinstal pada komputer Anda.
  • Get-Member. Ini beroperasi pada output berbasis objek dan dapat menemukan objek, properti, dan metode apa yang tersedia untuk perintah.
  • Get-Help. Memanggil perintah ini dengan nama perintah sebagai argumen menampilkan halaman bantuan yang menjelaskan berbagai bagian perintah.

Dengan menggunakan perintah ini, Anda dapat menemukan hampir semua yang perlu Anda ketahui tentang PowerShell.

Kata kerja

Kata kerja adalah konsep penting di PowerShell. Ini adalah standar penamaan yang diikuti sebagian besar cmdlet. Ini juga merupakan standar penamaan yang anda harapkan untuk diikuti ketika Anda menulis perintah Anda sendiri. Idenya adalah kata kerja mengatakan apa yang Anda coba lakukan, seperti membaca atau mungkin mengubah data. PowerShell memiliki daftar kata kerja standar. Untuk mendapatkan daftar lengkap semua kata kerja yang mungkin, gunakan Get-Verb cmdlet :

Get-Verb

Output dari menjalankannya, adalah daftar panjang kata kerja. Apa yang informatif tentang respons, adalah bahwa itu juga menunjukkan lebih banyak konteks, apa kata kerja seperti itu dimaksudkan untuk dilakukan. Berikut adalah baris pertama output:

Verb        AliasPrefix Group          Description
----        ----------- -----          -----------
Add         a           Common         Adds a resource to a container, or attaches an item to ano…

Temukan perintah dengan Get-Command

Get-Command Cmdlet mengembalikan daftar semua perintah yang tersedia yang diinstal pada sistem Anda. Daftar yang Anda dapatkan kembali, cukup besar sekalipun. Untuk mempermudah pencarian perintah, Anda dapat membatasi jumlah informasi yang kembali. Anda dapat memfilter respons menggunakan parameter atau dengan menggunakan cmdlet pembantu.

Filter pada nama

Anda dapat memfilter output , Get-Commandmenggunakan parameter yang berbeda. Pemfilteran dengan cara ini, adalah tentang mengkueri properti tertentu pada perintah . Idenya adalah Anda menentukan properti apa yang ingin Anda filter, lalu Anda menyediakan string yang ingin Anda cocokkan. Oleh karena itu, Anda akan mendapatkan perbandingan yang terlihat seperti ini:

Get-Command -Name '*Process'

Pada titik ini, pemfilteran mencoba melakukan pencocokan yang tepat terhadap argumen string yang disediakan. Jika Anda ingin memiliki lebih banyak fleksibilitas, dalam perbandingan, Anda dapat menggunakan kartubebas *, yang melakukan pencocokan pola. Kode berikut akan mencari semua perintah, siapa nama yang diakhir dengan proses:

Di atas, parameter digunakan -Name untuk memfilter. Selain -Name, Anda juga dapat memfilter dan -ParameterName-Type, misalnya.

Pemfilteran pada Kata Benda dan Kata Kerja

Anda telah melihat bagaimana Anda dapat memfilter pada -Name, dan bahwa ada parameter lain yang juga dapat Anda filter. Kata kerja dan kata benda adalah sesuatu yang dapat Anda filter juga. Pemfilteran tersebut menargetkan bagian dari nama perintah.

  • Filter pada kata kerja. Bagian kata kerja dari nama perintah adalah bagian paling kiri. Dalam perintah Get-Process, bagian kata kerjanya adalah Get. Untuk memfilter pada bagian kata kerja, tentukan -Verb sebagai parameter seperti ini:

    Get-Command -Verb 'Get'
    

    Perintah di atas akan mencantumkan semua perintah di mana bagian kata kerja adalah Get.

  • Filter pada kata benda. Bagian paling kanan dari perintah adalah bagian kata benda. Di mana kata kerja harus berada di antara kata kerja yang dikembalikan dari pemanggilan Get-Verb, kata benda bisa apa saja. Dalam perintah Get-Process, bagian kata benda adalah Process. Untuk memfilter pada kata benda, tentukan -Noun sebagai parameter dan argumen string, seperti:

    Get-Command -Noun U*
    

Hanya menggunakan kata kerja, atau kata benda, untuk memfilter, mungkin menyebabkan hasil besar masih. Untuk mempersempit pencarian Anda, ada baiknya untuk menggabungkan dua parameter seperti contoh di bawah ini:

Get-Command -Verb Get -Noun U*

Hasil dari hal di atas terlihat seperti:

CommandType     Name                         Version    Source
-----------     ----                         -------    ------
Cmdlet          Get-UICulture                7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Get-Unique                   7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Get-Uptime                   7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Get-UsageAggregates          2.0.0      Az.Billing

Dengan demikian, Anda mempersempit output cukup sedikit dengan mengetahui kata kerja dan apa yang disebut.

Menggunakan cmdlet pembantu untuk memfilter hasil

Selain menggunakan parameter untuk difilter, Anda juga dapat menggunakan perintah untuk membantu Anda dengan tugas ini. Berikut adalah beberapa perintah yang dapat bertindak sebagai filter:

  • Select-Object. Ini adalah perintah yang sangat serbaguna yang membantu Anda memilih properti tertentu dari satu atau beberapa objek. Selain itu, menggunakan parameternya, Anda dapat membatasi respons yang Anda dapatkan kembali. Berikut adalah contoh digunakan Select-Object untuk meminta sejumlah rekaman terbatas:

    Get-Command | Select-Object -First 3
    

    Hasil dari hal di atas adalah tiga perintah pertama, dihitung dari bagian atas. Hasilnya terlihat seperti ini:

    CommandType     Name                                               Version    Source
    -----------     ----                                               -------    ------
    Alias           Add-AdlAnalyticsDataSource                         1.0.2      Az.DataLakeAnalytics
    Alias           Add-AdlAnalyticsFirewallRule                       1.0.2      Az.DataLakeAnalytics
    Alias           Add-AdlStoreFirewallRule                           1.3.0      Az.DataLakeStore
    

    Ada baiknya melihat ke perintah ini lebih lanjut karena dapat melakukan lebih banyak dokumen Select-Object

  • Where-Object. Objek di mana membantu Anda memilih objek dari koleksi berdasarkan nilai properti. Perintah mengambil ekspresi di mana Anda dapat mengekspresikan kolom/s apa yang ingin Anda cocokkan dengan nilai apa. Untuk menemukan semua objek proses di mana ProcessName dimulai dengan p, Anda dapat menggunakan Where-Object seperti itu:

    Get-Process | Where-Object {$_.ProcessName -like "p*"}
    

    Di atas, Get-Process cmdlet menghasilkan kumpulan objek proses. Untuk memfilter respons, Anda menyalurkan perintah Where-Object. Piping berarti bahwa dua perintah atau lebih terhubung melalui karakter pipa | . Idenya adalah bahwa output dari satu perintah berfungsi sebagai input untuk perintah berikutnya, seperti yang dibaca dari kiri ke kanan. Where-Object menggunakan ekspresi untuk memfilter. Ekspresi menggunakan argumen operator dan string yang berisi ekspresi kartubebas -like .

Menjelajahi objek dengan Get-Member

Setelah Anda dapat menemukan cmdlet yang Anda inginkan, Anda ingin tahu lebih banyak tentang apa yang dihasilkannya, output. Outputnya menarik karena beberapa alasan seperti:

  • Mandiri. Anda mungkin hanya menjalankan satu cmdlet dan Anda ingin menampilkan output dalam beberapa jenis laporan. Pertanyaan yang perlu ditanyakan pada diri sendiri adalah apakah perintah menghasilkan output yang berfungsi untuk Anda, atau jika Anda perlu mengubahnya.
  • Saat digunakan dalam alur. Biasanya di PowerShell menyambungkan beberapa perintah dalam alur, untuk mengambil data, memfilter, dan akhirnya mengubahnya. Agar perintah sesuai dengan alur, Anda harus melihat input dan output apa yang dihasilkannya. Idenya adalah bahwa output perintah digunakan sebagai input perintah lain.

Get-Member Cmdlet menampilkan jenis, properti, dan metode objek hasil. Pipa output yang ingin Anda periksa ke Get-Member.

Get-Process | Get-Member

Hasilnya menampilkan jenis yang dikembalikan sebagai TypeName dan kemudian semua properti dan metode objek. Berikut adalah kutipan dari hasil seperti itu:

TypeName: System.Diagnostics.Process

Name        MemberType     Definition
----        ----------     ----------
Handles     AliasProperty  Handles = Handlecount
Name        AliasProperty  Name = ProcessName

Objek biasanya memiliki banyak properti dan metode, untuk lebih mudah menemukan apa yang Anda cari, Anda dapat memfilter hasilnya. Dengan menggunakan parameter -MemberType, Anda dapat menentukan ke, misalnya melihat semua metode, seperti dalam contoh di bawah ini:

Get-Process | Get-Member -MemberType Method

Saat Anda mendapatkan respons kembali, PowerShell biasanya hanya menampilkan beberapa properti. Dalam respons di atas, Name, MemberType dan Definition ditampilkan. Untuk mengubah tampilan tersebut, Anda dapat menggunakan cmdlet Select-Object. Select-Object memungkinkan Anda menentukan kolom apa yang ingin Anda lihat. Anda dapat memberinya nama kolom, daftar yang dipisahkan koma, atau kartubebas *. Berikut adalah contoh di mana Select-Object digunakan untuk mengambil Name dan Definition:

Get-Process | Get-Member | Select-Object Name, Definition

Pencarian berdasarkan jenis

Cara lain untuk mendekati pencarian perintah yang Anda inginkan, adalah dengan mencari perintah yang semuanya beroperasi pada jenis yang sama. Saat Anda menggunakan Get-Member, Anda mendapatkan jenis yang dikembalikan sebagai baris pertama respons seperti ini:

TypeName: System.Diagnostics.Process

Sekarang Anda dapat menggunakan jenis ini dan mencari perintah seperti ini:

Get-Command -ParameterType Process

Hasil dari memanggil hal di atas adalah daftar dengan perintah yang hanya beroperasi pada Process jenis :

CommandType     Name                         Version    Source
-----------     ----                         -------    ------
Cmdlet          Debug-Process                7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Enter-PSHostProcess          7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Get-Process                  7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Get-PSHostProcessInfo        7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Stop-Process                 7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Wait-Process                 7.0.0.0    Microsoft.PowerShell.Managem…

Seperti yang Anda lihat, mengetahui jenis perintah, dapat sangat mempersempit pencarian Anda setelah perintah yang mungkin menarik bagi Anda.

Latihan - memanggil perintah pertama Anda

Dalam latihan ini, Anda akan mempelajari cara menjalankan perintah pertama Anda.

  1. Mulai konsol PowerShell dengan mengetik pwsh:

    pwsh
    
  2. Jalankan yang berikut ini $PSVersionTable.PSVersion:

    $PSVersionTable.PSVersion
    

    Output Anda terlihat mirip dengan ini:

    Major  Minor  Patch  PreReleaseLabel BuildLabel
    -----  -----  -----  --------------- ----------
    7      1      0
    

    Congrats, Anda telah berhasil menjalankan perintah pertama Anda dan bisa mendapatkan informasi tentang versi PowerShell apa yang diinstal pada sistem Anda.

Dalam latihan ini, tujuan Anda adalah mempelajari lebih lanjut tentang perintah. Dengan demikian, Anda juga akan menemukan hal-hal seperti jenis apa yang dioperasikannya dan perintah serupa lainnya yang beroperasi pada jenis yang sama.

  1. Pastikan Anda telah memulai shell PowerShell

  2. Jalankan perintah Get-Process:

    Get-Process | Get-Member | Select-Object TypeName -Unique
    

    Outputnya menyerupai ini:

    TypeName
    --------
    System.Diagnostics.Process
    --------
    

    Apa yang Anda dapatkan kembali, adalah jenis yang dikembalikan oleh perintah Get-Command. Pada titik ini Anda sekarang dapat mengetahui perintah lain apa yang juga beroperasi pada jenis ini.

  3. Jalankan perintah Get-Command:

    Get-Command -ParameterType Process
    

    Outputnya menyerupai ini:

    CommandType     Name                         Version    Source
     -----------     ----                        -------    ------
     Cmdlet          Debug-Process               7.0.0.0    Microsoft.PowerShell.Managem…
     Cmdlet          Enter-PSHostProcess         7.1.0.0    Microsoft.PowerShell.Core
     Cmdlet          Get-Process                 7.0.0.0    Microsoft.PowerShell.Managem…
     Cmdlet          Get-PSHostProcessInfo       7.1.0.0    Microsoft.PowerShell.Core
     Cmdlet          Stop-Process                7.0.0.0    Microsoft.PowerShell.Managem…
     Cmdlet          Wait-Process                7.0.0.0    Microsoft.PowerShell.Managem…
    

    Selamat, Anda telah berhasil menemukan perintah lain yang beroperasi pada jenis Processyang sama. Menggunakan Get-Member adalah titik awal yang baik untuk memahami perintah lain apa yang harus Anda periksa berikutnya.

Ringkasan

Di bagian pertama ini, Anda mempelajari apa itu PowerShell dan area apa yang dapat digunakan. Anda di mana kemudian mengajar tentang cmdlet dan khususnya Get-Command, Get-Verb dan Get-Member. Mengetahui cmdlet ini penting karena mengajarkan Anda cara belajar. Di bagian berikutnya, Anda akan mempelajari cara menggunakan sistem bantuan yang kuat.

Sumber Daya Tambahan: