Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Microsoft PowerShell RC1

Posted by ScuttleMonkey on Tue Apr 25, 2006 05:48 PM
from the new-syntax-to-learn dept.
rst+ack writes "Microsoft has released RC1 version of PowerShell the .NET-based shell with perl-like syntax previously known as Monad or MSH. PowerShell (PS) has been covered a few times on Slashdot. Contrary to cmd.exe and Unix/Linux shells it operates on objects, not text when passing data between scripts and executables. Easy access to .NET classes allows users to create quite advanced solutions in short time. PS won't be shipped with Vista or Windows Server 2007 but it will debut with Exchange 12."
+ -
story

Related Stories

[+] Monad Shell Removed From Vista 330 comments
hggs writes "According to Stephen Toulouse at Microsoft, because of the possible virus threat that targets Monad the shell will not be included in Windows Vista. CNet is reporting that, even though Monad is not to be included on Vista, it will be included on a major server operating system for servers from Microsoft. Codenamed Longhorn server, that edition is due out by 2007." Update: 08/06 04:45 GMT by Z : As Mr. Toulouse states here, the submission here adds one and one and gets three. Monad hasn't been in Vista for about two months. The CNet article is clarifying a previous report stating that Monad could potentially be the first source of viruses in an OS which incorporated it. The interesting news about Monad in the server edition was obscured by the factually incorrect submission, which at first blush seemed to make sense. Mea Culpa.
[+] Developers: Microsoft Releases A New Monad Command Shell Beta 126 comments
Watercooler Warrior writes "Slashdot originally broke the news that a new Microsoft command shell was in the works when a reader noticed a suspicious job posting by Microsoft India. Today Microsoft released the first really usable version of the shell (codenamed Monad) to beta testers - and anyone who carefully reads the WinHEC slides about Monad will find how to join the beta and get a peek at it. The shell looks like a bunch of old-school Unix and Perl hackers were given free rein to do what they wanted with the .NET framework, and from what is known about the backgrounds of the Monad developers this is probably pretty close to the truth."
[+] Technology: Next-gen Windows Command Line Shell Now in Beta 668 comments
Suddenly_Dead writes "Microsoft's new command line shell, MSH or Monad, has entered the beta phase. Channel9 Wiki has information on how to download this (complete with Guest ID), and other related info."
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by Orrin Bloquy (898571) on Tuesday April 25 2006, @05:56PM (#15200636) Journal
    If so, sign me and Fred Savage up!
  • i don't get it. (Score:5, Interesting)

    by moochfish (822730) on Tuesday April 25 2006, @06:00PM (#15200662)
    Is it just me or does it seem insanely odd that a "shell" for an OS is a) shipped seperately and b) doesn't use text as a native data type? Maybe I'm stuck in the "past," but I always saw the shell as the barebones method for a user interact with an OS. Either this really is cutting edge (object data types) or this is just a hyped-up .NET application that is designed to *look like* the shell.
  • by expro (597113) on Tuesday April 25 2006, @06:01PM (#15200672)
    I wonder if the trademark works. They will probably have to call it Power Microsoft Shell. People will likely want to have Unix-like piping of textual results. Does this mean a Text array gets instantiated, or is it a stream object?
  • More like WMIScript (Score:5, Interesting)

    by Anonymous Coward on Tuesday April 25 2006, @06:04PM (#15200693)
    Seriously. Look at the sample scripts [microsoft.com]. Every last one of them looks like this:
    $strComputer = "."
     
    $colItems = get-wmiobject -class "Win32_UTCTime" -namespace "root\CIMV2" `
    -computername $strComputer
     
    foreach ($objItem in $colItems) {
          write-host "Day: " $objItem.Day
          write-host "Day Of Week: " $objItem.DayOfWeek
          write-host "Hour: " $objItem.Hour
          write-host "Milliseconds: " $objItem.Milliseconds
          write-host "Minute: " $objItem.Minute
          write-host "Month: " $objItem.Month
          write-host "Quarter: " $objItem.Quarter
          write-host "Second: " $objItem.Second
          write-host "Week In Month: " $objItem.WeekInMonth
          write-host "Year: " $objItem.Year
          write-host
    }
    So, we can query the Windows Management Interface, and we can write it to the console. Awesome.

    Guys, next time, think about making it do something before you put out a release candidate.
    • by Anonymous Coward on Tuesday April 25 2006, @09:49PM (#15201857)
      Unfortunately a lot of the examples on ScriptCenter are direct translations of VBScript examples. This is good in the sense that it shows how a VBScript user can migrate stuff to PowerShell. It's not, however, a good illustration of how PowerShell works. The above script can simply be written as

      get-wmiobject Win32_UTCTime

      WMI is one of the reasons we needed an object-based shell - it presents Window management information as a collection of objects. Writing code to render those objects to strings and then parse them back into objects is not realistic. We needed a shell that could deal with them directly.

      Bruce Payette
      PowerShell Technical Lead
      Microsoft
  • by brightloudnoise (102680) on Tuesday April 25 2006, @06:07PM (#15200714) Homepage
    Windows PowerS hell

    I knew it all along!
  • Come kick the tires (Score:5, Informative)

    by jsnover (890842) on Tuesday April 25 2006, @07:40PM (#15201283)
    I encourage you all to come kick the tires and find out what PowerShell really does/does not do. I think you'll be pleasantly surprised by its power and simplicity and might even like it. Many of us on the team have a deep background in UNIX and brought that into our work. Even if you don't like what we've done, trying it out will allow you to know enough to throw your rocks accurately. :-)

    http://www.microsoft.com/downloads/details.aspx?Fa milyId=2B0BBFCD-0797-4083-A817-5E6A054A85C9&displa ylang=en [microsoft.com]

    If you'd like to learn more, you can read our team blog at:
    http://blogs.msdn.com/PowerShell [msdn.com]

    Enjoy!
    Jeffrey Snover
    PowerShell Architect
    • by RebornData (25811) on Wednesday April 26 2006, @12:06AM (#15202409)
      Although I haven't played with it, I've read a bit about this shell, and there was something that bothered me about it, and I finally just put my finger on it: this thing was designed by programmers.

      I know that the line between "programmer" and "system administrator" is often blurry. And the line between "shell" and "interactive script interpreter" is as well. But when you start requiring people to understand concepts like objects (which may seem like old hat to a programmer), you're already presuming a relatively sophisticated understanding that an "average user" has no grasp of. And the .Net libraries are vast and complex... looking at some of the sample msh scripts, I understand how a windows programmer would think they were an amazingly powerful simplification, but damn there's a lot I have to know to get basic things done.

      Ye olde csh and sh are great because they provide a simple way to put programming logic around the set of operations users spend their entire day in and are already familiar with. The learning curve is very incremental: you can master the basic UNIX commands, and then start to add in variable subtitutions (!$ anyone?) and loops (foreach) and such as needed.

      In other words, the jump from basic UNIX user knowledge to simple scripting is very small, because the scripting is presented in *exactly* the same context and using the syntax the user does day-to-day work in. But as a competant windows admin who doesn't know VB and hasn't written a line of .Net code in my life, I see almost nothing familar when I read .msh scripts. It appears to require an entirely new body of knowledge to do simple things, and bears little or no relationship to the interfaces and paradigms I use day to day. Yes, I know those interfaces are graphical. Seems to me there's bound to be some way to do it (or would be if there were any logic or consistency to the organization of the everyday administative interfaces in Microsoft's products).

      Don't get me wrong... I understand that the goal of an intuitive scripting tool is in many ways at odds with providing a rich and powerful development environment that can complete with something like perl, but I had hoped there was something a little closer to "ground level" coming.

      -R
    • REXX? AppleScript? (Score:5, Interesting)

      by mccalli (323026) on Tuesday April 25 2006, @05:59PM (#15200657) Homepage
      In other words. An OOP shell.

      I don't know, it sounds a lot more like the REXX and AppleScript way of doing things to me. An application exposes a dictionary of possible actions (rephrased in OO, an application object exposes methods) and passes the results to the next REXX or AppleScript-aware application.

      Both REXX and AppleScript predate wide scale adoption of OO, so I might be off-base. It does sound very similar though, and personally I think there's room for both that approach and the classic Bourne shell-style approach.

      Cheers,
      Ian

    • I belive they have. It's called linux.
    • by PhrostyMcByte (589271) <phrosty@gmail.com> on Tuesday April 25 2006, @06:51PM (#15201013) Homepage
      I've used MSH on and off for the past 2 years or so, and I can attest to it being powerful. I'm not a big bash scripter but this sure makes some things easier than what I've experienced in Linux shells.

      The big thing is- who wants to wait 4-5 seconds for their shell to launch? And this is in 64-bit with 2 gigs of RAM and MSH ngened (ngen == cache of pre-JITed .NET code). What used to take a split second can now easily take orders of magnitude longer than the script itself takes to run. Plus, it runs inside the old cmd.exe - this means we're still stuck in a non-Unicode world. Good luck trying to run some quick database queries in non-ascii!

      It's an admirable attempt but I think it's far too slow for normal use- until they fix that I can't imagine it picking up much of a following.
      • Re:Text (Score:5, Insightful)

        by powerlord (28156) on Tuesday April 25 2006, @06:01PM (#15200674) Journal
        Well ... to take the position of "Devil's Advocate" for a minute, if they just extended bash to have C# scripting, then you'd have lots of people on this forum yelling how they are perverting the standard and that this is just aploy for them to embrace and extend the existing shell language.

        Look at it from MS's perspective:
        1) They know they need a shell like language to handle sys admin type functions.
        2) They've just put a lot of effort into .Net
        3) Most of the MS Admins out there believe VB is the tool of choice.

        Given those suppositions (feel free to argue about their reality, but remember that I'm discussing it from MS's viewpoint), a scripting language that fullfills (1), takes advantage of (2) and leverages (3) seems like a no brainer, even for them.

        Of course, considering that there are .Net bindings for Perl, that may be an even better choice for a scripting language.
          • Re:Text (Score:5, Insightful)

            by shmlco (594907) on Tuesday April 25 2006, @06:29PM (#15200876) Homepage
            "My problem is how blatantly incompatible they do everything."

            And his point was that, within the Windows environment, they ARE compatible, staying with their existing libraries, tools, and languages. Given that perspective, importing yet another language and toolset from Unix would be the incompatibility.

            Why does the entire world have to look like a scripting language from an OS designed four decades ago?
            • Why?!? (Score:5, Funny)

              by A nonymous Coward (7548) * on Wednesday April 26 2006, @01:18AM (#15202638)
              Why does the entire world have to look like a scripting language from an OS designed four decades ago?

              Wheels -- thousands of years old. Still work.

              Fire -- hundres of thousands of years under human control -- still works.

              And you -- still typing after all these years, over a hundred now, since the invention of the keyboard. Still using fonts, for pete's sake, on graphical displays, invented before UNIX, along with mice, still using silicon (60 years old) and rust (thousands of years old) and electricity, back before Mr Franklin's experiments with kites 250 years ago, still using bits for storage as characters, processed by computer instructions, over 50 years old. Why haven't you graduated to something modern?
          • Re:Text (Score:5, Interesting)

            by Tim C (15259) on Tuesday April 25 2006, @06:58PM (#15201044)
            They purposefully [for instance] use the wrong direction on the slashes to make things incompatible. That's the level of stupidity they stoop to.

            When MS-DOS was first written, there was no such thing as directories. Everything lived in the root, and there was no need for path names or path separators. It quickly became necessary to pass arguments to commands, and the natural way to do this was to distinguish them from paramters by pre-pending a character. MS chose to use /.

            Time passed, and directories were invented. People started to use / as a path separator, in similar fashion to how references are built up - eg major part/minor part/whatever/etc, say "57b/6". MS obviously had to support directory trees, but didn't want to break backward compatibility (something they are loathe to do to this day), and so could not use /. Thus, they went with the next nearest thing, \.

            Alternatively, perhaps you're right, and they're petty and stupid enough to shoot themselves in the foot by making themselves incompatible with every competing product at a time when they had little or no compelling advantage.

            Incidentally, try using / in a path in the address bar of Windows Explorer in a modern Windows (eg >= 2k). You might be surprised.

            There is no reason why they couldn't embed C# support [or generically .NET] within bash or tcsh or whatever. That way you could still use the familiar but then extend into .NET crap if you wanted to.

            What familiar? This isn't aimed at Unix admins, this is aimed at Windows admins, and most of them are going to be much more familiar with cmd.exe than with bash, or ksh, or ash, or tsh, zsh or any other of the myriad, subtly-incompatible *nix shells.
      • Re:Text (Score:5, Insightful)

        by PsychicX (866028) on Tuesday April 25 2006, @06:39PM (#15200923)
        Prepare yourself, this may come as a shock...It supports text based communication. Amongst the vast array of .NET objects is the ever popular System.String, which is of course an object representing plain text. Pipe it to a program and guess what happens? That's right, the .NET part is stripped away and the plain old text is sent to the app.

        Microsoft gets it just fine. They get that *nix's text based communication is a crude and outdated way of doing things, and they provide a vastly more powerful interface, while keeping the old ones perfectly intact. I've been using MSH for several months now, and I'm amazed at how much more powerful it is than bash (which was previously a god in my eyes).
    • by cnettel (836611) on Tuesday April 25 2006, @06:10PM (#15200741)
      Hm, what kind of security do you expect in a shell? But, IIRC, you can run scripts under any .NET permission set, which means that you can emulate stricter permissions than the user you are running under (just like the Java VM does). I think there is also some code signing possible, but it's always a tradeoff, isn't it? It's not exactly like you want to log into some kind of stealth mode to just sign a script you have edited.
    • by amliebsch (724858) on Tuesday April 25 2006, @08:03PM (#15201430) Journal
      It's a legitimate question. The security of PSH is mainly two-pronged: first, as in every other console/shell, including cmd.exe, commands and scripts can only act with the permissions that the current user has. This is the standard *nix way of doing things, and it should be far more effective in Vista once proper LUA is finally well-implemented. The other prong is a combination of security features. First, there will be no default associated file type for PSH scripts, meaning that by default, it is not possible to double click a script file and have it run, like you currently can with .BAT files. You can always create an association, but the default behavior is to instatiate the shell first, then run the script with a command-line command. Second, by default, scripts in the current director must be explicitly invoked (equivalent to not having "./" in your PATH). Third, PSH will support code signing, so that scripts must be digitally signed by a trusted publisher. This can, of course, be yourself, because you can easily enough create a cert and trust your own certificate. But it would prevent a lot of trojan attacks.
      • Re:can you? (Score:5, Informative)

        by Fareq (688769) on Tuesday April 25 2006, @07:57PM (#15201380)
        while we're giving out CMD.EXE tips, try this:

        enter a few commands
        then press F7 for surprising results
        • Re:can you? (Score:5, Funny)

          by forkazoo (138186) <wrosecrans AT gmail DOT com> on Tuesday April 25 2006, @06:52PM (#15201018) Homepage
          You can do both with cmd.exe ... check the properties of the window and adjust the buffer sizes to your taste.

          Increasing the buffer size still doesn't let you resize the window horizontally, although it does allow you to increase the size vertically. It's a fixed width window, which really stinks.


          It certainly isn't what it should be... But, if you go to properties, and go to the layout tab, then change *both* the horizontal buffer size and the the horizontal window size, it works fine. It's just buried on the third tab of the not-very-obvious properties window -- don't confuse it with the buffer size setting on the first tab, as this is unrelated.

          Now, why in the name of god they don't just let you resize it with the mouse like every other Windows window, and every other terminal emulator like kterm/gterm... I have no god damned idea. But, it is there, pointlessly buried. Third tab of the non-obvious properties window, where you have to change two different settings by hand. People keep asking me why I don't prefer Windows. They keep insisting, "Isn't Windows easier to use?" Egad.
    • by cnettel (836611) on Tuesday April 25 2006, @06:31PM (#15200888)
      Uh, it is a COMMAND SHELL? Of course it's text input based. They also claim that future graphical admin tools will render the equivalent commands in a text field, somewhat like what you describe. But this one certainly uses a text-based interface... The object-orientation is just about how commands interact with each other, especially when piping. Plain text piping between commands (note, not processes, the builtin commands are objects that will generally live in the same process as the shell itself) is a limited special case of this.
    • Re:Downloading (Score:5, Informative)

      by cybereal (621599) on Tuesday April 25 2006, @07:49PM (#15201335) Homepage
      It takes five minutes to setup a passport account associated with any arbitrary email address and thus far has generated absolutely zero spam to my email account. You can also sign-up with a "Limited" passport account, which means, you can sign up with no association with any actual email address whatsoever. You end up creating a fake @passport.com address for signing in.

      The contracts are not any different than what you would agree to with Google, Yahoo, or any other online service provider.

      Furthermore, with only accepting the passport license, it's a bit shorter than hotmail's. Try reading it yourself. The TOS is actually very short and easy to read if you're not illiterate: https://accountservices.passport.net/PPTOU.srf?x=4 .0.5610.0&cbalt=www&vv=400&lc=1033 [passport.net]