PowerShell Team

Automating the world one-liner at a time…

Comparative Examples in MSH and KSH
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, a large number of text ...
Sunday morning drive with my hair on fire: Types/Community/Synthetic types/Democracy/Cool XML tricks
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&...
A bit about Scriptblocks
A bit about Scriptblocks
When scripting with MSH one of the most useful things to know about are scriptblocks (lambda functions).  Scriptblocks are compiled bits of MSH script which you can pass around and invoke whenever you feel like it.  They turn out to be so useful that if you look at the cmdlets you’ll find a few that take scriptblocks (foreach-...
Comments are closed.0
Monad portal in Script Center.
Monad portal in Script Center.
Most scripters are familar with Microsoft script center.  Script center now has a portal for Microsoft Command Shell.  You can access the portal at http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx -Arul Kumaravel [Edit: Monad has now been renamed to Windows PowerShell. This script or discussion may require slight ...
Comments are closed.0
PINVOKE or accessing WIN32 APIs
PINVOKE or accessing WIN32 APIs
In the very early days of Monad, we focused on a world where everyone would publish Cmdlets and providers.  Cmdlets and providers were designed around providing the best user experience.  They provide the right, high-level, task-oriented abstractions that users want while also providing the semantic benefits that ...
Comments are closed.0
Using-Culture -Culture culture -Script {scriptblock}
Using-Culture -Culture culture -Script {scriptblock}
One of the traditional challenges with scripting is dealing with different CULTURES.  Imagine the case where you are writing a script and you'll have to parse datetime string from different cultures.  If it was just one culture, you could set the process culture and be done with it.  Here is a function that allows you to...
Comments are closed.0
Debugging Monad Scripts, Part 7 (Final): How Traps Work
Debugging Monad Scripts, Part 7 (Final): How Traps Work
Did your command or script fail and/or report an error?  We hope to have a proper script debugger in a future version, but until then, MSH has some handy features to help you figure out what went wrong.  In this series of blog entries, I will present some of those features.  Thanks to Jim Truher [MSFT], Bruce Payette [MSFT], ...
Comments are closed.0
Debugging Monad Scripts, Part 6: Trace-Expression, Breakpoint Script
Debugging Monad Scripts, Part 6: Trace-Expression, Breakpoint Script
Did your command or script fail and/or report an error?  We hope to have a proper script debugger in a future version, but until then, MSH has some handy features to help you figure out what went wrong.  In this series of blog entries, I will present some of those features.  Thanks to Jim Truher [MSFT], Bruce Payette [MSFT], ...
Comments are closed.0
Debugging Monad Scripts, Part 5: Preferences and Commandline Options
Debugging Monad Scripts, Part 5: Preferences and Commandline Options
Did your command or script fail and/or report an error?  We hope to have a proper script debugger in a future version, but until then, MSH has some handy features to help you figure out what went wrong.  In this series of blog entries, I will present some of those features.  Thanks to Jim Truher [MSFT], Bruce Payette [MSFT], ...
Comments are closed.0
Debugging Monad Scripts, Part 4: set-mshdebug
Debugging Monad Scripts, Part 4: set-mshdebug
Did your command or script fail and/or report an error?  We hope to have a proper script debugger in a future version, but until then, MSH has some handy features to help you figure out what went wrong.  In this series of blog entries, I will present some of those features.  Thanks to Jim Truher [MSFT], Bruce Payette [MSFT], ...
Comments are closed.0