O Vanilla Powershell é suficiente para um idioma para administradores de servidores Windows e DB?

8

Uma instalação limpa do PowerShell por si só tem funcionalidade suficiente para administrar um ambiente de domínio do Windows e / ou servidores SQL?

Se não, quais são bons, gratuitos ou pagos, complementos de terceiros?

MotoWilliams
fonte

Respostas:

8

Para responder a essa pergunta, você precisa diminuir o zoom para ver a imagem maior e perguntar o que significa administrar servidores Windows e SQL. Por exemplo, quantas dessas outras coisas você possui em seu ambiente:

  • Produtos de backup de terceiros como NetBackup ou BackupExec
  • Produtos antivírus
  • Ferramentas de armazenamento
  • Firewalls ou software de filtragem da web
  • Alerta de hardware (como IBM Director ou HP SIM)

Todas essas coisas têm seus próprios mecanismos de gerenciamento e, como o PowerShell ainda é relativamente novo, nem todos os serviços serão habilitados para PowerShell. Por enquanto, pode ser necessário sair do PowerShell para gerenciar coisas como essas.

Por outro lado, também não há outro idioma que funcione melhor em todas essas ferramentas do Windows.

Quando você diz "funcionalidade para administrar servidores", isso ainda não vem de um idioma do Windows. No mundo * nix, você pode ficar dentro de um ambiente de script, mas o mundo do Windows ainda não está lá.

Brent Ozar
fonte
2
Discordo. Acho que o PowerShell contém a funcionalidade para "administrar servidores" e, onde pode estar faltando cmdlets específicos, ele ainda pode tirar proveito dos aplicativos de console existentes, aplicativos COM e assemblies .NET. Parte disso exigirá trabalho para desenvolver a solução, mas quanto mais tempo o PowerShell estiver disponível, soluções mais refinadas estarão disponíveis.
30510 Steven Murawski
Certo, como você disse, ainda será necessário trabalho para desenvolver sua própria solução. Estamos caminhando para o dia em que você nunca precisa sair do PowerShell para fazer seu trabalho, mas ainda não chegamos lá, concorda?
Brent Ozar
Estou muito mais perto de concordar com isso. Talvez eu esteja desconectado da semântica, mas "deixar" o PowerShell para mim significa deixar o shell, o script ou o host, o que não é necessário. Se definirmos "sair" do PowerShell como se afastar dos cmdlets, concordo. :)
Steven Murawski
Não tenho certeza se concordo. Se você pode administrar com WSH, Perl ou C # (por meio de WMI, APIs do Windows, dlls de terceiros etc.), você pode fazer o mesmo no PowerShell com o mesmo ou menos código.
Wedge
Certo - você não pode administrar o Windows completamente através de QUALQUER idioma, como eu disse. "Não existe outro idioma que funcione melhor em todas essas ferramentas do Windows". Foi o que eu disse.
Brent Ozar
4

A resposta para sua primeira pergunta é um retumbante "SIM".

Para gerenciar um domínio existente do Windows, o PowerShell "vanilla" (sem snapins adicionais) fornece suporte imediato para WMI, ADSI, COM e .NET.

O gerenciamento de máquinas remotas é tratado pelo WMI (ou COM / .NET, dependendo do caso de uso).

O gerenciamento do SQL Server pode usar as bibliotecas SMO (consulte as Extensões do SQL Server PowerShell para obter idéias). Você pode acessar dados via ADO.NET.

Para responder à segunda parte da sua pergunta, quais são os bons complementos de terceiros, realmente depende do que você precisa fazer. Como John Cook mencionou, as extensões da comunidade do PowerShell são um ótimo complemento geral. Existem muitos, muitos outros. O PowerShellCommunity.Org possui várias ótimas referências para produtos de terceiros e o Codeplex possui um grande número de projetos de código aberto do PowerShell.

Mais produtos da Microsoft estão adicionando suporte ao PowerShell (como SQL Server 2008, Exchange, Active Directory, etc.)

A V2 (que está chegando) contém alguns recursos excelentes de comunicação remota e de trabalho em segundo plano.

Steven Murawski
fonte
3

O Powershell não é fornecido com as ferramentas de administração SQL, embora você possa continuar usando coisas como osql ou isql. Eu sei que existem suplementos do Powershell que permitem "montar" um servidor SQL e navegá-lo como se fosse um sistema de arquivos (muito parecido com o material do Registro incorporado).

Brad Wilson
fonte
11
A partir do SQL Server 2008, existem cmdlets nativos do PowerShell e um provedor.
9139 Steven Murawski
2

As extensões da comunidade do PowerShell ( PSCX ) são gratuitas e convenientes.

John D. Cook
fonte
1

Sozinho e sozinho, o PowerShell não é suficiente.

Mas o PowerShell não está sozinho e você também não. Existem extensões como as mencionadas por John D. Cook acima, além de uma comunidade vibrante que compartilha o que aprendem sobre isso.

Ele foi feito para ser fácil e constantemente estendido e fornece acesso aos objetos COM e .NET necessários para administrar o que você quiser.

John Saunders
fonte
0

Sempre há Perl. :) Para DBAs do SQL Server, consulte o livro de Linchi Shea .

K. Brian Kelley
fonte
0

Eu realmente achei o snap-in do Quest ActiveRoles muito útil para trabalhar e gerenciar o Active Directory. Você pode obter o snap-in aqui , mas acho que este post do blog faz um excelente trabalho explicando o que é, como configurá-lo e como usá-lo.

Abdômen
fonte
0

Como um DBA em um ambiente bastante amplo, minha opinião é SIM. Criamos uma estrutura inteira de monitor e manutenção do MS SQL Server usando apenas o PowerShell 1.0. Este sistema automatiza o monitoramento diário da capacidade, bem como a manutenção do índice de backup, etc.

Jagoop
fonte