Re: No POSIX
>> As a scripting language, it's OK - nothing special,
What makes you say that? Here is a list of nice extras it has that TheVogon posted a while back (and which I have shamelessly stolen from Link).
!--Not my words below here
1) Object oriented pipes so that I don't have to format and reparse and be concerned about language settings.
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.
!--My words begin again
These are awesome things that really put it high up. Unless perhaps you're comparing it to Python, but compared to old school scripting languages such as Bash, it's phenomenal.
>>"For the interactive command line, it's quite crap (in my opinion)."
Well the bare default terminal is, that's why I pointed you at ISE which comes installed on all Windows 7 and 8 boxes by default and includes things like an integrated debugger!
EDIT: For some reason I lost my link to performing Windows updates via Powershell from my earlier reply to you. I've closed the tab now, but yes, you can do this also.