Continuo lendo em todos os lugares que o PowerShell é o caminho do futuro. Quando foi lançado, eu fiz vários laboratórios virtuais, mas desde então ainda não o uso em um ambiente de produção. Sei que chegará o dia em que estou lidando com sistemas operacionais onde ele já está instalado, por isso quero estar pronto.
Eu quero saber:
- Você usa isso?
- Qual foi o seu processo de 'inicialização' usando o PowerShell?
- Que tipo de tarefas de administração do sistema você programou?
- Sou administrador de banco de dados do SQL Server. Quais são algumas coisas legais a fazer com isso?
Parece que todos concordam que a Microsoft está pressionando muito, mas ninguém está realmente usando ainda. Eu quero ouvir os administradores de sistema por aí que estão usando para executar tarefas diárias e compartilhar alguns exemplos de código.
windows
windows-server-2008
windows-server-2003
sql-server
powershell
Nick Kavadias
fonte
fonte
Respostas:
A Microsoft está fazendo todo o possível para tornar o PowerShell a escolha de usuários avançados e gravadores de automação em todos os lugares. Já se foram os dias de compilação de código no .NET para fazer a mesma coisa, agora você só precisa do notepad.exe e do google. Somos grandes fãs disso no escritório, principalmente porque o Console de Gerenciamento do Exchange 2007 NÃO inclui tudo o que você pode fazer no PowerShell. A Microsoft falhou deliberadamente na implementação de coisas que são feitas apenas de vez em quando, e são mais fáceis de desenvolver dessa maneira, o que obriga totalmente seu uso se você tiver algo parecido com um ambiente complexo.
O gerenciamento da nova geração de produtos da Microsoft (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) possui ganchos do PowerShell muito ricos. Uma vez implantado o PowerShell Remoto (PowerShell 2.0 IIRC) com o Server 2008 R2, ele se tornará ainda MAIS útil para os gravadores de automação.
O que fizemos com isso:
Então, sim, o PowerShell estará conosco por algum tempo.
EDIT : Adicionando um exemplo de código, uma vez que foi solicitado
Isso pega um arquivo CSV criado com um script perl e atualiza um conjunto de grupos. Se o grupo já existir, substitui a associação pela especificada no arquivo. Se o grupo não existir, ele será criado. Esta é uma sincronização unidirecional. Além disso, ainda não está em produção, mas está próximo.
fonte
Dado que os produtos de servidor da Microsoft serão habilitados para PowerShell desde o início (acredito que a próxima versão do Exchange tenha todas as configurações disponíveis por meio do PowerShell), e que livros como o PowerShell in Practice descrevem ótimas maneiras de automatizar tarefas monótonas. é razoável sugerir que o PowerShell será uma tecnologia predominante no servidor Windows por um tempo ainda.
fonte
Eu recomendo o Podcast # 162 de Scott Hanselman . Parece que todas as equipes de servidores da Microsoft são "forçadas" a fornecer cmdlets do PowerShell e também a seguir uma sintaxe única e consistente.
Além disso, terceiros como o VMWare estão adotando
Em resumo, acredito que o PowerShell a partir do 2.0 esteja seriamente no negócio de substituir arquivos em lote por todas as tarefas, exceto as mais triviais.
fonte
Dez scripts do PowerShell que uso como administrador de banco de dados do SQL Server (todos são descritos / publicados no meu blog ):
fonte
Que tipo de tarefas administrativas você programou?
monitoramento de aplicativos / serviços: obtenha os principais números de desempenho de EventLog (remoto) e procedimentos armazenados e os exiba a partir de um único arquivo em lote
Eu sou um DBA do SQL Server, me mostre algumas coisas legais para fazer com isso?
automssqlbackup : backup diário para MSSQL com rotação (diário = incremental, semanal + mensal = completo; mantenha 5 backups diários, 5 backups semanais), fechando, notificação por email
fonte
Tendo usado scripts shell unix em uma carreira anterior e depois migrando para a administração de servidores Windows, posso dizer que aprecio muito o PowerShell - não tenho tempo nem capacidade de aprender muita sintaxe arcana e fiquei agradavelmente surpreso com o fato de de scripts do PowerShell podem ser escritos com uma linguagem muito direta ... entenda o que vale a pena como eu estava acostumado com o ksh !!
Eu prevejo que vai durar muito tempo.
fonte
Eu pensei que isso era legal: com o SQL Server 2008, você obtém novas extensões do PowerShell que permitem navegar nos bancos de dados SQL exatamente como o seu sistema de arquivos ou registro local.
Depois de instalar as ferramentas do SQL Server Client, você pode abrir qualquer banco de dados no PowerShell (através do menu de contexto do botão direito) e brincar com ele de uma maneira orientada a objetos:
Observe que a primeira linha simplesmente altera o prompt para que não demore tanto.
Esperemos que, além disso, é evidente o que está acontecendo aqui :)
fonte
O SQL Server 2008 agora tem opções de contexto do PowerShell no Management Studio, portanto, mais do que o Exchange está adotando. Além disso, pense nisso como um substituto para o DOS, pois isso é o que a MS estava pensando, pois eles simplesmente não podem melhorar a segurança do DOS para problemas de compatibilidade com versões anteriores, então eles criaram algo novo e wammo, problema resolvido!
fonte
Eu também sou um DBA e roteirista de longa data, voltando aos arquivos em lotes do DOS, V3.3! Movido para o VB Script, mas o PS é muito poderoso. Dê uma olhada - Desculpe, não posso postar o link, pois sou um novo usuário. Entendi isso no Blog de Otto Helweg. É uma ferramenta de inventário de software barata e alegre.
Exemplo de script do PowerShell:
Dave J
fonte
As tarefas a seguir são executadas pela minha equipe regularmente com o PowerShell
Dia a dia, eu tenho um prompt do PS o tempo todo e o uso para qualquer tarefa que eu costumava usar o CMD.
Aqui estão alguns exemplos de código para ler Listas de Sharepoint. Uso serviços da Web do Sharepoint e o novo cmdlet "New-WebServiceProxy" no PowerShell V2.0
Oisin Grehan tem um ótimo post sobre o uso do Sharepoint Web Services que eu usei como base para criar todas as minhas funções. Ele possui um script new-webservice.ps1 incrível que você pode usar se ainda estiver usando o PowerShell V1.
Além disso, aqui está a função básica que eu usei para obter a memória disponível nos nós do meu cluster
fonte
Tentei o PowerShell para um pequeno projeto no trabalho - uma migração diária de um subconjunto de ~ 600 usuários e ~ 200 grupos do AD corporativo para um sistema UNIX antigo usando arquivos semelhantes a CSV . Me ofereceram um script VBScript de 500 linhas (!) Que selecionou um único grupo e seus usuários como ponto de partida.
Acabou que um script do PowerShell de ~ 20 linhas poderia fazer a coisa toda ...
Como usuário * NIX (servidor e cliente), fiquei muito agradavelmente surpreendido com o PowerShell. Mesmo se você conhecer apenas um pequeno subconjunto de comandos, poderá fazer um trabalho realmente poderoso com ele. Eu só preciso de acesso remoto SSH (como)
fonte
Como não posso usá-lo? Todos os aplicativos de servidor da Microsoft que estão saindo / sendo atualizados agora são gerenciados usando o Powershell. Uma interface do usuário / console de gerenciamento mais ou menos irritante é, então, fornecida no topo desse núcleo, que geralmente é lento e, como alguém apontou, carece de recursos disponíveis ... então não posso dizer que temos muitas opções na verdade ^ ^
fonte
O PowerShell não é perfeito, mas se você o usou, sabe que é muito legal. Ter acesso a toda a biblioteca .net e aos cmdlets internos (e criar seus próprios cmdlets usando o PS na 2.0), isso é muito legal.
A única coisa que acho que falta é um bom IDE para ele, que tenho certeza que virá da MS algum dia. No momento, eu uso o powershell plus da Idera e o adminscripteditor, que permitem a depuração e são bem legais.
Consegui me afastar muito bem do VB.
Meu maior projeto até o momento com o posh é usar o "powershellASP" para criar uma página da Web básica que execute comandos do powershell e extraia informações sobre o host vmware e a VM dos meus mais de uma dúzia de hosts VMWare ESXi (gratuitos) e os exiba em tabelas HTML. Fiz isso porque, com o VMWare ESXi gratuito e sem centro virtual, não há outra maneira de obter uma visão geral em tempo real de todas as minhas VMs na empresa. O PowershellASP é um analisador de terceiros gratuito criado para o IIS e não suportado pelo MS. Portanto, ele pode fazer algumas coisas limitadas agora e a documentação é bastante esparsa.
fonte
Eu tenho um monte de scripts de gerenciamento / inventário que pesquisam coisas diferentes no AD e os consultam no WMI para obter estatísticas vitais, como compartilhamentos no servidor, espaço em disco, espaço em disco usado etc.
Scripts Gerais:
Scripts de usuário:
Eu tenho um que enumera todas as máquinas convidadas do VMWare nos meus servidores ESX
Eu tenho um script que agarra arquivos após x dias e os exclui com segurança.
Basicamente, posso fazer o que levou cerca de 200 linhas de VBScript e fazê-lo em 10 do PowerShell. Você também pode fazer coisas que simplesmente não pode fazer ou fazer bem no VBScript - como enviar e-mails com anexos - o que faço regularmente para me enviar os resultados dos meus scripts. Além disso, você pode gravar entradas significativas e exclusivas no log de eventos com nomes de serviço personalizados e IDs de Eventos.
É nisso que consigo pensar em cima da minha cabeça. Minha ferramenta de escolha é o PowerShell agora, apenas facilita a vida.
Basicamente, é tão útil para um administrador do sistema quanto o script Bash é para um administrador do Unix.
fonte
Eu estava olhando poweshell para substituir nossos scripts em lote de clientes - executando programas, scripts de logon etc.
Mas descobriu que ele adicionou pelo menos 10 segundos ao tempo de logon - com todos os "ajustes" no lugar. Então acabamos ficando com o que estávamos usando.
fonte
Não sendo desenvolvedor do .NET, tenho uso limitado para todos os presentes relacionados ao .NET que o PS permite que você use. No entanto, como administrador do Exchange (entre outras coisas), a integração do PowerShell ao Exchange 2007 é INCRÍVEL. Finalmente, tenho um mecanismo de script confiável para o meu sistema de correio; até agora, recebi estatísticas mensais nas caixas de correio de todos, ajustando a quem vários endereços de email são atribuídos dependendo da hora do dia, criando e atribuindo permissões automaticamente em pastas públicas e usuários de balanceamento de carga entre nossos dois bancos de dados de caixas de correio . A outra coisa interessante do ponto de vista do Ex07 é que, depois de fazer qualquer coisa na GUI, ele apresenta os comandos relevantes do PowerShell para o que você acabou de fazer. Copie-os e, eventualmente, você terá um conjunto de scripts PS que podem refazer seu ambiente do Exchange do zero.
fonte
Automatizando certas coisas com verificações de servidor em que trabalho (reunindo informações básicas do WMI e coletando erros e avisos dos logs de eventos).
Sua manipulação de logs de eventos é incrível.
Recentemente, escrevi um script para desativar o pop-up de atualização automática que o Foxit Reader ativou por padrão em um domínio em que o script é executado. Ele puxa uma lista de computadores do AD e testa para verificar se está ativo, depois muda de 1 para 0.
Uma coisa que eu esqueci!
Você praticamente tem acesso total às bibliotecas .NET. É um pouco doloroso fazer coisas realmente complicadas com isso, mas se você precisar, está lá para você.
fonte
Nós o usamos para várias tarefas administrativas, sendo uma loja principalmente da Microsoft. Alguns scripts são simples, como limpar arquivos antigos ou desfragmentar máquinas e registrar os resultados. Um script audita computadores usando principalmente WMI e registra os resultados em um banco de dados. Ele obtém itens como hardware (CPU, RAM, unidades, etc.), informações de rede, usuários locais, software instalado e informações de perfil. Há um que chama um serviço da web para enviar email. Eu acho que no futuro ele substituirá o restante dos scripts VBScript que ainda estão sendo usados. Ainda não o estamos usando para tarefas do Exchange ou do SQL Server.
Estou ansioso pela próxima versão, que terá suporte para trabalhos em segundo plano, transações, melhor tratamento de exceções, um novo ISE (Integrated Scripting Environment), melhor depuração, etc.
fonte
Meus administradores do Windows ainda não usam o PowerShell. Todos já ouviram falar, mas não tiveram tempo para se familiarizar.
Eu decidi dar uma olhada eu mesmo. Vindo de um plano de fundo do shell Unix, pensei que o Windows finalmente deveria ter um ambiente de programação de shell real. Eu acho que a Microsoft fez algumas coisas bem com o PowerShell e algumas coisas não tão bem.
O lado bom é o uso de objetos como intermediário entre os cmdlets no PowerShell. Isso traz ao PowerShell um nível de poder que os scripts baseados em texto precisam invadir para começar a trabalhar.
No lado negativo, eles realmente não utilizam muito dos comandos do shell do Unix. Portanto, a curva de aprendizado é desnecessariamente íngreme e não ajuda as pessoas a passarem facilmente do Unix para o PowerShell ou vice-versa. O máximo que eles fazem é definir aliases para alguns dos PowerShell cmdlets, como ls aliasing Get-ChildItem com toda a linha de comando ser diferente.
Apenas meus dois centavos...
fonte
Essa é mais uma resposta do desenvolvedor, mas é do mundo real e começaremos a testá-la em algum momento nos próximos meses. Estou começando a aprender o PowerShell para escrever scripts para trazer tarefas do SQL Server para o nosso ambiente de integração contínua . Os scripts de integração contínua serão executados principalmente pelo NAnt e MSBuild via JetBrains TeamCity .
Além disso, estou procurando mudar para o PowerShell como meu shell de comando principal do Windows para fins gerais e especialmente para tarefas de administração de banco de dados do SQL Server.
Desculpe, ainda não tenho nenhum exemplo de código para compartilhar, porque ainda estou aprendendo! Ficarei feliz em publicar alguns quando o fizer :)
Aqui está um exemplo de código de linha única que acabei de responder a outra pergunta sua :) Mas ei, para o wiki ...
Isso listará os hotfixes instalados:
fonte
Embora não seja a linguagem de script mais fácil de entender (presume-se uma experiência sólida com pipes) e tenha sua própria alavancagem de esquisitices (me dê uma coisa simples, como sed !!), acho o PowerShell bastante poderoso. Não está no nível do Bash ou de outros shells do Unix, mas ainda assim.
Eu o uso para supervisionar algumas exportações e importações de banco de dados com avisos de email, caso as coisas corram mal, e faça algumas operações rotineiras em lote.
Certamente já é o meu shell principal do Windows, embora não seja realmente o tipo de coisa "escreva menos faça mais". O PowerShell tem sua verbosidade (e herança do .NET) jogando contra ele.
fonte
O PowerShell versão 1.0 era extremamente limitado em muitos aspectos, mas a versão 2.0 está indo muito bem. Comparado aos scripts em lote, é muito mais poderoso. Eu realmente não o uso como um shell, apenas para scripts, então minha experiência é colorida de acordo. Eu realmente não gosto da sintaxe (
-eq
vs==
,-gt
vs>
, etc.), mas aprecio poder entrar no .NET se precisar fazer algo estranho. Eu acho que pela versão 3.0 será ótimo. No momento, eu o colocaria firmemente na categoria de "faz o trabalho".Eu o uso principalmente para automatizar a implantação de código. Esta é uma área em que brilha sobre a criação de algo em C #. As operações relacionadas ao shell, como cópia recursiva de diretório e outras coisas que os scripts do Bash têm dado por certo há anos, tornam as coisas muito mais fáceis.
fonte