back to article The 10 best … Windows Server 2012 features

Microsoft's Windows Server 2012 is out. For many systems administrators, the question about this latest iteration of Microsoft's server family is not "What's new?" but "Why care?" Server 2008 R2 is a great operating system, while Server 2012 bears the stigma of Metro and the Windows 8 controversy. But the answer to "why care" …

COMMENTS

This topic is closed for new posts.
  1. Anonymous Coward
    Anonymous Coward

    excited is an understatement

    1. Anonymous Coward
      Anonymous Coward

      Sugercoating for ignorant sods.

      Perfectly suited to solving probems that are already solved, and targeted at managment that thinks that money solves problems.

      If you need to solve new problems, look elsewhere.

  2. Matt 21

    Difficult to see

    how you can say that MS has surpassed other OSs. Looks to me that it's a nice release if your a Windows shop but I can't see it winning any converts.

    1. Anonymous Coward
      Anonymous Coward

      Re: Difficult to see

      I disagree: I work in backup and I'm seeing (albeit anecdotal) more and more demand for Hyper-v backups, it appears that MS is offering serious competition to VMware at this level at least.

      Also - If MS are offering features in Windows for which you have a few legacy proprietary RISC UNIX servers kicking around in a predominantly Windows estate, it'll win those tasks from legacy UNIX.

    2. Anonymous Coward
      Anonymous Coward

      Re: Difficult to see

      It has many of the advantages of Linux land (scripting, modularity etc) with a much lower bar of entry in terms of technical skills.

      1. Anonymous Coward
        Anonymous Coward

        Re: Difficult to see

        And an order of magnitude fewer security vulnerabilities than a Linux distribution...

  3. Anonymous Coward
    Megaphone

    Yeah, but

    You can't use the Powershell 3 cmdlets with SharePoint 2010, so basically this version is useless for SP2010 until MS decide to bring out a new update.

    Also, one of the other best new features is the ability to go back to a core or full version of the OS, or an intermediate 'minimal server interface' which will just give you a PS console, and the Server Manager interface. Additionally, you can now choose not just to remove roles and features, you can actually get rid of them altogether, meaning a reduced attack surface. As much as I hate Microsoft, I have to admit, Server 2012 is a great OS. Shame about the Metro though...

  4. AndrueC Silver badge
    Meh

    All well and good but let's not forget one big downside when using the UI:

    Metro (TIFKAM).

    It's not all that hot on a desktop but on a server it's pointless. There are no server specific tiled apps so every time you click on something just end up back on the desktop. Stupid. It'd also be nice if just once MS could avoid radical changes to UI layout on applications as well. Administering a server is hard enough without buttons and menus being rearranged and removed.

    But it runs well enough from what I can tell.

    1. Anonymous Coward
      Anonymous Coward

      Hmm...

      You shouldn't really be installing the GUI on a Win2012 server, even if you do (and I have to see what it's like) the metro interface is pretty good, I would suggest better on a server desktop. It's basically six or so buttons for what you really need to do and that's it. The vast majority of GUI configuration is done through the server manager or the control panel, both of which are run from the desktop.

      1. Will 20

        Re: Hmm...

        I'll be using Server 2012 as a Remote Desktop Server, so having a GUI on it for the lusers is actually quite important to me...

      2. AndrueC Silver badge
        Meh

        Re: Hmm...

        >You shouldn't really be installing the GUI on a Win2012 server

        In our environment that would be a pain. We are a software development team so none of us are 'highly qualified experienced adminstrators'. We're just a bunch of guys who have to have various test environments to run our product on. The advantage of a GUI is that you can usually muddle your way through whereas a console typically uses arcane and obtuse syntax. We do use PowerShell for some things because our product integrates with Exchange and SharePoint but for everyday maintennance a GUI is far easier to live with.

        In any case - they gave us a GUI. Why saddle it with an additional pointless 'front end'?

        1. Anonymous Coward
          Anonymous Coward

          Re: Hmm...

          @AndrewC - Use the GUI then, you have the option to install it, but you also have the option to not install the GUI and do all of your GUI management of the server from a workstation. You can use Win7 or Win8 as management workstations, IIRC.

          You could claim that the start menu is a pointless front-end to the desktop of other versions of Windows, it's pretty much the same as the modern UI, particularly on a server where there is no dynamic update of the tiles.

    2. John M. Drescher

      I agree on all points. I see no point at all for Metro on the server and worse yet as an administrator I HATE when the buttons for the same operation are moved around on each version. I do however like the ribbon additions to the file explorer but certainly not the metro look..

    3. JDX Gold badge

      Does 2012 allow you to jump to desktop like W8 does, or is the choice Metro or nothing (nothing as in cmd-line not nothing as in 'no choice')?

      1. AJ MacLeod

        Does somebody just go through the Reg forums clicking downvote buttons, or what? Bizarre.

        1. Ken Hagan Gold badge

          @A J MacLeod

          "Does somebody just go through the Reg forums clicking downvote buttons, or what?"

          It's the "or what" I'm afraid. What they do is click on your name, which takes them to a list of all your recent posts, and *then* they go down the list clicking downvote buttons.

          El Reg, would it be possible to limit the number of votes someone can make in a given time period?

          1. Ken Hagan Gold badge

            Re: @A J MacLeod

            Five downvotes, eh? Clearly I've let the cat out of the bag. Sorry guys. (But not very.)

      2. Anonymous Coward
        Anonymous Coward

        @JDX

        Yes, the GUI option is a stripped down version of the modern UI, with a desktop button, command line, admin tools. In practice it's just a start menu replacement, like on Windows 8, but can AFAIK as I've not tried it, I think it can be beefed up by adding all the components required to make it into pretty much a full on Windows 8 desktop.

    4. Anonymous Coward
      Anonymous Coward

      > Metro (TIFKAM).

      Interestingly, you might be right on execution, but since people don't do "real" work on servers I would expect that a touch interface GUI to be more relevant than on a desktop for the kind of admin tasks that people might perform on them.

      It will be interesting to see how this pans out.

      1. AndrueC Silver badge
        Go

        > It will be interesting to see how this pans out.

        It just occurred to me that perhaps it could be reminiscent of the old NetWare UI. People with a specific task click a tile, do it and exit? I don't think the current GUI really lends itself to that but I can see how a traditional multi-window desktop might not be needed for someone who knows exactly what they are doing.

        The old NetWare UI was ugly but actually the menus made it pretty obvious what you had to do most of the time.

  5. Detective Emil
    Meh

    Money talks (and cajoles and whines and threatens)

    Convince me that the licensing model is not arcane, and I'll be more interested.

  6. Anonymous Coward
    Windows

    Hardly advantages, in fact...

    I wonder if the author has actually used any of the stuff he mentions himself.

    First PowerShell; going from 2 to 3 isn't an upgrade, its a fscking downgrade. Because Microsoft has released an incomplete product. The reasoning behind it was good: make sudden components more modular and as such allow for more differences. For example; the (excellent) help section now has options to comply with the systems UICulture. Or put in normal words: localized systems will now have the option to get localized help.

    And because PowerShell 3 now keeps an online help repository it makes it really easy to distribute new updates to the help section(s) and provide new translated help sections.

    Only one small problem.... Microsoft never thought about what would happen if a localized system (say nl-NL) only had the default (en-US) help section because the translations weren't available yet. Worse: they also never stopped to think if users actually wanted to get localized help or a whole environment for that matter. When using the help command I can't specify a language for example...

    Resulting in, you guessed it, a totally broken PowerShell experience. The only way to fix things is to manually copy "localized directories" yourself. So copying "en-US" to "nl-NL" every time a change is done. And that's only talking about the help system, don't get me started here...

    IIS8? This is Microsoft we're talking about, do you really think that they'll keep that locked into Server 2012? Give it a rest and when all the bugs have been found and removed it'll become available for other platforms as well. You see; Microsoft has realized that in order to get their IIS more out on the Internet they need to make it more appealing. One option to do this is providing free (!) versions which anyone can use, something totally unheard of some years ago.

    So... Patience, it'll come.

    As for the rest of the features (Hyper, iSCSI, SMB); all very good new developments I'm sure, but do those really justify a whole new server?

    I wouldn't be surprised if some companies would get into 2012 because they have to (EOL of the old server) but it also wouldn't surprise me if other companies would skip this line entirely, just like they're seem to do with Windows 8. The Metro tie-in will certainly influence those kind of decisions IMO.

  7. adnim
    Meh

    it makes me feel somewhat sad

    that when I read an article about Microsoft implementing new operating system features, in this case SMB3.0. I immediately think of gleeful hackers rubbing their hands together.

    News like this should really fill IT professionals with hope and inspiration, not worry.

    1. Destroy All Monsters Silver badge

      Re: it makes me feel somewhat sad

      > I immediately think of gleeful hackers rubbing their hands together.

      I immediately think of reaching the '05 maybe even the '95

      PowerShell? Webservers? FTP? (Anyone still uses FTP??) Sigh~~

  8. K
    Linux

    PowerShell .. MEH!

    All it does is give the average Wintard pundit an orgasm while they scream "We're as funky as linux! Oooo OOooo look at me getting HEADless".

    Kudos to M$ for giving it a try, but Powershell is Slow, very limited in functionality, very poorly documented and has very limited support by non-M$ applications.

    Fix these problems and I'll gladly become a powershell user.

    1. Ragarath

      Re: PowerShell .. MEH!

      Linux is funky? Since when?

      1. Spoddyhalfwit

        Re: PowerShell .. MEH!

        Beards, sandals and BO are back in fashion.

      2. P. Lee
        Happy

        Re: PowerShell .. MEH!

        Linux inherited the funky Unix spirit of the 70's!

        <---- Medallion

    2. Anonymous Coward
      Anonymous Coward

      Re: PowerShell .. MEH!

      "... Powershell is Slow, very limited in functionality, very poorly documented and has very limited support by non-M$ applications..."

      You've not actually used it, have you? Because the first three are utter rubbish and, it's increasingly supported by 3rd parties. Vmware and Symantec at the top of the list, with many others coming online, particularly with the release of 2012.

      1. K
        FAIL

        Re: PowerShell .. MEH!

        @AC - Cough troll cough cough Troll ...

        I have, we recently migrated to Exchange 2010 and Server 2010, Making use of the Powershell as we went. Opening the Powershell and Executing and cmdlet was several hundred times slower than any NIX shell!

        1. Anonymous Coward
          Anonymous Coward

          Re: PowerShell .. MEH!

          Maybe it's not the fastest to open, but the documentation is excellent, particularly the online help and the functionality is by no means limited. I run a powershell script at home which in four or five lines reads the serial port, performs some maths on the XML file it gets fed from the serial port and outputs HTML to a web server. You can pass things round as objects and format them as you choose at the point you need formatting. There are some extremely powerful technologies in powershell.

          1. Juillen 1

            Re: PowerShell .. MEH!

            I did find some of the documentation being a little flaky moving from the good stuff in V2 to the early V3.. I suspect MS will be fixing this soon..

            Definitely agree it's got a lot of power on Windows platforms.. I even stopped using Perl as my language of choice on Windows when it PS found its feet. Still use it on *NIX though.

        2. Anonymous Coward
          Anonymous Coward

          Re: PowerShell .. MEH!

          Probably because the Powershell applets were actually doing something like moving mailboxes...

    3. RICHTO
      Mushroom

      Re: PowerShell .. MEH!

      Powershell might have some shotcomings, but it is still more powerful and flexible than any Linux / Unix shell...

  9. Alan Bourke

    I want to like PowerShell

    but by jeebus it's overly wordy.

    1. Anonymous Coward
      Anonymous Coward

      Re: I want to like PowerShell

      It can be abbreviated...there are lots of common ones...and you can make your own...

  10. The Vociferous Time Waster
    Joke

    Your're fracking kidding right?

    "It makes a great storage system for heterogenous environments and a wonderful network storage point for VMware servers."

    Have a Windows Server as the back end NAS for your VMWare servers? Haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha *breathe* haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha haha

    1. K
      Thumb Up

      Re: Your're fracking kidding right?

      LMFAO!

      Best comment in ages.

    2. Anonymous Coward
      Anonymous Coward

      Re: Your're fracking kidding right?

      And a storage system your legacy UNIX servers too - so you can have have proper filesystem ACLs via NFS 4.1 - and proper clustering / failover - DR site Replication - and data deduplication....All those bolts ons for UNIX / Linux (except dedupe - which AFAIK doesnt even exist in a Linux distribution) that are a native part of Windows Server....

      1. Anonymous Coward
        Anonymous Coward

        Re: Your're fracking kidding right?

        NFS 4.1 isnt even available in production for Linux yet either...

    3. RICHTO
      Mushroom

      Re: Your're fracking kidding right?

      Well it outperforms any storage system you could do on Linux or UNIX. 16Gbps storage throughput from a single file server node for instance - or 1 million IOPs from a single VM.....

      1. The Vociferous Time Waster

        Re: Your're fracking kidding right?

        A Hitachi HNAS runs linux, that pisses all over everything.

  11. Anonymous Coward
    Anonymous Coward

    Yeah, right.

    "you use Windows as your web server" jokes officially end here..

    Until next week..

    Windows server has always be better for for Active directory, exchange and some Windows client related stuff, as you would expect of products that are inexorably tied together. however, other servers, have always beaten Windows server for pretty much everything else. Especailly IIS.

    MS seems to have made some inroads into catching up. Then we can wait another 4 years while the rest of the world leaves MS in the dust again.

    This doesnt seem to have changed a thing.

  12. Alan W. Rateliff, II
    Paris Hilton

    System Center may be nice, but MS has its head up its arse

    I started a massive virtualization project earlier in the year. I decided we would go with SCVMM and called Microsoft for pricing. I was directed to a distribution partner and given some information on existing 2008 pricing, but as of 2012 the who shebang gets integrated into a single, much higher-priced, product.

    But no pricing was available. Well, maybe, but it's gonna be like $36,000. Or less. Or more. Wait, what exactly did you need?

    Six flapping months. SIX MONTHS of back-and-forth between me, distributor, and Microsoft to finally find out Microsoft wants to CHARGE ME engineering time to design my already-design solution for me. I raged. I've already designed the solution, I just need a flipping SKU for the proper product so I can get a price and quote this project which is now six months old.

    I called into VMWare and had SKU and retail price quote the same day. Haven't looked back.

    I like Hyper-V. I'm not completely sold on 2008's way of redundancy which uses Windows Clustering (server-level) versus VMWare's way (virtual machine-level.) But, it's free and it works. But if you wanna fly, you gotta buy, if you can get the pricing.

    Paris, first hits free, too.

    1. RICHTO

      Re: System Center may be nice, but MS has its head up its arse

      Then you have a crap distributor. Try Grey Matter.

  13. Anonymous Coward
    Thumb Down

    Powershell is nice, but creating GUIs on powershell scripts is really stupid

    OK, Windows needed more scriptable ways to accomplish tasks, but making GUIs just a layer above a bunch of powershell scripts just made them slow, cumbersome, and with bad error reporting - they really look now like some crappy Linux applications. Both GUIs and cmdlet should call directly the same APIs to ensure no matter who you're performing a task, the fastest and better way is used.

    1. Anonymous Coward
      Anonymous Coward

      Re: Powershell is nice, but creating GUIs on powershell scripts is really stupid

      Win 2012 doesn't seem slow like other GUIs on top of command lines to me (NetBackup Java console, I'm looking at you) the big advantage that you get from this approach is that it is always possible to do something form the command line that it is possible to do from the GUI. Contrary to popular belief, MS have been very good at this and the last time that I can remember something that you could only do from the GUI was in the NT4 days. However this approach will make sure that absolutely everything can be done from the command line and in a more optimised manner than some of the previous registry hacking from scripts you had to do.

      1. Anonymous Coward
        Anonymous Coward

        Re: Powershell is nice, but creating GUIs on powershell scripts is really stupid

        If you publish the same APIs through a cmdlet or GUI you can always perform the same task either way. What it is stupid is having a GUI that instead of calling the API directly calls a script engine that executes a script and then have to capture and parse output to understand what happened instead of being notified of errors by exception handling directly. It's why I always hated Oracle that does the same, often spawning a shell to invoke an executable that runs Java to invoke a Perl script.... it just make everything slower and when an error occurs usually the only way to understand what's wrong is to read tons of logs. Just publish those damned APIs, and call them directly. That's why sysadmin buys later better management applications...

        1. Anonymous Coward
          Anonymous Coward

          Re: Powershell is nice, but creating GUIs on powershell scripts is really stupid

          >If you publish the same APIs through a cmdlet or GUI you can always perform the same task either way. What it is stupid is having a GUI that instead of calling the API directly calls a script engine that executes a script and then have to capture and parse output to understand what happened instead of being notified of errors by exception handling directly.

          That aptly demonstrate how little you understand about PowerShell. Caught in your *Nix way of thinking you cannot comprehend that it can be done differently.

          Unlike scripting on *Nix, a fundamental concept of PowerShell is how it can be *hosted* inside an application. Instead of stupidly formatting and parsing text as with *Nix shells, a hosted PowerShell can act directly on the host application in-memory objects.

          Unlike *Nix shells, PowerShell was *designed* to create commands, functions and scripts which can be reused by a hosting application, like the Exchange admin GUI. Absolutely NO parsing is necessary. The hosting interface is rich, supports in-memory objects and may for instance operate directly on the lists of objects displayed by the application.

          You cannot compare it to an application which invokes a separate process to execute command lines. The cmdlets *are* the API. The big idea that you cannot comprehend is that this way the developers only need to implement the functionality *once* as cmdlets. The GUI application may use Get-<noun> cmdlets to retrieve lists of objects, and Set/Add/Register/Install-<noun> and others to implement actions operating directly on the returned objects.

        2. P. Lee

          Re: Powershell is nice, but creating GUIs on powershell scripts is really stupid

          The problem is more likely to be internal to MS. They want to avoid gui tools sneaking around doing things the scripts can't. So you decree that you have to call scripts and you gain consistency at the cost of speed. For an enterprise, that's often worthwhile.

    2. Richard Gadsden
      WTF?

      Re: Powershell is nice, but creating GUIs on powershell scripts is really stupid

      GUI over scripts?

      You mean like SQL Server Management Studio?

      Works well there. Not a PowerShell guy myself, but SSMS works brilliantly.

      1. Anonymous Coward
        Anonymous Coward

        Re: Powershell is nice, but creating GUIs on powershell scripts is really stupid

        Yes, and Exchange administration, and WSUS, and so on.... they are all slower and more cumbersome than the old non powershell based applications. It gives me the same sense of slowness Oracle has always given me when its tools starts to invoke SQL*Plus or some external utility to perform something, and then have to parse the output to find out what's happened... as a software developer I really think that's just wasted CPU cycles and gives a far less good "user experience". What worries me is that technical skills at MS are going down the sink, and if core parts looks good, the whole "shell" experience is getting worse and worse. Probably they too are outsourcing those applications to some part of the world where they don't understand anything about a good GUI app.

  14. Anonymous Coward
    Anonymous Coward

    We are about to evaluate the benefits of moving from 2008R2 standard to 2012 standard on our DB machines, the one thing I can say I am looking forward too is the removed RAM cap of 32GB.that is imposed on standard 2008R2. I can't say I am particularly interested in any of the other advances except hyper-v improvements as I cant stand VmWares ESXi so perhaps I will look into that.

    But seriously another advert for Microsoft?!

    1. Anonymous Coward
      Anonymous Coward

      Hmm...

      You should take a look at the storage improvements, this are excellent and should be very useful to a DBA.

      Also: It's an IT news web site, Windows is the most installed server OS in the world, if they didn't publish articles like this they wouldn't be doing their job, it's not an advert to discuss the new and exciting stuff in a new product.

  15. JDX Gold badge

    The article makes it clear the 2012 is pretty awesome and mentions catching up or sometimes surpassing the competition a few times... but the competition is (presumably) Linux which is free. Now I know that software/license costs can dwindle to insignificance compared to hardware and human costs but even so, you'd want to be cost-effective.

    AS a non-server guy powershell sounds a killer feature but doesn't nix match that for example?

    1. Trevor_Pott Gold badge

      @JDX Linux can go toe-to-toe on many things...but I honestly think MS pipped Linux on the storage front this go-round. And Hyper-V is more or less a match for anything Linux can offer...but with far superior management tools available from both Microsoft and third parties.

      Really, the question is: do you manage everything from the command line, read all reports encoded, as text or as HTML...or do you have your staff doing more than just one task? If your staff do more than just the one thing (virtualisation admin, storage admin, network admin, etc) then the reality of the world is that they won't have time to memorise all the commandline details that would be required to do their jobs efficiently using that interface.

      Chances are then that a GUI for day-to-day monitoring, maintenance and minor changes are better suited for these individuals, with scripting automating the bulk of the regular work. (Scripting used solely for automation can be done with the textbook beside you, it doesn't require rote memorisation of all the commands.)

      In the latter case, good management tools matter. It is here that Microsoft has consistently been ahead of Linux. Is the commandline – and specifically the Linux commandline – better than Microsoft's offerings? Hell fucking yes. If you live and breathe commandline for administration of your daily tasks, accept no substitutes!

      But there are rather a lot of admins out there who don't be narrowly focused experts. For them, good management – and monitoring – tools matter. MS did a good job on that here. (RSAT, SCVMM, SCOM, etc.) Credit where it's due.

      1. Alan_Peery

        @Trevor_Pott re storage

        > I honestly think MS pipped Linux on the storage front this go-round.

        Check out zfs.

        - iSCSI, NFS, CIFS

        - deduplication

        - thin provisioning of iSCSI volumes

        - snapshots

        - snapshots of iSCSI volumes

        - resilvering (mor efficient RAID rebuilds)

        - every read checksummed

        1. Anonymous Coward
          Anonymous Coward

          Re: @Trevor_Pott re storage

          Doesn't zfs still only run in userland on Linux? (Not sure, but I'm pretty sure this used to be the case.)

  16. Alan Bourke

    Linux

    is far from free, if you want to deploy it properly in an enterprise environment.

  17. Stevie

    Bah!

    It would help if the loudest anti-windows ranters would actually admit to the last time they had hands-on (or even eyes-on) experience of Windows [insert marketing tag].

    I mean, would you be impressed if I argued against Linux based on my execrable experience of Red Hat distro 4.2, widely regarded as the boil on the backside of IT?

    1. JaimieV
      Pint

      Re: Bah!

      I would be - I thought everyone subjected to that had washed the memories away permanently with copious quantities of booze.

    2. Trevor_Pott Gold badge

      Re: Bah!

      @Stevie I use Windows every day. I use Linux every day. I bash (and praise) both as I see fit. I qualify as loud.

      Cookie?

    3. eulampios

      Re: Bah!

      Yeah, if you'd be busy here and there helping your friends fixing their ubiquitous monopolistic broken, aged, infected Linux boxen using your powerful almighty Windows system.

    4. Daniel B.

      Re: Bah!

      "It would help if the loudest anti-windows ranters would actually admit to the last time they had hands-on (or even eyes-on) experience of Windows [insert marketing tag]."

      Last Windows experience: WinXP, WinVista, Win7, Win8.

      Last Windows Server experience: Win2003, Win2008, Win2008R2.

      With Win8 and now Win2012, it seems MS is going backwards.

  18. MissingSecurity

    Decent Analysis..

    I have played around with it, in fact I plan to move to it in the coming months. It does do a lot to make life easier, however as a mixed environment, I not exactly rolling in praise. I give there server team credit, damn good job on the system, but the price to Hyper-V with Windows 2012, is not exactly peaking my interest.

    I find the metro interface for the server better than the OS version (which sound weird), and I think its cause they provided functionality into the interface rather than its sole focus as a tablet-ish app whore.

    Still, not finalized yet, though as I am contemplating running a primary CentOS server backed, with a few sporadic Windows Servers for Windows Only applications, or if I should Windows-ize the environment, and use the Linux boxes for other items.

    1. RICHTO
      Mushroom

      Re: Decent Analysis..

      Native Hyper-V is totally and utterly free. There is zero licensing cost to Hyper-V.

      And you should not install Windows Server Core and then run Hyper-V as a service (which would be licensable) - because that doesnt support Remote FX whereas native Hyper-V does!

  19. Bainia
    Stop

    Power Shell?

    It's really hard for me not to poke fun at Power Shell. I've really tried to give it a go, but coming from a very strong background in command line driven systems, it's really awful.

    1. Takes an inordinate amount of time to actually start. 11 Seconds each time on speedy, modern hardware

    2. Lacks many of the basic features of a unix-like shell

    3. Has no concept of handling text in an elegant manner, every thing is an ``object``

    4. It's WAY too wordy for even the simplest tasks

    5. PATHs are still using the wrong slash

    6. No persistent command history

    Consider the following:

    I need to see the last 10 lines of a log file (ran into this recently with being required to run Splunk on Widows..)

    Linux: tail filename.log

    Done.

    Windows: get-content .\filename.log | select -last 10

    Wait for 15 seconds while command is parsed and eventually get the last 10 lines of the file, only the data that I needed was scooted past the 10 line marker while the command was taking an eternity to run.

    microsoft just doesn't get it. They continually fail to learn the KISS lesson and continually elect to do things differently just for the sake of being different.

    1. Anonymous Coward
      Anonymous Coward

      Re: Power Shell?

      >1. Takes an inordinate amount of time to actually start. 11 Seconds each time on speedy, modern hardware

      On my machine it opens *instantly*. Only the first time you open PowerShell after a system reboot does it take a little longer. Maybe you should check to see what's going on the the profile scripts?

      >2. Lacks many of the basic features of a unix-like shell

      On the contrary, Unix shells lack many, *many* of the features of PowerShell.

      >3. Has no concept of handling text in an elegant manner, every thing is an ``object``

      Yes it does. Text is just a sequence of string objects. But you will hardly ever use the powerfull string functions of PowerShell, because they simply are not needed when you operate with objects.

      >4. It's WAY too wordy for even the simplest tasks

      There are short aliases for most common commands, all parameter names can be shortened as long as they are ambigous. Do not be fooled by the fact that it is considered good style to use the long forms when illustrating code. PowerShell can be every bit as terse as bash - sometimes more so.

      >5. PATHs are still using the wrong slash

      Ignorant. PowerShell has always accepted both the forward slash as well as the backward slash forms.

      >6. No persistent command history

      Just save it. Or set a function to save it on exit and reload it on initialization. Or better yet: Build a library of actual snippets. Oh, bash doesn't have snippets?

      Where is the consistently implemented risk management in *sh shells? In PowerShell you can run any action command with -WhatIf. In that mode no changes will be made to the system. Instead the changes that *would* have been made are reported to the user. It even works with scripts: If you support -whatif as a script parameter it sets global preference to "whatif" and none of the commands of the script will actually execute.

      Where is *sh shells integration with transactions? You can use PowerShell to connect to multiple database servers, message queue servers, etc. and perform tasks in a transaction context and ensure transactional consistency.

      Where are *sh shells suspendable and resumeable scripts? PowerShell workflows can run scripts across system restarts, suspend a script/job on one machien and resume it on another machine.

      How do you create parallel *sh scripts? PowerShell supports parallel execution within a workflow script.

      Oh and:

      Linux: tail filename.log

      PowerShell: gc filename.log -La 10

      done.

      1. 404
        Pint

        Re: Power Shell?

        Wow!

        SPANKED!

        ;)

        1. Anonymous Coward
          Anonymous Coward

          Re: Power Shell?

          Hardly.

      2. Anonymous Coward
        Anonymous Coward

        Re: Power Shell?

        Couldn't agree more. Powershell is fantastic, but only if you know how to use it.

      3. Anonymous Coward
        Anonymous Coward

        Re: Power Shell?

        You forgot: Can you cryptographically sign a .sh script? No?

        1. Bainia
          Happy

          Re: Power Shell?

          Certainly you can. It's called PGP or GPG.

        2. Bainia
          Thumb Up

          Re: Power Shell?

          It's called GPG or PGP.

      4. oxtan
        Meh

        Re: Power Shell?

        For starters: I am really glad MS finally saw the light and recognized the essential importance of having a decent CLI in their systems. However I am blinded by your arguments. Let's see:

        1. PS is slow to start up or to do anything. Denying it is just stupid, anyone having used both a linux shell or PS knows it.

        2. What features does a linux shell lack in your opinion? Truly interested in your answer.

        What I still cannot do in powershell is use a MUA like pine or mutt; a browser, irc client, rss feed reader, mp3 player, ..., god, I can't do plenty of stuff I already can with my old fashioned linux prompt. Is this progress? Not for me.

        3. text processing in PS is ... painful. It is not its strongest point. Try finding matches of a certain string on a 3GB text file (like an iis log file in a busy web server), you will soon grab naar findstr.exe or script something fast in Perl (yes, for Windows, works great) to get the job done without bringing the server to its knees.

        Parsing the windows event log on the other hand is very convenient with PS. Slow, but convenient ;-)

        4. yes, syntax can be terse. It's a shame that MS just *ignores* the rest of the industry and 40 years of knowledge and experience to invent another wheel instead of just adopting the posix standard every admin they want off Unix already knows. Weird.

        5. You're right on paths, those work fine.

        6. snippets? O, you mean like 'functions'?

        Risk management? Like thinking what you're doing before hitting enter? Or writing scripts properly with proper error handling? With great power comes great responsibility.

        Database shells? Never heard of cli tools for databases? Those tools ensure the consistency of the database, so please spare us your bullsh*t ITIL lingo.

        And you should just google job control to learn about suspending and starting jobs.

        Oh and:

        PS D:\tmp> gc logfile.log -La 10

        Get-Content : A parameter cannot be found that matches parameter name 'La'.

        At line:1 char:19

        + gc logfile.log -La <<<< 10

        How hard can it be?

        1. Anonymous Coward
          Anonymous Coward

          Re: Power Shell?

          >1. PS is slow to start up or to do anything. Denying it is just stupid, anyone having used both a linux shell or PS knows it.

          PowerShell is based on .NET. The first time you load it after system restart it will JIT the assemblies. After the first time it starts instantly.

          >2. What features does a linux shell lack in your opinion? Truly interested in your answer.

          Ok:

          1) Object oriented pipes so that I don't have to format and reparse and be concerned about language settings. Object oriented pipelines

          2) Command metadata. PowerShell commands, functions and even *script files* expose metadata about the names, positions, types and validation rules for parameters, allowing the *shell* to perform type coercion, allowing the *shell* to explain the parameters/syntax, allowing the *shell* to support both tab completion and auto-suggestions with no need for external and cumbersome completion definitions.

          3) Robust risk management. Look up common parameters -WhatIf, -Confirm, -Force and consider how they are supported by ambient values in scripts you author yourself.

          4) Multiple location types and -providers. Even a SQL Server appears as a navigable file system. Want to work with a certain database? Just switch to the sqlserver: drive and navigate to the server/database and start selecting, creating tables etc.

          5) Fan-out remoting. Execute the same script transparently and *robustly* on multiple servers and consolidate the results back on the controlling console. Try icm host1,host2,host3 {ps} and watch how you get consolidated, object-oriented process descriptions from multiple servers.

          6) Workflow scripting. PowerShell scripts can (since v3) be defined as workflows which are suspendable, resumable and which can pick up and continue even across system restarts.

          7) Parallel scripting. No, not just starting multiple processes, but having the actual *script* branch out and run massively parallel.

          8) True remote sessions where you don't step into and out of remote sessions but actually controls any number of remote sessions from the outside.

          9) PowerShell web access. You can now set up a IIS with PWA as a gateway. This gives you a firewall-friendly remote command line in any standards compliant browser.

          10) Superior security features, e.g. script signing, memory encryption, proper multi-mode credentials allowing script to be agnostic about authentication schemes which may go way beyond stupid username+password and use smart cards, tokens, OTPs etc.

          11) Transaction support right in the shell. Script actions can join any resource manager such as SQL server, registry, message queues in a single atomic transaction. Do that in bash?

          12) Strongly typed stripting, extensive data types, e.g first class xml support and regex support right in the shell. Optional static/explicit typing. Real lambdas (script blocks) instead of stupidly relying on dangerous and error prone "eval" functions.

          13) Real *structured* exception handling as an alternative to outdated traps (which PowerShell also has). try-catch-finally blocks.

          14) Instrumentation, extensive tracing, transcript and *source level* debugging of scripts.

          15) Consistent naming conventions covering verb-noun command names, common verbs, common parameter names.

          >What I still cannot do in powershell is use a MUA like pine or mutt; a browser, irc client, rss feed reader, mp3 player,

          PowerShell can start external processes like any other shell. If you have an rss feed reader then just start it. Sheesh!

          >3. text processing in PS is ... painful. It is not its strongest point. Try finding matches of a certain string on a 3GB text file (like an iis log file in a busy web server), you will soon grab naar findstr.exe or script something fast in Perl

          No, I will just use select-string (alias sls). Just type sls <message> logfile.log -all. It is that simple and super fast.

          >Parsing the windows event log on the other hand is very convenient with PS. Slow, but convenient ;-)

          Get-EventLog actually *searches* the event logs, as opposed to stupid bash tools which *read* the entire logs and passes them through a filter. Want to guess what is faster?

          >4. yes, syntax can be terse. It's a shame that MS just *ignores* the rest of the industry and 40 years of knowledge and experience to invent another wheel instead of just adopting the posix standard every admin they want off Unix already knows. Weird.

          posix is a *Unix* standard. And if you believe that command names like ls or awk is the epitome of consistency you are seriously deluded. Why does Unix need multiple commands (ls, find, du) to search the file system when PowerShell needs only one? Because PowerShell combines much better than *sh tools, that's why. Instead of including options and flags to control output format, sorting in every stupid command, PowerShell has a class of commands for that - which works with *every* other command regardless of whether they list file system objects, process information, rss items, certificates, user accounts or organizational units.

          >5. You're right on paths, those work fine.

          yes.

          >6. snippets? O, you mean like 'functions'?

          No, I mean *snippets*. Launch PowerShell ISE and hit Ctrl-J. Pick a snippet and *edit* it before issuing it. You can build your own snippet library or download one or simply use the built-in snippets.

          >Risk management? Like thinking what you're doing before hitting enter? Or writing scripts properly with proper error handling?

          No, risk management like asking a command or a script what it will do *before* actually executing it. It is a built-in feature. PowerShells errorhandling is superior to bash, btw. Like real structured exception handling, or the fact that cmdlets actually use delimited input and any errors reported during operation is uniquely referenced with the items of the input stream that were processed when the error hit. In *sh commands are simply streams and if you want the same level of error reporting you better pray that the author of the command replicates the input on stderr - otherwise you have no idea what part of the input stream wasn't processed.

          > Database shells? Never heard of cli tools for databases? Those tools ensure the consistency of the database, so please spare us your bullsh*t ITIL lingo.

          Ah, *another* cli? How about dreaming up a CLI which can handle database servers, mail servers, web servers or any other type of server using the very same tools? And how does a cli tool for databases coordinate transactions with the message queue server? Ah - it doesn't because it is a *database* tools.

          >And you should just google job control to learn about suspending and starting jobs.

          Yeah. You can suspend a *process*. But can the process/job automatically persist it's state so that it can resume from the same state after e.g. a system restart? No - because then the process is terminated all its state is lost. PowerShell does that.

          >Oh and:

          >Get-Content : A parameter cannot be found that matches parameter name 'La'.

          >At line:1 char:19

          >How hard can it be?

          yeah - try PowerShell 3 - which this article was about. Then return. Ignoramus.

          1. eulampios

            Power Shell is a power, not shell

            A shell is a an interface that glues programs together. What it does is providing both user and programs to interact with one another in a convenient, simple, seamless fashion.

            Sure bash can do many things by itself without utils, its gonna be slower and several magnitudes weaker (perl 5 can do hundreds times more and faster what bash does). Instead, you primarily use bash to talk to those many little almost perfect utils.

            Why does Unix need multiple commands (ls, find, du) to search the file system when PowerShell needs only one?

            Okay,

            ls - lists files in various, permissions formats

            du - prints disk usage, and so on in various formats

            find - is an extremely power and flexible utility, I'd be very surprised, PS can do as much as 10% as find does and be as efficient.

            Moreover, find in combination with xargs, (e)(f)grep, wc, sed, awk and other utils can do virtually anything, thanks to bash/zsh/ksh or whatever shell you prefer.

            Can you beat the interactive pager less?

            Get-EventLog actually *searches* the event logs, as opposed to stupid bash tools which *read* the entire logs and passes them through a filter. Want to guess what is faster?

            Do you know how (z)grep operates? It's actually extremely fast and efficient and doubt that PS can beat it. awk/sed are very fast as well, so with awk or sed you do

            (g)awk '/eventLogRegexp/{do a lot stuff}'

            sed '/eventLogRegexp/{do stuff}' # use options -r for extended regex and/or --posix for the posix regexp

            So you don't read anything missing that regexp

            Try icm host1,host2,host3 {ps} and watch how you get consolidated, object-oriented process descriptions from multiple servers.

            No bash alone won't do it, you can perform a similar task through ssh and public keys shared by servers, something like:

            for host in host1 host2 host3

            do

            echo " Host name :$host"

            ssh $host top -b -n1 | head -15 # or use almighty ps

            done

            That will give you a consolidated report about the top processes per host

            The power of a posix shell and posix utils is that it is an environment of independent, simple, very efficient utils and apps yet capable to talk to each other and shell very well, thus adhering to the KISS principle. The atoms of this ensemble tend to be small and simple. Similarly, emacs is a collection of independent bits incorporating shells and utils plus it's own power. That is why it is awesome in dired, grep, tramp, calc modes multiplied by the shell commands on a region...

            While PS seems to have larger add-on chunks that is not easy to divide. Creating a complex cumbersome monster in my mind is not creating a shell.

            1. Anonymous Coward
              Anonymous Coward

              Re: Power Shell is a power, not shell

              > ls - lists files in various, permissions formats

              > du - prints disk usage, and so on in various formats

              > find - is an extremely power and flexible utility, I'd be very surprised, PS can do as much as 10% as find does and be as efficient.

              ls finds files/dirs. And then it also has many(!) options for controlling output formatting. And it has options for controlling sorting. So ls doesn't do "one thing" - it does multiple things which other commands also do. Not very "unixy".

              find also finds files/dirs. And then it has many(!) options for controlling output formatting as well. And then it has options to *execute other processes*. wtf? Why would a find utility execute other processes? That's not very "unixy" as in "do one thing and do it well".

              ps finds processes. It has many, many options for controlling filtering, output formatting (again!) and sorting (again!). Why do multiple utilities include options for controlling output formatting and sorting beyond what their task is? That's not very "unixy", is it?

              Enter PowerShell. ls is an alias for Get-ChildItem - which does one thing: It finds files/dirs. It has very few options compared to the *nix counterpart - simply because it doesn't do output formatting or sorting. It also doesn't need an enormous amount of filtering options because the objects it produces include all of the properties that you could possibly want to filter on.

              PowerShell ps is an alias for Get-Process. It also doesn't have output formatting or sorting options. It also doesn't have a vast array of filtering options.

              PowerShell ft is an alias for Format-Table. fl is an alias for Format-List. These commands do output formatting. Output from ls and from ps can be piped to the Format-* commands.

              PowerShell ? command (an alias for Select-Object) does filtering. No need for ls or ps to do filtering when you can just pipe the objects through this command. No need to control output formatting and ensure that last access time is formatted in a certain way that you know you can reparse in the next command without loss of precision or being skewed by language settings.

              PowerShell sort command (alias for Sort-Object) does all of the sorting for ls, for ps or for any other command. Other commands don't have options for controlling sorting, because unlike *nix shells, that's not *needed*

              So which shell has a design which allows tools to do one thing and do it well? Look at the commands. PowerShell commands do one thing and not the kitchen sink like *nix commands. And yet you can combine PowerShell commands in straightforward ways to achieve functionality not even possible in *nix shells.

              1. eulampios

                the powershell unixness

                Interesting, that you forget that powershell with all of its commands is one thing, while find/grep/ls/awk/sed etc are independent utils.

                find has quite a few different options, I'd agree, but it still does one thing, it "searches for files in a directory hierarchy".

                You can't really remove options, like -name (-iname, -regex) or -atime and similar. Any respectable utility would be addressing very same features. Yes, -printf is just a formatting option and a classic C function. -exec is not recommended. Besides that, I am not aware of any bugs it ever had. Note, that find cannot be used as serial editor like sed or awk, all these work quite happily together in bash/ksh or zsh though.

                If PowerShell has limited number of options/features, it's weak, if it has all the options of a *nix shell and many utilities, it is a One Monstrous Shell of All Trades notwithstanding your claims. And it could be both as well.

                And yet you can combine PowerShell commands in straightforward ways to achieve functionality not even possible in *nix shells.

                Would you mind providing an an example, please?

                It's hard for me to say what PS cannot accomplish, you can't play with it without a Windows system (while you can with bash using CYGWIN on Windows). I heard that MS haven't devised a descent terminal or console similar to what we have with *nix systems.

                1. Anonymous Coward
                  Anonymous Coward

                  Re: the powershell unixness

                  > Interesting, that you forget that powershell with all of its commands is one thing, while find/grep/ls/awk/sed etc are independent utils.

                  PowerShell also uses utils. It is just that PowerShell has defined utils as cmdlets. Cmdlets pipes objects instead of text/bytestreams. Get-ChildItem is a util (with an alias ls). It finds child items of a location and sends filesystem objects through the pipeline. Because filesystem object are rich objects with property getters for a large number of properties (last access time, last write time, security information, reparse points, attributes, state, name, location/parent, version info ...) a *generic* filtering cmdlet can filter on all of this information and a *generic* sorting cmdlet can sort on any combination of these properties.

                  That is why PowerShell doesn't need find. It already does all of what find does by simply combining Get-ChildItem with Where-Object (which have aliases "ls" and "?", respectively). So to find all files which are larger than 1GB you'd write

                  ls . -r|? length -gt 1GB

                  Find in unix has it's own expression language which is not the same language used to filter processes or records from a csv file. PowerShell has ls and a filtering cmdlet. One does the finding, one does the filtering.

                  Want to limit the list to just the 10 last accessed files and format it in a table with the name, last write and length columns? Use the sort utility to sort, use the select utility to limit the list to 10 and use the format-table command to format as a table:

                  ls . -r | ? length -gt 1GB | sort -des lastaccesstime | select -first 10 | ft name,lastaccesstime,length

                  One utility to find file system objects, and just that. One utility to filter objects using a common expression syntax and just that. One utility to take a subset and just that. One utility to format in a table. I could write

                  ps | ? ws -gt 100mb | sort -des starttime | select -first 10 | ft starttime,name,id,cpu

                  And I would get a table of the last 10 processes started which consumes more than 100mb of memory. Notice the similarity? Notice how it doesnt format and reparse?

                  > find has quite a few different options, I'd agree, but it still does one thing, it "searches for files in a directory hierarchy".

                  No, it also executes processes, duplicating functionality from the shell. And it also implements a (non-standard) expression language, duplicating functionality from the shell itself and from other utilities.

                  > You can't really remove options, like -name (-iname, -regex) or -atime and similar.

                  Yes I can. Just make it return objects and ensure that name, time etc are properties.

                  > Yes, -printf is just a formatting option and a classic C function. -exec is not recommended. Besides that, I am not aware of any bugs it ever had.

                  It has serious security problems, so now -execdir is recommended. Still stupid. And -print0 illustrates the problem with text formatting+reparsing: the simple options handles uncommon file names *really* badly. None of that is a problem with object pipelines.

                  > If PowerShell has limited number of options/features, it's weak, if it has all the options of a *nix shell and many utilities, it is a One Monstrous Shell of All Trades notwithstanding your claims. And it could be both as well.

                  PowerShell utilities don't need as many options on the utilities to achieve more functionality than *sh shells, simply because they combine better. One utility to format in tables, regardless of object types.

                  > I heard that MS haven't devised a descent terminal or console similar to what we have with *nix systems.

                  PowerShell ISE blows any *nix console out of the water: Syntax highlighting, much better completion, auto suggestions (intellisense), context sensitive help, source level debugger and much more.

                  1. eulampios

                    Re: the powershell unixness

                    PowerShell ISE blows any *nix console out of the water . Syntax highlighting, much better completion, auto suggestions (intellisense), context sensitive help, source level debugger and much more..

                    Please be easy on thee claims. "Much better completion"?

                    "ISE provides and up to 8 PowerShell Unicode-enabled consoles (Runspaces) in a tabbed UI, as well as the ability to run only the selected parts in a script."

                    It looks more like an IDE, not a pure console to me, in this case, it won't blow GNU Emacs, or vi out of the water that's for sure.

                    Say, does it have something similar to a grep-mode, where you run a grep command to look for a keyword match and a buffer is created with highlighted hyperlinked matches?

                    Console runs interactive shell and can be used to launch scripts/apps. You can also use to compose simple scripts, usually oneliners.

                    # to find all files which are larger than 1GB... ls . -r|? length -gt 1GB. Find where?

                    find . -size +1G

                    looks more elegant to me.

                    #Want to limit the list to just the 10 last accessed files and format it in a table with the name, last write and length columns? Use the sort utility to sort, use the select utility to limit the list to 10 and use the format-table command to format as a table:

                    ls . -r | ? length -gt 1GB | sort -des lastaccesstime | select -first 10 | ft name,lastaccesstime,length

                    find . -size +1G -printf "%a\t%f\t%k\n" | sort| head

                    would do a similar thing.

                    PowerShell utilities don't need as many options on the utilities to achieve more functionality than *sh shells, simply because they combine better. One utility to format in tables, regardless of object types.

                    That's really cool (however, the syntax is not as appealing).

                    If everything must be an object to be able to talk to PS, than its capabilities are limited, unless you rewrite all utilities to talk objects. Say, bash doesn't really care what it glues together. Any app that either accepts text or outputs text can be used. Quite a few objects out there are plain text, despite MS efforts. Think html, xml, logs etc

                    Consider an an example: you got a text each line of which has fixed number of fields, say 4, separated by some weird char, e.g., ";;;" . You need to print all lines starting with the regex [0-9]{3}-[0-9]{2}, apply a certain formula to the 3 fields,say,f2*f3-f4^2 , print a result on each line and add all results together printing it out at the end. With awk you could try this

                    awk --posix -F";;;" '/^[0-9]{3}-[0-9]{3}/{

                    s=$2*$3-$4^2;sum+=s;print $0,s}

                    END{print "Here is your total -->",sum}

                    '

                    1. Anonymous Coward
                      Anonymous Coward

                      Re: the powershell unixness

                      > Please be easy on thee claims. "Much better completion"?

                      Oh yes. PowerShell *automatically* completes command names, parameter names *and* parameter values. It doesn't need external completion definitions bolted on like bash. PowerShell has completion for *all* cmdlets, *all* functions, *all* aliases and *all* script files.

                      Yes, even your own scripts declare parameters in such a way that PowerShell can suggest completions for parameter names and parameter values. If you declare a parameter as an enumeration or with a validation set, PowerShell will both validate the parameters *and* use the information in completions.

                      The Get-Process cmdlet for instance support completion for process names. If you request completion for the -Name parameter, it will look up current process names and suggest completions from that list.

                      PowerShell has wildcard completions for all values. If you use * or ? wildcard characters it will suggest only the matching names/values.

                      In ISE it even supports intellisense (auto suggestions). As soon as you type certain characters like "-" or "." it will open a suggestion list in a popup window *without* interrupting your typing. The list is adjusted as you type.

                      So yes, PowerShell completion blows bash out of the water. Bash needs external definitions, doesn't cover all commands, doesn't automatically cover aliases, doesn't cover functions and certainly doesn't cover your own script files. Bash completion doesn't have dynamic completion and doesn't have auto suggestions.

                      "ISE provides and up to 8 PowerShell Unicode-enabled consoles (Runspaces) in a tabbed UI, as well as the ability to run only the selected parts in a script."

                      > It looks more like an IDE, not a pure console to me, in this case, it won't blow GNU Emacs, or vi out of the water that's for sure.

                      It is an Integrated *Scripting* Environment, and it is where most administrators live today. The main pane is the command console which is a normal console, only with syntax highlighting (as you type) and auto suggestions (as you type). There is *nothing* similar for bash. An no, emacs doesn't cut it. Laughable, really.

                      > Consider an an example: you got a text each line of which has fixed number of fields, say 4, separated by some weird char, e.g., ";;;" . You need to print all lines starting with the regex [0-9]{3}-[0-9]{2}, apply a certain formula to the 3 fields,say,f2*f3-f4^2 , print a result on each line and add all results together printing it out at the end. With awk you could try this

                      You totally miss the point. awk is not a feature of bash. awk is awk and can awk can be used from PowerShell as well. You come up with a deliberately convoluted format specifically tailored for awk and present it as a feature of *bash*? I could come up with a (less convoluted) XML or json format which would be almost totally impossible to process with bash and awk, but which you could probably find some external tool that could help you. To powershell traditional tools like awk are just commands which consume and produce sequences of strings (lines). Strings are just objects

                      The *shell* has to be measured on how well it allows the tools to be integrated, not on the set of tools available on the system. In that sense PowerShell trounces bash. How would you for instance read a rss feed and insert the records into a database?

                      1. eulampios

                        Re: the powershell unixness

                        You totally miss the point. awk is not a feature of bash. awk is awk and can awk can be used from PowerShell as well.

                        No, it seems that you are missing the point. bash is not omnipotent, it's pretty simple. It's best for gluing things together. Make it more complex, it won't be as attractive (like cmd.exe or PS). Powershell as you have demonstrated is a thing by itself. So it has to be super universal, and in noway it will be. It will not satisfy all possible needs, say it most probably has no curl,mail, imagemagick, video/audio decoders or player...

                        I gave an awk example. And text is indeed an important entity, despite MS views. awk works very well with bash, will PS do, since it needs objects? Will an average Win admin get it right after getting used to "PS manners"? (First teach them to not be afraid of *any shell*)

                        And we didn't even compare performances of these. I have strong doubts that cmdlets can outperform grep/find/wc/awk/curl etc

                        Interestingly, one of the most used command

                        (e)grep 'regex' file

                        PS analog looks weird (if it's right):

                        select-string f.txt -pattern xyz -CaseSensitive

                        only with syntax highlighting (as you type) and auto suggestions (as you type). There is *nothing* similar for bash. An no, emacs doesn't cut it. Laughable, really.

                        You don't need syntax highlighting for interactive stuff in a console input, it is pretty useful for the output though and it is always there. Auto-suggesting without not very useful when you're not asking for it, it would be a nuisance for me. I am more than happy with the tab key and bash autocompletion including options, aliases (and btw that's default config of my distros).

                        As far as laughs at Emacs are concerned, spare those for the ISE and Visual Studio that are both useless pieces of software before GNU Emacs.

                        Or maybe you can find just very few things present in emacs, just say:

                        * grep-mode

                        *interactive (regex) search

                        * run-shell command on region with optional outputs on it or into a special buffer

                        * tramp-mode to handle ssh/sudo/su or whatever windows has

                        * reverse polish calculator calc with many math, calendar functions etc many CAS mode (maxima,pari-gp, matlab etc)

                        * dired mode

                        *tons of other modes

                        .....

                        1. Anonymous Coward
                          Anonymous Coward

                          Re: the powershell unixness

                          >>You totally miss the point. awk is not a feature of bash. awk is awk and can awk can be used from PowerShell as well.

                          >No, it seems that you are missing the point

                          I'm not missing anything. Here is how I'd do it in PowerShell:

                          gawk -F";;;" '/^[0-9]/{s=$2*$3-$4^2;sum+=s;print $0,s}END{print \"Here is your total -->\",sum}' weird.txt

                          Notice the difference? What? there is no difference?

                          Old-style utilities like (g)awk that produces text can be used as easy in PowerShell as in bash. No difference. It is only that PowerShell offers much more. Text is just one type of object, powershell can work with all kinds of objects. Bash can only work with text, so *everything* has to be text, which precludes a lot of data, like e.g. trees.

                          Now, get the weather forecast for Los Angeles and format it in a table:

                          ([xml](iwr http://weather.yahooapis.com/forecastrss?w=2442047).content).rss.channel.item.forecast | ft

                          The table will have columns automatically derived from the forecast item, with the item names as table headers. Try to do that in bash.

                        2. Anonymous Coward
                          Anonymous Coward

                          Re: the powershell unixness

                          > Interestingly, one of the most used command

                          > (e)grep 'regex' file

                          >PS analog looks weird (if it's right):

                          >select-string f.txt -pattern xyz -CaseSensitive

                          The sort form in PS is:

                          sls regex file

                          So it is even 1 character shorter than grep.

                          Don't be fooled by the fact that it is considered good style to use the long form in scripts and when explaining commands in articles. PowerShell has a consistent shortcut system where

                          * aliases can be used

                          * parameter names can be abbreviated as long as the abbreviated form is unambigous

                          * parameter names can be omitted for parameters which also has positions.

                          Unlike in bash, in PowerShell it is the *shell* that does the parameter binding. The shell looks at the command definition and figures out whar arguments to bind to which parameters and with which coercion, e.g. parsing text as date or number if the parameter expects date or integer. The canonical form of the above is:

                          Select-String -Pattern <regex> -Path <path>

                          But because Pattern is the first parameter and Path is the second parameter, the names can be omitted.

                          Simple and consistent.

                          Indeed, if you ask the shell to explain the syntax ("help sls") this is one of the forms it responds with:

                          Select-String [-Pattern] <String[]> [-Path] <String[]> [-AllMatches <SwitchParameter>] [-CaseSensitive <SwitchParameter>] [-Context <Int32[]>] [-Encoding <String>] [-Exclude <String[]>] [-Include <String[]>] [-List <SwitchParameter>] [-NotMatch <SwitchParameter>] [-Quiet <SwitchParameter>] [-SimpleMatch <SwitchParameter>] [<CommonParameters>]

      5. Bainia
        Linux

        Re: Power Shell?

        I should correct my statement: Yes the window may open instantly, however it is still 11 seconds before the shell is actually usable. It doesn't matter if the system has been rebooted recently or not. Since we're likely using different hardware, I'm sure the speed will differ, so I can only comment on what I can see here. On the same hardware, the unix shells open immediately and powershell does not. So there's something similar to .profile?

        >On the contrary, Unix shells lack many, *many* of the features of PowerShell.

        Sorce? I've noticed tab completion works some of the times. The ls command is there which is nice and ps is there. Are there emacs bindings? No I have to use the home and end keys if I want to manipulate the line I'm working on. Can I delete a word backwards? Not that I've found. Can I kill the line I'm working on? Again, not that I can see. Aliases are nice, however the fact that there are unix like commands aliased over enforces the point that these should have just been adopted rather than abstracted out after the fact.

        >Yes it does. Text is just a sequence of string objects. But you will hardly ever use the powerfull string functions of PowerShell, because they simply are not needed when you operate with objects.

        Strings are the whole point of working on the command line to begin with. Examples? Sources?

        >There are short aliases for most common commands, all parameter names can be shortened as long as they are ambigous.

        Awesome! That shouldn't be too hard because all the parameters I've seen so far are ambiguous

        >Do not be fooled by the fact that it is considered good style to use the long forms when illustrating code.

        I'm so glad style is important here. Most sysadmins I know are concerned with getting something done correctly and in an expedient manner.

        >PowerShell can be every bit as terse as bash - sometimes more so.

        Again, examples?

        >Ignorant. PowerShell has always accepted both the forward slash as well as the backward slash forms.

        I'm so glad you're mature with the name calling and labeling. But I don't mind learning things and TIL that you can use a / slash in the command line. It just happens to get converted each time you tab to .\

        >Just save it. Or set a function to save it on exit and reload it on initialization. Or better yet: Build a library of actual snippets. Oh, bash doesn't have snippets?

        Or just use a shell that has all of this built in. Why should I need to build a library of information that should be included by default? I'm pretty sure bash doesn't need `snippets`, else it would already have them.

        >Where is the consistently implemented risk management in *sh shells? In PowerShell you can run any action command with -WhatIf. In that mode no changes will be made to the system. Instead the changes that *would* have been made are reported to the user. It even works with scripts: If you support -whatif as a script parameter it sets global preference to "whatif" and none of the commands of the script will actually execute.

        Risk Management? Now I am sure you're just astro-turfing for MS. In bash and other shells you can pass the -x flag and see exactly what your script is going to do when evaluated by the shell. We don't usually work on production data when writing scripts so there isn't a need for a -whatif flag. When we are working in production there are many checks to make sure you don't overwrite a file, make sure it exists, or test for multiple other conditions.

        >Where is *sh shells integration with transactions? You can use PowerShell to connect to multiple database servers, message queue servers, etc. and perform tasks in a transaction context and ensure transactional consistency.

        Paralell - http://www.gnu.org/software/parallel/

        xargs is also viable when dealing multiple systems

        >Where are *sh shells suspendable and resumeable scripts?

        Bash and other shells have job control to both suspend and resume scripts.

        >PowerShell workflows can run scripts across system restarts, suspend a script/job on one machien and resume it on another machine.

        Crontab and paralell

        >How do you create parallel *sh scripts? PowerShell supports parallel execution within a workflow script.

        By using Paralell or xargs

        >Oh and:

        >Linux: tail filename.log

        >PowerShell: gc filename.log -La 10

        >done.

        No, Not done. It does not work so I'm guessing you're using a custom library of sorts, not built in functions:

        PS C:\> gc filename.log -La 10

        Get-Content | A parameter cannot be found that matches parameter name 'La'.

        At line:1 char:19

        + gc filename.log -La <<<< 10

        + CategoryInfo : InvalidArgument: (:) [Get-Content], ParameterBindingException

        + FullyQualifiedErrorId : NameParameterNotFound,Microsoft.PowerShell.Commands.GetContentCommand

  20. 404
    Childcatcher

    Sure is sexy, but compatability man!, The COMPATABILITY!

    Tomorrow night I'm completing a server replacement with a new Dell PowerEdge T620 w/dual Intel Xeon E5-2630 6C processors, 16GB ram, 2x 1TB SATA HD's in RAID1 config - replaces another Dell PowerEdge from 2004 w/Windows 2003 SBS 8GB ram and three 79GB SCSI HD's in RAID4 that I installed back then. Going to retire said server, actually make it a DC just i->BREAK: seen the movie "Christmas Story"? The dad's Major Award and what happened to it? Just heard a tremendous crash, run to bedroom, see wife holding her arm standing over my wallshelf/cabinet thing smashed on the floor... she's ok, but she always hated it<-

    Meanwhile, I told you all that to say this: I installed Windows Server 2008 R2 w/SQL 2008R2 in this machine, which flies by the way, because the client runs a multimillion dollar business and doesn't need to be beta testing for Microsoft. Ain't nobody got time for dat, you know?

    ;)

  21. Anonymous Coward
    FAIL

    And we wonder why techies get no respect

    Jesus H Christ, with a comment board like this is it any surprise that people think we're troglodytes?

    Windows Server used to be crap. It isn't any more. It's not perfect either.

    Linux used to be crap. It isn't any more. It's not perfect either.

    For whatever task you have in mind, you may find Windows slightly less crap at doing it than Linux. Or you might find Linux slightly less crap. The end.

    There - fixed it for you.

    1. Anonymous Coward
      Anonymous Coward

      Re: And we wonder why techies get no respect

      Yeah, but the Windows only and Linux only people have been making these arguments for about fifteen years, rather than bother to learn the system that they don't know. Why would they learn something new, when they can loudly slag off the other system.

      There is the matter of bettering yourself by learning new things, but that's difficult, loud slagging off is easy.

    2. Anonymous Coward
      Anonymous Coward

      Extreme Negativity

      There also has been a major surge in drive-by down-voting, I would prefer to know why I should blow something out my ass.

      I blame society.

  22. s. pam Silver badge
    Thumb Up

    Number 11

    Format c:

    Insert DVD

    Boot NetBSD

    Job well done!

  23. RICHTO
    Mushroom

    Dont forget that Windows server includes the REFS filesystem too.

    Possible a bit new for mission critical, but it's there: http://msdn.microsoft.com/en-us/library/windows/desktop/hh848060(v=vs.85).aspx

  24. streaky
    Stop

    Is the argument seriously that IIS now works and windows supports FTP? Because if it is, no sale. All my servers don't support FTP because it's fail protocol fail. Chrooted sftp over ssh or get out? No really FTP is the most useless protocol ever.

    "Server 2012 sees Hyper-V catch up with VMware's mainstream"

    But VMware are technologically behind KVM and XEN so.. what?

    "Hyper-V Replica is a storage technology designed to continuously replicate your virtual machines across to a backup cluster"

    Distributed block device?

This topic is closed for new posts.