Windows PowerShell (Monad) Has Arrived

I just got out of Bob Muglia’s keynote speech where he formally announced Windows PowerShell (previously known as Monad).  The key things he announced are: Monad (MSH) has a new name: Windows PowerShell Windows PowerShell will RTW (Web download) in Q4 2006 RC1 of Windows PowerShell is available today Exchange 2007 and MOM will be…

39

Exposing the Power of .NET in a Admin-friendly way

One of our primary goals for Monad was to:  “Expose the power of .NET in an Admin-friendly way”.  The challenges of systems administration are large and growing at the same time organizations are under ever more pressure to reduce costs and do more with less.  That was true 10 years ago, it is true now,…

2

Comparative Examples in MSH and KSH

  Most shells (such as Windows CMD.EXE and the UNIX shells SH, KSH, CSH, and BASH) operate by executing a command or utility in a new process, and presenting the results (or errors) to the user as text. Text-based processing is the way in which system interaction is done with these shells. Over the years,…

11

Why did you do that? $VAR/ {} / Weak Intellisense

I strongly encourage people to let us know where we could be doing better and to let us know if we are getting into the weeds.  I believe that being open to such bad news is core to the the virtuous cycle of self improvement so such feedback provides opportunities to reflect and make changes when appropriate.  Other…

12

Sunday morning drive with my hair on fire: Types/Community/Synthetic types/Democracy/Cool XML tricks

Exploring types is a pain! Monad provides Get-Member which makes it pretty nice to explore an OBJECT but if you want to explore that object’s type, you have to use the capabilities of the System.RuntimeType class. Let me make that distinction a little clearer.  Imagine that I’ve got some xml:$x=[XML]”<a><b>TEST</b><a>” I can explore this object…

2

How does Match-String with with Pipelines of objects?

In our newsgroup (Microsoft.Public.Windows.Server.Scripting) , Vasu asked about how match-string works in pipelines: Here is what I observe:1. MSH C:\> get-alias ..truncated..Alias           ri                                   remove-itemAlias           rni                                  rename-item..truncated..2. MSH C:\> get-alias | match-string ririMSH C:\> The question is why did the string “ri” get emitted instead of the alias record. So what is going on here? Match-String works on…

8

Is it safe to use ALIASES in scripts?

In our newsgroup (Microsoft.Public.Windows.Server.Scripting) , Mark Ayers asked the question:> Shouldn’t best practice for scripts be full command name? The answer is YES, NO, and MAYBE. YES – Full names provide the most readable experience for scripts.  This is very important.  People often throw the rock at Perl saying that it is a “write-only language” meaning that…

5

Verb-Noun vs Noun-Verb

Kurt asked the question “why not Noun-Verb vs Verb-Noun” in his post: http://blogs.msdn.com/monad/archive/2006/02/16/533522.aspx#574708 There are lots of answers to this some better than others.  Let me rattle off a couple of them: VMS DCL/AS400.  Issac Newton once said that if he could see farther, it was because he was standing on the shoulders of giants.  So…

6

Monitor the Event Log

Administrators often want to monitor the event logs and look for specific error conditions.  The most capable way to do this, of course, is to use a dedicated monitoring application such as Microsoft Operations Manager, or get down-and-dirty with the Win32 API NotifyChangeEventLog.  However, Monad can be used for simple applications. Suppose you are looking…

2