PowerShell ' Variabel Otomatis ” sangat penting untuk manajemen sistem, otomatisasi, dan aktivitas pembuatan skrip. Variabel ini dibangun oleh runtime PowerShell dan berfungsi sebagai placeholder untuk menyimpan dan mereferensikan informasi tertentu selama eksekusi skrip atau perintah. Memahami dan memanfaatkan variabel otomatis ini secara efektif dapat sangat meningkatkan efisiensi dan fungsionalitas skrip PowerShell.
Artikel ini bertujuan untuk mengeksplorasi konsep 'Variabel Otomatis' di PowerShell, signifikansinya, dan bagaimana variabel tersebut dapat dimanfaatkan dalam berbagai skenario.
Apa itu Variabel Otomatis di PowerShell?
Untuk memulai, mari selidiki definisi ' Variabel Otomatis ”. Variabel ini sudah ditentukan sebelumnya dan dibuat secara otomatis oleh PowerShell selama eksekusi skrip. Ini melayani tujuan yang berbeda, termasuk memberikan informasi tentang sistem, argumen baris perintah, detail terkait skrip, dan banyak lagi.
PowerShell menawarkan beberapa 'Variabel Otomatis' dan masing-masing memiliki tujuan berbeda dalam eksekusi skrip. Variabel tersebut adalah sebagai berikut:
1. $PSVersionTable
Salah satu variabel otomatis mendasar di PowerShell adalah “ $PSVersionTable ”. Variabel ini memungkinkan pengembang skrip untuk memastikan versi PowerShell yang digunakan, yang dapat menjadi sangat penting saat mempertimbangkan kompatibilitas dan ketersediaan fitur dan fungsionalitas tertentu.
Properti berikut dikaitkan dengan variabel ini:
Versi PS: Mengembalikan nomor versi PowerShell.
Edisi PS: Untuk PowerShell 4 dan sebelumnya, serta PowerShell 5.1 pada versi Windows berfitur lengkap, properti ini memiliki nilai 'Desktop'. Karakteristik ini memiliki nilai Core untuk PowerShell 6 dan yang lebih baru, serta Windows PowerShell 5.1 untuk edisi low-footprint seperti Windows Nano Server atau Windows IoT.
GitCommitId: Mengambil ID komit GitHub file sumber.
ANDA: Mencatat informasi tentang sistem komputer yang digunakan PowerShell.
Platform: Mengembalikan platform pendukung sistem operasi. Unix memiliki nilai di Linux dan macOS. Lihat $IsMacOs dan $IsLinux.
PSVersi yang Kompatibel: Versi PowerShell yang kompatibel dengan versi saat ini dikembalikan.
Versi PSRemotingProtocol: Mengembalikan nomor versi untuk protokol manajemen jarak jauh PowerShell.
Versi Serialisasi: Mengembalikan versi metode serialisasi.
Versi WSManStack: Mengembalikan nomor versi tumpukan WS-Management.
$ Tabel Versi PS
2. $Arg
Variabel otomatis penting lainnya di PowerShell adalah “ $Args ”, yang berisi larik argumen baris perintah yang diteruskan ke skrip atau fungsi. Variabel ini memberdayakan pengembang untuk memproses dan memanipulasi argumen yang diberikan secara dinamis di dalam skrip mereka.
Saat mendefinisikan suatu fungsi, Anda dapat menggunakan kata kunci 'param' untuk mendeklarasikan parameter atau Anda dapat menambahkan daftar parameter yang dipisahkan koma dalam tanda kurung setelah nama fungsi. Variabel '$Args' tindakan peristiwa menyimpan objek yang berfungsi sebagai placeholder untuk parameter peristiwa dari peristiwa yang sedang ditangani:
untuk setiap ( $arg di dalam $Args ) {Tulis-Host $arg
}
3. $MyInvocation
“ $MyInvokasi ” variabel memberikan data latar belakang penting tentang skrip atau prosedur yang sedang berjalan. Ini menawarkan properti seperti nama skrip, nomor baris skrip, dan apakah skrip dijalankan secara interaktif atau non-interaktif. Properti ini membantu pengembang skrip menerapkan logika percabangan, menentukan mekanisme penanganan kesalahan, atau menghasilkan pencatatan dan pelaporan yang bermakna:
$ Doa Saya
4. $Kesalahan
Variabel otomatis yang kurang dikenal “ $Kesalahan ”, secara efektif menangkap pesan kesalahan atau pengecualian apa pun yang terjadi selama eksekusi skrip. “$Error” dapat diakses untuk mengambil detail error tertentu seperti pesan pengecualian, pelacakan tumpukan, atau kode error, memungkinkan analisis detail dan debugging.
Kesalahan terbaru diwakili oleh objek kesalahan pertama dalam larik “ $Kesalahan[0] “. Anda dapat menggunakan opsi umum ErrorAction dengan nilai 'Ignore' untuk menghentikan kesalahan ditambahkan ke larik '$Error'.
Misalkan kita mengetik perintah yang akurat:
aku p [ onfig
Sekarang, jika kita memasukkan cmdlet “$Error”:
$ Kesalahan
5. $PSCmdlet
Saat bekerja dengan modul PowerShell, variabel otomatis “ $PSCmdlet ” mulai berlaku. Variabel ini menyediakan akses ke instance cmdlet atau fungsi saat ini yang dipanggil, memfasilitasi interaksi langsung dengan properti dan metodenya.
Dengan menggunakan “$PSCmdlet”, pengembang skrip tingkat lanjut dapat menyempurnakan dan menyempurnakan perilaku modul dengan memperluas atau memodifikasi fungsionalitas bawaan. Anda dapat menggunakan atribut dan metode objek dalam cmdlet atau kode fungsi sebagai respons terhadap kriteria penggunaan:
fungsi typeof-psCmdlet {[ cmdletBinding ( ) ] param ( )
gema 'jenis ` $psCmdlet adalah $($psCmdlet.GetType() .Nama lengkap)'
}
typeof-psCmdlet
Selain variabel yang disebutkan di atas, PowerShell mencakup variabel otomatis seperti $HOME, $PROFILE, $PWD, dan banyak lagi, yang memiliki tujuan berbeda, seperti mengakses input, melacak kesalahan, mengambil informasi lingkungan, mengelola parameter, dan banyak lagi. Variabel ini tercantum di bawah ini:
Variabel Otomatis | Keterangan |
$$ | Memegang token terakhir di baris sebelumnya yang diterima oleh sesi PowerShell. |
$? | Menyimpan status eksekusi dari perintah terakhir. |
$^ | Berisi token pertama dari baris terakhir yang diterima oleh sesi. |
$_ | Merupakan objek saat ini dalam pipa. |
$ConsoleFileName | Berisi jalur file konsol (.psc1) yang terakhir digunakan dalam sesi. |
$EnabledExperimentalFeatures | Berisi daftar fitur eksperimental yang diaktifkan. |
$Acara | Berisi objek 'PSEventArgs' yang mewakili peristiwa yang sedang diproses. |
$EventArgs | Berisi argumen kejadian pertama dari kejadian yang sedang diproses. |
$EventSubscriber | Mewakili pelanggan acara dari acara yang sedang diproses. |
$ExecutionContext | Mewakili konteks eksekusi host PowerShell. |
$salah | Merupakan nilai Boolean 'False'. |
$untuk setiap | Berisi enumerator dari loop 'untuk-Setiap'. |
$RUMAH | Berisi path lengkap dari direktori home pengguna. |
$Host | Merupakan aplikasi host saat ini untuk PowerShell. |
$masukan | Berfungsi sebagai pencacah untuk semua input yang diteruskan ke fungsi atau skrip. |
$IsCoreCLR | Menunjukkan jika sesi berjalan pada .NET Core Runtime (CoreCLR). |
$IsLinux | Menunjukkan jika sesi berjalan pada sistem operasi Linux. |
$IsMacOS | Menunjukkan jika sesi berjalan pada sistem operasi MacOS. |
$IsWindows | Mengidentifikasi apakah sesi berjalan pada sistem operasi Windows. |
$LASTEXITCODE | Menyimpan kode keluar dari program asli terakhir atau skrip PowerShell. |
$Cocok | Berisi string yang cocok dari operator “-match” dan “-notmatch”. |
$NestedPromptLevel | Melacak level prompt saat ini dalam perintah bersarang atau skenario debug. |
$null | Merupakan nilai null atau kosong. |
$PID | Berisi pengidentifikasi proses (PID) dari sesi PowerShell. |
$PROFIL | Berisi jalur lengkap profil PowerShell untuk aplikasi pengguna dan host saat ini. |
$PSBoundParameters | Memegang kamus parameter yang diteruskan ke skrip atau fungsi dan nilainya. |
$PSCommandPath | Berisi jalur lengkap dan nama file dari skrip yang sedang dieksekusi. |
$PSCulture | Mencerminkan budaya ruang operasi PowerShell saat ini. |
$PSEdition | Berisi informasi edisi PowerShell. |
$PSHOME | Berisi path lengkap dari direktori instalasi PowerShell. |
$PSItem | Sama seperti $_, mewakili objek saat ini di dalam pipa. |
$PSScriptRoot | Berisi path lengkap dari direktori induk skrip pelaksana. |
$PSSenderInfo | Berisi informasi tentang pengguna yang memulai PSSession. |
$PSUICulture | Mencerminkan budaya antarmuka pengguna (UI) yang dikonfigurasi dalam sistem operasi. |
$PWD | Merupakan direktori kerja saat ini dari sesi PowerShell. |
$ Pengirim | Berisi objek yang menghasilkan suatu peristiwa. |
$ShellId | Berisi pengenal shell saat ini. |
$StackTrace | Menyimpan pelacakan tumpukan untuk kesalahan terbaru. |
$beralih | Berisi enumerator dari pernyataan 'Switch'. |
$ini | Mengacu pada instance kelas dalam blok skrip yang memperluas kelas. |
$benar | Merupakan nilai Boolean 'True'. |
Semua 'variabel otomatis' di PowerShell dapat ditemukan dengan menjalankan perintah di bawah ini:
Dapatkan-Variabel
Kesimpulan
“ Variabel Otomatis ” membentuk tulang punggung skrip PowerShell, yang memungkinkan pengembang memperoleh informasi tentang sistem, argumen baris perintah, konteks eksekusi skrip, dan banyak lagi. Dengan memanfaatkan variabel otomatis seperti “$PSVersionTable”, “$Args”, “$MyInvocation”, “$Error”, dan lainnya, pengembang skrip PowerShell dapat membuat praktik administrasi sistem yang disederhanakan.