
"Snover, you could argue, is trying to make Windows more like Linux."
Better than the Linux shells in this case by a long way for Powershell, no current UNIX shell even comes close.
Microsoft has released Windows Management Framework (WMF) 5.0, a major update to its PowerShell scripting and automation platform. WMF 5.0 was first announced in April 2014. Windows architect and PowerShell inventor Jeffrey Snover highlighted features such as OneGet, now also called PackageManagement, which lets you install …
Kinda.
To say "no UNIX shell even comes close" is both accurate and grossly misleading. You didn't give anything to measure by, for starters - close in what regard?
Both have their problems. Object orientation is wonderful, right up until you're doing something with AD and Exchange and find that (for example) the distribution members have a different type to AD accounts so you can't directly compare them without doing some type conversion. That type conversion is a hassle, and a great example of the extra verbosity PowerShell constantly seems to require to accomplish something.
Objects are indeed more powerful, but require more work - plain text definitely has its advantages on occasion.
And what are you comparing as a "UNIX shell"? Just bash? Nobody would dream of using any UNIX shell without also having a copy of cp, mv, rename, grep, awk, sed, sort, and so forth. And for more power, you can always fire up Perl or Python. (And Python is a standard part of most modern distributions, so it's not like you need to install it. Perl used to be, but I think it's now missing from some more modern ones.)
I like PowerShell, but its verbosity gets to be tedious after a while. I like UNIX shells, but the plain text thing clearly has occasional limits that it takes Perl/Python to fix.
Frankly, what makes PowerShell inferior in my day to day work is Remoting. That's such a classic "Microsoft Developer Solution" - nobody bothered to consult anyone who would actually use it. With no decent persistent sessions, it's a PITA to use except in scripts. (WinRM? Ugh. Thanks, but no thanks.)
Want to improve PowerShell? Give me SSH and a tmux/screen equivalent. That'll be just peachy. (And yes, I'm aware SSH is coming to Windows. So it's just tmux/screen we're waiting on.)
Funny thing is, that shows that - just like on UNIX systems - it's not just about one tool. Decent administration requires many tools, working in harmony. PowerShell's almost there...
@sabroni - "Funny how the reasoned, sensible post in the middle has a name attached. Getting of sick of people using Anonymous posts as an excuse to behave like dicks."
If these people who post anonymously are so confident of what they claim, why are they afraid to attach their user name to it? One might suspect it's because that even they know that what they're saying is complete bollocks and they don't want that history accruing to their user name.
Let's look at the post which started this particular thread. It's a vague broad opinion without any real substance. It's a marketing message in a comment along the lines of "now PowerShell gets your clothes 26% whiter than the leading brand!"
Anonymous comments on El Reg seem to come in three main flavours. The first is when someone is offering genuine inside information on an IT cock-up and they are afraid of repercussions should that comment be traced to them. Those types of anonymous posts are valuable, but very rare. They are however the main reason why the anonymous feature is there.
The second type is where some marketroid posts horse shit about how wonderful his product is. These are the most common anonymous posts. Based on writing style I suspect that most of ones that I've read come from just one salesman from either Microsoft or from a Microsoft sales partner who seems to have a lot of spare time on his hands.
The third type are troll posts. They post utter bullshit because they know that they'll get other posters all in a lather to refute the blatant falsity in the post. Troll posts generally try to be as vague as possible in order to avoid giving respondents anything solid to respond to and easily refute. Something like "x doesn't even come close to y" without any sort of criteria or supporting facts is a classic troll.
I suspect that the first post is the third type. It's a troll.
The best response to marketroid and troll posts is to treat them as such, and not as serious posts.
Personally I post anon to evade auto-downvoters. By being anon, my statement us hopefully judged more on its merits, rather on the name attached.
People who get a rep on here for not slavishly supporting MS tend to suffer from auto-doenvoting. It's s shame this happens, but such is life.
"Any decent *nix shell (with decent tooling) will leave PowerShell in the dust."
It really doesn't - PowerShell is way more advanced and powerful for the majority of use cases. I am betting you have no idea what you are talking about.
"Want to run the same command on 10 different servers, at the same time?
*nix? Sure, no problem."
Really, so do tell me how you manage that on *Nix without sending the commands serially?
"PowerShell? "G'wan feck yerself.""
Powershell supports true parallel branching with multiple script paths executing simultaneously - and full secure remoting - so it's far easier than *Nix to execute 10 commands on 10 servers that are actually sent in parallel at the same time..
"Really, so do tell me how you manage that on *Nix without sending the commands serially?"
parallel or dsh or pssh or clusterit or clusterssh or multixterm or...how many options do you want?
"it's far easier than *Nix to execute 10 commands on 10 servers that are actually sent in parallel at the same time.."
It really isn't. Doing a remote execute from *nix is as simple as "ssh user@server command". Try that in PowerShell and brace for the total ballache.
"parallel or dsh or pssh or clusterit or clusterssh or multixterm"
So you have to use a different external toolset to the shell just to run stuff in parallel - wow that sucks.
"Try that in PowerShell and brace for the total ballache."
All you do is "invoke-command -computername Server01, Server02 {command}" - far simpler than *Nix with no need for additional authentication.
Most commands and parameter names can also be abbreviated.
"So you have to use a different external toolset to the shell just to run stuff in parallel - wow that sucks."
No, it's just the Unix way. One could argue this is marginally better or worse depending on their bias, but there are much stronger arguments both for and against PowerShell than trivia like this.
"far simpler than *Nix with no need for additional authentication."
Once again your bias and ignorance shows. "Without additional authentication" is normally done with SSH too, except with more available options for making it happen when required. Ultimately all you've done is prove it's easy in both cases rather than make PowerShell stand any taller.
> Want to run the same command on 10 different servers, at the same time?
In powershell
icm (gc hosts.txt) {ps}
To get a list of prpcesses running on all the computers listed in the hosts.txt file. The command (ps) is executed simultaneously on all hosts and the result is consolidated into a single list of processes, each with a property indicating which remote host it was received from.
Care to explain how this is a problem?
PowerShell is critical to Microsoft's plans for Windows Server. The company is trying to persuade admins to install Windows Server without a GUI shell at all, where possible, making PowerShell essential
Yeah, except for some of the commonly used roles, (File Server, IIS Server, SQL Server etc) there are things that you still have to use the GUI for, which are not accessible in PowerShell, which makes a nonsense of the whole thing.
> File Server
Run Samba on GNU/Linux (no Windows drone will know)
> IIS Server
You're a bit screwed there; refuse applications that make you dependent on a single platform vendor.
> SQL Server
MariaDB or some other will probably do. You'll also have a much easier time restoring back-ups etc.
@AC
For Fucks sake, what is the point of posting your stupid Linux crap as a reply to my post?
The point I was making is that although Microsoft are trying to push users to Install Server Core, in fact to carry out useful workloads, you have to install the GUI anyway.
In what way does your post help or enlarge on that point?
Oh, and just FYI I administer both Linux and Windows servers, depending on the requirements of the business, and the needs of our clients, and they are definitely not interchangeable for all cases.
I'm more interested in what you couldn't administer on IIS with powershell (with appcmd as a backup). Weren't MS claiming that the IIS front end was going to be changed to run powershell scripts behind the scenes? When I was playing with Powershell configuring IIS last year I managed to automate everything I needed to, but then I was only making app pools, configuring worker processes, nothing particularly fancy....
"Yeah, except for some of the commonly used roles, (File Server, IIS Server, SQL Server etc) there are things that you still have to use the GUI for, which are not accessible in PowerShell, which makes a nonsense of the whole thing."
Utter rubbish.
http://windowsitpro.com/powershell/file-server-management-windows-powershell
https://technet.microsoft.com/en-us/library/ee790599.aspx
http://sqlmag.com/powershell/using-sql-server-management-objects-powershell
Actually, you can administer most of them with a GUI running on another machine instead of opening a remote GUI on the machine and working from there. The idea you need a remote GUI/shell is something stemming from OS like Linux which have no standard and no good remoting frameworks...
The bad news is that now remoting is being replaced by scripts to ape hapeless Linux - so instead of nice RPC - and good error checking and handling - you get code running scripts and desperately trying to parse the results - a much inferior and less sound experience.
Can I sit on PC A, run something on server B, detach, reattach etc and have the f'ing thing work? because last time I tried PowerShell sucked complete and utter *ASS* when trying to do any kind of remote (and automated) work.
Thank goodness for Cygwin, SSH and tools and tools that actually work.
"features such as OneGet, now also called PackageManagement, which lets you install packages from cloud repositories,"
Considering how much of a pain in the ass MS made it to do simple Powershell things like remote script execution, or, hell, even running a script in your current directory, why would they open Powershell (and Windows) to this type of crap? Seems like a bad idea just waiting to get worse.
I thought the whole purpose for the PITA around remote scripting and having to type "./" all the fucking time was to improve security? And now they want to make things as simple as
One-Get -install http://virushaven.com/NewVirus.ps1
That, er, doesn't seem like a step forward. Might as well go back to emailing VBscript code around...
It is kind of funny, innit? They pushed Windows to get folks away from the "complexities" of the DOS command line, and now they're pushing a new command line to get folks away from the "complexities" of Windows. Maybe next will be a GUI that runs under Powershell to get folks away from the complexities of Powershell. And eventually they'll have to come out with a new command line to manage that GUI too.
Circle of life (or money) and all that...
"The reason it uses Windows and they chose to use Windows is because most people do not have the time, brain or motivation to learn a fucking shell."
You can still choose to install a GUI when needed or use the remote GUI admin tools (which all run Powershell under the covers). Removing the GUI reduces the attack surface and improves performance.
Just because you have a command line, it doesn't mean it is like Linux!
Linux can run Powershell but most people don't bother with it because any Linux admin can get any information they want and fully control a Linux box easily. Of course it can be used to interface from Linux to Windows servers but the truth is that most Linux admins are not interested in looking after Windows boxes because Windows just seems so shit after looking after Linux boxes (cannot express that enough!)
Right now, it is looking like Windows server is losing its already diminished market share to Linux because Linux is far more extensible (easy to create tools and apps without having to buy an add on) and performant, secure, far better uptime, easier to backup, simpler to upgrade, more feature complete, less resource intensive, open source etc.
"Right now, it is looking like Windows server is losing its already diminished market share to Linux "
Windows Server market share is still increasing. Mostly at the expense of Midrange *NIX boxes.
"and performant, secure, far better uptime, easier to backup, simpler to upgrade, more feature complete, less resource intensive, open source etc."
Sorry to burst your bubble of delusion, but Windows Server has had fewer vulnerabilities that were on average fixed faster (fewer days at risk) than SUSE and Redhat Linux every year for over a decade. Not to mention that current versions of Windows Server outperforms Linux in most common out of the box tasks, and as a Hypervisor. Just like the benchmarks showed that Windows 10 outperforms Linux desktops...
As to simpler to upgrade?! Just LOL. So lets say you want to say go from CentOS 5 to CentOS 6? That will be a complete reinstall.....
Any of this applicable to win 8.1/10 desktop? I for one am annoyed at seeing MS change gui menu locations from release to release. Seeing Charms Settings change from 8.0 to 8.1 makes me wish for bash-style admin and almost makes me feel fond of man pages.
At the end of the day, many complex linux/osx tasks can be automated via suitable commands and piping, all easily saved in text files.
Any chance regular Windows users can bypass their GUI mess?
Azure Cloud servers need a VERY robust scripting language.
So this trick is just to manage the mess they have created. If they would have integrated BASH or used Linux or BSD as the core OS 10-20 years ago we would just use UNIUX shell experts to manage the hundreds of thousands of Microsoft Azure servers.
Hint if MS Azure had to pay for every server and SQL license they would have switched to UNIX a long time ago... Hint if MS Azure ran BSD or Linux they could cut the number of bare metal servers in 1/2 and save on space, electricity and cooling as well as UPS capacity...
" they would have integrated BASH or used Linux or BSD as the core OS 10-20 years ago we would just use UNIUX shell experts to manage the hundreds of thousands of Microsoft Azure servers."
But instead they invested in building a much more powerful and secure scripting solution in Powershell that is fully Object Orientated, so we loose all that need to parse crappy text files.
"if MS Azure had to pay for every server and SQL license they would have switched to UNIX a long time ago"
The only feature comparable databases to SQL on UNIX are from Oracle and similar large corporates and are way more expensive than SQL Server. Also to get a supported version of *NIX like Redhat costs more than to get fully licensed and supported Windows Server. So nope. Just like corporates are mostly using Windows Server versus "free" alternatives.
"Hint if MS Azure ran BSD or Linux they could cut the number of bare metal servers in 1/2"
But Hyper-V Server is a proper Hypervisor layer that can run without an OS - and benchmarks have shown it outperforms Linux Hypervisors - which are a plugin to a full Linux OS only! How would running something less efficient cut the number of servers?
Hence presumably why Hyper-V has about 30% of the commercial Hypervisor market versus *Nix based solutions on about 1%.
Dang, some people must be seriously underemployed if they have time to debate schoolyard taunts like this. My shell's better than your shell...Really? No-one where I work gives a hoot about what you use, only what you do. I have 1000 servers running 50000 VMs and they all need a package audit. Use what you like, just get me the results by yesterday.