Veja este post em SO, que está lentamente se tornando a resposta canônica para essa pergunta.
Eu me envolvi com powershell ao longo dos anos e realmente não encontrei um lugar onde eu não poderia fazer o trabalho apenas com facilidade com um pouco de python / cygwin / wmic / dos (leia o último como o Windows batch).
É provavelmente apenas familiaridade com essas outras ferramentas, mas eu não vi em nenhum lugar que era uma necessidade real de usar o powershell.
Veja este post em SO, que está lentamente se tornando a resposta canônica para essa pergunta.
Se você for um administrador e for gerenciar aplicativos de servidor da Microsoft em um futuro próximo, precisará aprender o PowerShell. É assim que é ^^
A maioria dos novos sistemas que estão lançando é gerenciada usando o powershell e as IUs lentas construídas sobre isso são geralmente inúteis e todas funcionam ao emitir cmdlets do powershell em segundo plano. Como o RainyRat já apontou sobre o Exchange 2007 - aplique esse conceito a qualquer sistema Microsoft recém-lançado ou lançado e a imagem ficará mais clara.
Mas, com certeza, para a manutenção regular de scripts de sistemas antigos ou existentes hoje, ainda não decolou. Pelo menos não no meu livro - principalmente porque muitas vezes você quer suporte para qualquer coisa que você faz em muitos sistemas mais antigos, como o Windows 2003 / XP, sem ter que implantar um novo "mecanismo" também. Quando as plataformas são atualizadas para 2008+ e Win7 +, também pode se tornar mais útil nesse aspecto.
Para coisas regulares de administração? Não, ainda não - .BATs ou (em um trecho) VBScript ainda fazem o trabalho para mim. Para gerenciar o Exchange 2007, no entanto, ele está se tornando rapidamente indispensável para mim. Há uma série de coisas no Ex07 que você não pode fazer de outra maneira, porque elas ainda não escreveram os bits da GUI para elas.
Eu geralmente uso o VBScript para tarefas de gerenciamento. No entanto, você acaba contando com servidores COM para fazer qualquer coisa difícil, muitos dos quais não são padrão no Windows, então você tem que comprar (e lembre-se de instalar) servidores COM de terceiros. Em particular x64 causa problemas porque todos os meus servidores COM são 32 bits, então eu acabo tendo que executar a versão x86 do cscript de \ windows \ syswow64.
Eu já joguei usando C #, mas ele não foi compilado, então é mais trabalhoso e há um pouco de overhead (programador) para tarefas simples.
Estou longe da velocidade com o Powershell, mas o que me oferece é um balcão único para fazer tudo. Os commandlets padrão são bastante abrangentes e integra-se muito bem ao .Net quando você deseja algo mais incomum.
Antes, em seu post você se refere a usar "um pouco de python / cygwin / wmic / dos". Bem, eu também, mas são quatro soluções, e você pode substituí-las aprendendo o Powershell. Ainda haverá os scripts complicados que provavelmente farei no VBScript, mas o Powershell pode fazer a maior parte do que eu preciso.
JR
Tags powershell