Kekuatan cangkang untuk Windows

PowerShell dirancang untuk bekerja dengan cara kerja administrator, bukan pengguna akhir, menggunakan perintah dan skrip shell interaktif. Namun, Anda masih dapat menggunakan GUI MMC untuk beberapa tugas – menjalankan beberapa fungsi di MMC, lalu tekan tombol dan ada skrip yang menjalankan fungsi yang sama. PowerShell mengatasi keterbatasan cmd.exe dan menyediakan semua fungsi yang diperlukan untuk mengotomatisasi operasi sehari-hari.

Kekuatan cangkang untuk Windows

Cara kerja PowerShell

MSI instalasi PowerShell yang sangat kecil melakukan semua hal instalasi normal, menciptakan folder instalasi bernama %programfiles%\Windows PowerShell\v1.0 dan menyalin file inti PS dan dukungan alat ke dalamnya. Anda juga mendapatkan beberapa entri Registri yang diatur di bawah kunci HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1 untuk mengelola pembuatan versi (perhatikan bahwa 'v1.0' di file program dan \1 di kunci Registri).

Skrip PowerShell memiliki ekstensi file PS1, gagasannya adalah bahwa angka terakhir, di sini 1, akan berubah pada setiap versi. Jadi Anda dapat melakukan instalasi v1 dan v2 secara berdampingan, dan skrip akan menargetkan versi yang tepat. Penginstal juga menyesuaikan entri Jalur sistem, menambahkan “C:\Program Files\Windows PowerShell\v1.0\” sehingga sistem dapat menemukan powershell.exe, file utama yang dapat dieksekusi. powershell.exe sebenarnya adalah aplikasi tidak terkelola yang hanya menentukan lingkungan yang diperlukan dan kemudian secara dinamis memuat versi CLR dan shell itu sendiri yang benar, yang semuanya merupakan kode yang dikelola.

Host PowerShell diimplementasikan oleh microsoft.powershell.consolehost.dll, DLL kecil yang mendukung PowerShell interaksi konsol: consolehost.dll memanggil mesin PowerShell untuk menampilkan Command Prompt dan mengumpulkan masukan pengguna pengolahan. Sebagian besar fungsi PowerShell diimplementasikan oleh system.management.automation.dll, terletak di folder instalasi PowerShell (%Programfiles%\windows PowerShell\v1.0 secara default).

Salah satu hal yang membuat saya bersemangat sejak awal adalah bahwa tujuan utama desain produk ini adalah untuk memungkinkan administrator untuk mengakses kekuatan .NET secara admin-sentris, bukan yang berpusat pada programmer, jalan. Tapi apa maksud yang sebenarnya? Saat Anda menggunakan hampir semua alat admin, pertama-tama Anda mendapatkan satu atau beberapa objek untuk dikelola; Anda menggunakan alat tersebut untuk menetapkan konteks dan mengarahkan ke kunci Registri atau OU. Kemudian Anda melakukan sesuatu pada objek itu, misalnya, menambahkan beberapa kunci baru ke Registri, mengubah kata sandi, atau apa pun. Tindakan kedua ini juga dapat mencakup pelaporan mengenai objek dan statusnya.

Berikut adalah fragmen skrip yang memeriksa serangkaian folder untuk melihat apakah ada file tertentu, dan jika tidak, akan mencetak pesan:

$root = ls C:\ | Dimana {$_.PSIsContainer}

$folderok = 0

foreach ($dir di $root){

$nam = $dir.nama+”\md5OK”

$ok = ls $nam -ea lanjutkan secara diam-diam

jika (! $ok){ write-host “Cek MD5 hilang di $($dir.name)”}

lain {$folderok++}

}

write-host “$($root.count) dicentang, $folderok baik-baik saja”

Skrip ini pertama-tama memindai folder root drive C saya, memilih hanya folder di drive C dan menetapkan kumpulan entri ini ke variabel $root, sebuah array objek entri direktori. Kemudian skrip melihat setiap objek folder dalam array ini untuk melihat apakah berisi file bernama MD5OK (file bendera pendek yang menunjukkan bahwa semua file dalam folder ini memiliki MD5 Checksum divalidasi). Skrip menampilkan pesan untuk folder mana pun yang tidak berisi file ini, dan akhirnya mencetak ringkasan hasilnya. Objek yang akan ditindaklanjuti dipilih terlebih dahulu, kemudian diolah, dengan beberapa ringkasan pelaporan. Tentu saja, ini adalah contoh yang sangat disederhanakan, tanpa penanganan kesalahan (misalnya, apa yang terjadi jika drive C tidak memiliki entri direktori?), namun ini menggambarkan pendekatan administratif. Saya mengembangkan dan menggunakan serangkaian skrip yang mirip dengan ini untuk mengelola penyimpanan file besar (sekitar 1.500 folder, masing-masing berisi antara lima dan 50 file, berukuran 50MB hingga 500MB).