Mungkin masih banyak juga yang bingung soal kegunaan dari Windows PowerShell. Shell secara umum digunakan untuk interaksi antara pengguna dengan operating system. Selama ini, mungkin kita sering menggunakan Shell di lingkungan UNIX. Windows PowerShell merupakan Interactive Shell dan Scripting Language yang dibuat oleh Microsoft berbasiskan .NET programming.
Banyak juga yang bertanya-tanya, untuk apa PowerShell ini digunakan. OK, sejauh saya pernah menggunakan PowerShell, ternyata ada beberapa manfaat (terutama di Exchange Server 2007 yang support Exchange Management Shell) yang akan saya ceritakan di baris terakhir.
Secara gambar, arsitektur PowerShell adalah seperti berikut:
Cara kerjanya secara umum adalah kita bisa mengambil suatu properties (menggunakan perintah get-), melakukan perubahan terhadap sesuatu (menggunakan perintah set-), menambahkan sesuatu (menggunakan perintah add-), membuang sesuatu (menggunakan perintah remove-), dan perintah-perintah khusus lainnya. perintah ini juga bisa diperlakukan spesifik dengan menambahkan beberapa parameter setelah baris perintah dan juga support "Pipeline Command", contoh: get-childitem | fl
PowerShell pada lingkungan Operating System, bisa digunakan untuk melakukan kontrol terhadap OS itu sendiri, sedangkan pada Windows Server, bisa dilakukan juga administering terhadap Active Directory. Pada Operating System, Windows PowerShell bisa dijalankan pada Operating System Windows XP, Windows Vista, Windows Server 2003 serta Windows Server 2008. Untuk Windows XP, Windows Vista dan Windows Server 2003, installernya bisa di download di microsoft.com (http://www.microsoft.com/beta/downloads/Search.aspx?SearchText=windows+powershell), sedangkan untuk Operating System Windows Server 2008, bisa di-enable kan melalui "Add Features" dari Server Manager (lihat gambar berikut).
Berikut ada satu capture dimana saya test menggunakan PowerShell pada Windows Vista SP1 saya (menampilkan text dari notepad, menampilkan isi directory secara table dan secara list) :
Selain untuk Operating System, beberapa aplikasi yang juga support untuk Shell Scripting melalui PowerShell ini adalah Exchange 2007, System Center Operation Manager 2007, System Center Virtual Machine Manager. Kebetulan untuk Exchange 2007, saya sudah mencoba banyak hal disitu dan sangat berguna.
Di Exchange 2007, Shellnya dinamakan Exchange Management Console. Selain untuk administering, Exchange Management Shell juga bisa digunakan untuk troubleshooting dan juga reporting sederhana yang bisa diexport ke *.txt file. Sebelumnya saya juga menyebutkan bahwa kita bisa mendapatkan informasi dari sesuatu sampai ke attributenya, inilah yang menjadikan Shell berguna ketika pada Mode GUI kita mengalami kesulitan untuk mencari suatu attribute. Berikut contoh capture dari Exchange Management Shell dimana saya mengambil attribute dari Offline Address Book dalam format list (Get-OfflineAddressBook | fl):

Isi attribute tersebut juga bisa kita buang ke *.txt file dengan menambahkan 1 perintah jadi seperti berikut:
Get-OfflineAddressBook | fl >> c:\isiOAB.txt
Nah, itu dari sisi Administering dan Troubleshooting yang tentunya berguna untuk kalangan IT Pro. Untuk kalangan developer, PowerShell juga bisa menjadi mata pencaharian baru, terutama jika built-in tools yang ada masih dianggap kurang, kita bisa menambahkan perintah baru ataupun membuat command-command yang sudah ada menjadi suatu automatisasi scripting secara mudah. Mengapa? karena dibangun di atas .NET, maka sangat kompatibel dengan .NET framework dari Visual Studio.
Terakhir, sebenarnya pada Grand Launch Server Wave 2008 kemarin, saya ada track session singkat di Open Stage dan rencananya saya mau membawakan overview mengenai Windows PowerShell, namun karena satu dan lain hal akhirnya batal. Nah, slide singkatnya (9 slide), daripada dibuang sayang, saya uploadkan saja ke WSS-ID, bisa di download di:
http://wss-id.org/files/folders/raymond/entry6601.aspx
Semoga berguna...
Cheers,
Raymond Engelbert