Sunday, June 25, 2006

Powershell & LINQ ...

Out of the new stuffs which Microsoft is working on, my favorites are PowerShell and LINQ. Both are really interesting in its own ways.

PowerShell -- This was previously called as "Monad". Its a new command-line shell and task-based scripting technology that provides comprehensive control and automation of system administration tasks.

I guess this is the answer from Microsoft for Unix / Linux. That is, PS is as powerful (if not more) as Bash controls in Unix.

As of now, Windows command line tool is cmd.exe (command prompt based on DOS) but from what I have understood going forward in the next version of Windows it would be replaced with PowerShell. The bottomline is, Powershell would become the command line tool for the next generation of Windows.

You need to have .NET Framework 2.0 in your box if you want to get your hands dirty with this.

Interested in knowing more about this? Check out www.microsoft.com/powershell

Find below a sample script which I tried out with PowerShell:

get-childitem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall foreach-object {If ($_.GetValue("DisplayName")-eq $null) {write-output $_.MshChildName } else {write-output $_.GetValue("DisplayName")}}

This script lists the installed products on a machine by reading the registry.

An IDE by name "PowerShellIDE has been already developed for this by script internals.

Useful links:

1. http://computerperformance.co.uk/powershell/index.htm
2. http://scripts.readify.net/Scripts.aspx

LINQ (Language Integrated Query)

Till date if we want to manipulate relational data stored in a database (for ex: SQL Server 2000) one need to master TSQL. Similarly if the data has been stored as a flat files in the form of XML files then one need to understand the nuances of xpath, xquery etc., Though we are basically trying to manipulate DATA stored in different datasources why should we learn two different languages?

Sometime back, the same question has been raised internally in Microsoft and the answer is LINQ :) Using LINQ, one can write queries in C# or Visual Basic without having to use other languages, such as SQL or XQuery etc.,

This is really cool and the way to go. Anyway this is going to be released along with Windows Vista. I guess it would take atleast another 6 months to 1 year for this to be released.

Technorati tags: , , , , ,

3 comments:

DontBotherMeWithSpam said...

I think it'd be great if Powershell had a LINQ support built-in so that it'd be possible to query data interactively thru PowerShell(kind of like osql.exe) ;)

Vadivel said...

To my knowledge both are conceptually identical products.

Anonymous said...

You're missing a | after "uninstall":

get-childitem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | foreach-object {If ($_.GetValue("DisplayName")-eq $null) {write-output $_.MshChildName } else {write-output $_.GetValue("DisplayName")}}