it-swarm-pt.tech

PowerShell? Você usa isso? Você pode me mostrar algumas coisas legais de administração do sistema que eu posso fazer com isso?

Continuo lendo em todos os lugares que PowerShell é o caminho do futuro. Quando foi lançado, fiz vários laboratórios virtuais, mas desde então ainda não o uso em um ambiente de produção. Eu sei que chegará o dia em que eu estou lidando com sistemas operacionais onde ele já está instalado, então eu quero estar pronto.

Eu quero saber:

  1. Você usa isso?
  2. Como foi o processo de 'inicialização' usando o PowerShell?
  3. Que tipo de tarefas de administração do sistema você programou?
  4. 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.

45
Nick Kavadias

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, mais fáceis de serem desenvolvidas 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:

  • Crie uma página da web para delegar determinadas tarefas administrativas aos usuários do suporte técnico. A página da Web dispara comandos que são executados no PowerShell. Coisas que faz:
    • Criar e excluir contas de usuário, incluindo o provisionamento de caixas de correio e diretórios pessoais do Exchange 2007
    • Desbloqueia contas bloqueadas
    • Criar/excluir grupos
    • Adicionar/remover usuários de grupos
    • Mover usuários entre lojas de correio
    • Definir senhas
  • Faça extrações do sistema ERP $ e envie dados do catálogo de endereços global para o Active Directory todas as noites.
  • Resolva o problema do LegacyExchangeDN que surgiu com a migração do Exchange 2003 para o Exchange 2007. Tinha que adicionar um endereço X500 a todos os que estavam no Exchange 2003. Um script do PowerShell bastante curto o corrigiu.
  • Criação de scripts de "caixas de correio de grupo" (caixas de correio compartilhadas no Exchange, onde vários usuários têm acesso à caixa de correio), um processo manual, devido à natureza dos dados que precisamos antes de começar. Padronizou bastante a configuração dessas caixas de correio.
  • Criou um script que percorreu todas as máquinas doma redefinindo uma chave de registro específica e reiniciando um serviço. Demorou 18 horas para ser concluído, mas o trabalho foi concluído.

Então, sim, o PowerShell estará conosco por algum tempo.

EDIT : Adicionando uma amostra de código, uma vez que foi solicitada

$ list = import-csv ("groupusers.csv") 
 $ lastseengroup = $ list [0] .group 
 $ ADGroupPrefix = "grp.netware." 
 $ ADGroupSuffix = "{redigido - no formato de, ou = grupos, dc = domínio, dc = domínio, dc = domínio}" 
 Lista de membros de variável clara 
 Usuários desconhecidos de variável clara 
 foreach ($ entry na $ list) {
 if ($ ($ entry.group) -ne $ lastseengroup) {
 echo "tropeçou no novo grupo $ ($ entry.group), efetuando alterações para $ lastseengroup "
 $ newgroup = $ ADgroupPrefix + $ lastseengroup 
 $ newgroupdn = '"' + "cn = $ newgroup $ ADGroupSuffix" + '"' 
 echo" obtendo DN para $ newgroup "
 $ existinggroup = dsquery group domainroot -name $ newgroup 
 if (($ existinggroup -ne $ null)) {
 grupo dsmod $ newgroupdn -chmbr $ memberlist 
} else {
 dsadd group $ newgroupdn -scope u -secgrp yes -members $ memberlist -desc "Grupo importado do eDirectory" 
} 
 Clear-Var lista de membros responsáveis ​​
} 
 $ User = get-user $ ($ entry.member) -ErrorAction SilentlyContinue 
 if ($ User.isvalid) {
 $ UserDN = $ User.distinguishedname 
 $ Memberlist = $ memberlist + '"' +" $ UserDN "+ '"' 
} Else {
 $ Unknownusers = $ unknownusers + $ ($ entry.member ) 
} 
 $ lastseengroup = $ ($ entry.group) 
 
} 
 dsadd group "cn = $ ADGroupPrefix $ lastseengroup $ ADGroupSuffix" -scope u -secgrp yes -members $ memberlist

Isso pega um arquivo CSV criado com um script Perl e atualiza um conjunto de grupos. Se o grupo já existir, ele 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 ainda está em produção, mas está próximo.

34
sysadmin1138

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 possui todas as configurações disponíveis no PowerShell) e que livros como PowerShell na prática descrevem ótimas maneiras de automatizar tarefas monótonas, acho razoável sugerir que o PowerShell seja uma tecnologia predominante no servidor Windows por um tempo ainda.

17
moobaa

Eu recomendo 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 VMWare estão adotando

Em suma, acredito que o PowerShell a partir do 2.0 esteja seriamente no negócio de substituir arquivos em lote por todas as tarefas menos triviais.

12
Michael Stum

Dez scripts do PowerShell que uso como administrador de banco de dados do SQL Server (todos são descritos/publicados em meu blog ):

  1. Verifique o espaço em disco em todos os servidores SQL e carregue dados em uma tabela SQL
  2. Executar relatórios de permissões em todos os SQL Servers de produção e carregar dados em um banco de dados SQL
  3. Descubra tudo Windows Server 20 clusters, nós e virtuais na rede e carregue em tabelas SQL
  4. Descubra todos os bancos de dados em todos os SQL Servers, conforme definido em SCCM e carregue em uma tabela SQL
  5. Crie um scorecard de backup do SQL Server carregando informações de backup em todos os servidores SQL em uma tabela SQL
  6. Verifique se TCP está desativado no Windows Server 2003 SP2 (este é um fator de desempenho para muitos servidores SQL))
  7. Verificar alinhamentos da partição de disco (também prejudicam o desempenho se os discos estiverem alinhados incorretamente)
  8. Copie tabelas SQL de um servidor para outro
  9. Recursiva copiar todos os pacotes SSIS usando um armazenamento MSDB de um servidor para outro, incluindo a estrutura de pastas
  10. Criar meu próprio visualizador de dependência de objeto gráfico
10
Chad Miller

Que tipo de tarefas administrativas você programou com ele?

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 ele?

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

8
devio

Tendo usado scripts unix da Shell em uma carreira anterior e depois migrando para a administração de servidores Windows, posso dizer que realmente aprecio o PowerShell - não tenho tempo nem capacidade de aprender muita sintaxe misteriosa 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.

7
WiredNut

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 sistema de arquivos ou o 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:

PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\ExampleDB\>function Prompt {"PS >"}
PS >cd tables
PS >dir

SCHEMA          NAME         CREATED
------          ----         -------
dbo             MyTable      25/06/2009 17:02

PS > dir | format-table name, columns, rowcount, parent

NAME            COLUMNS      ROWCOUNT      PARENT
----            -------      --------      ------
MyTable         {Id, Name}   0             {ExampleDB}

PS >$myTable = dir | where {$_.Name -eq "MyTable"}
PS >$myTable.Script()

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[MyTable](
[Id] [int] IDENTITY(1,1) NOT NULL
[Name] [nText] NOT NULL
) ON [PRIMARY]

PS >set-location \SQL\AnotherServer\Default
PS >cd databases\Northwind\tables
PS >$myTables = dir | where {$_.Rowcount -gt 100 -and $_.HasIndex -eq 1}
PS >$myTables.Count

8

PS >foreach ($table in $tables) {$table.RebuildIndexes(90)}

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 :)

7
Lex

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 é exatamente 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!

5
SQLGuyChuck

Eu também sou um DBA e scripter de longa data, voltando aos arquivos em lotes do DOS, V3.3! Movido para VB Script, mas PS é muito poderoso. Dê uma olhada em - Desculpe, não posso postar o link, pois sou um novo usuário. Entendi isso no Blog de Otto Helweg, que é uma ferramenta de inventário de software barata e alegre.

  • 1- Puxa a lista de computadores para consultar de uma tabela de banco de dados
  • 2- Adiciona os dados e hora atuais ao resultado
  • 3- Registra os resultados da auditoria em um banco de dados

Exemplo de script do PowerShell:

# Open the database connection
$dbConn = new-object System.Data.SqlClient.SqlConnection "server=kcdb;database=Inventory;Integrated Security=sspi"
$dbConn.Open()
$sqlQuery = $dbConn.CreateCommand()

# Get all known computers
$sqlQuery.CommandText = "select * from Inventory..Computers"
$reader = $sqlQuery.ExecuteReader()
$computersToQuery = @()
while ($reader.Read()) {
   $computersToQuery += $reader["Computer"]
}

# Close the database connection
$dbConn.Close()

$softwareInventory = @{}
foreach ($computer in $computersToQuery) {
   $psinfoOutput = ./psinfo.exe -s Applications \\$computer

   $foundSoftwareInventory = 0
   $computerName = ""
   foreach ($item in $psinfoOutput) {
      if ($foundSoftwareInventory -eq 1) {
         # Force the results to a string
         # Remove any single quotes which interfere with T-SQL statements
         # Load the result into a hash whereby removing any duplicates
         [string]$softwareInventory[$computerName][$item.Replace("'","")] = ""
      }

      if ($item -like "System information for *") {
         $computerName = $item.Split("\")[2].TrimEnd(":")
      } elseif ($item -eq "Applications:") {
         $foundSoftwareInventory = 1
         $softwareInventory[$computerName] = @{}
      }
   }
}

$dbConn = new-object System.Data.SqlClient.SqlConnection "server=kcdb;database=Inventory;Integrated Security=sspi"
$dbConn.Open()
$sqlQuery = $dbConn.CreateCommand()

foreach ($computer in $softwareInventory.Keys) {
   foreach ($softwareItem in $softwareInventory[$computer].Keys) {
      "Loading-" + $computer + ":" + $softwareItem

      # Try an Update then an Insert 
      trap {
         $sqlQuery.CommandText = "update Inventory..SoftwareInventory set AuditDate = getdate() where  Computer = '" + $computer + "' and Software = '" + $softwareItem + "'"
         $result = $sqlQuery.ExecuteNonQuery()
         continue
      }

      $sqlQuery.CommandText = "insert into Inventory..SoftwareInventory (Computer,Software,AuditDate) values ('" + $computer + "','" + $softwareItem + "',getdate())"
      $result = $sqlQuery.ExecuteNonQuery()
   }
}

$dbConn.Close()

Dave J

4
Dave Jackson

As tarefas a seguir são realizadas pela minha equipe regularmente com o PowerShell

  • listar a memória disponível em todos os nós dos nossos clusters Hyper-V.
  • Gerenciar um arquivador Netapp
  • Provisione novas máquinas virtuais Hyper-V
  • Gravar e ler de listas do SharePoint programaticamente

Dia a dia, eu tenho um Prompt de PS o tempo todo e o uso para qualquer tarefa fora da qual 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

$url = "http://server/sites/site/_vti_bin/lists.asmx"
$listWebService = new-webServiceProxy -uri $url -UseDefaultCredential
$listName = "MyList"
$viewGuid = $null
$query= $null
$viewFields = $null
$numRowsReturned = 20000
$queryOptions = $null
$result = $listWebService.GetListItems($listName,$ViewGuid,$query,$viewFields,$numRowsReturned,$queryOptions,$null)

Oisin Grehan tem um ótimo post sobre o uso do Sharepoint Web Services que usei como base para criar todas as minhas funções. Ele tem 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

Function Get-AvailableMemory {
param
(
[string[]]
$servers
)
BEGIN {
$query = "select AvailableBytes,__SERVER from Win32_PerfRawData_PerfOS_Memory"

$availableMemory = @{
                    Name="AvailableMemory";
                    Expression = {[math]::round($_.AvailableBytes/1gb,2)}
                    }
$serverName = @{  
                Name ="Server";
                Expression = {$_."__SERVER"}                                      
               }
}
PROCESS {
foreach ($server in $servers){
    get-wmiobject -query $query -computer $server |
    select-object $availableMemory, $serverName
    }
}

END {}    

}
3
Andy Schneider

Tentei o PowerShell para um pequeno projeto no trabalho - uma migração diária de um subconjunto de ~ 600 usuários e ~ 200 grupos da empresa AD para um sistema UNIX antigo usando CSV - como arquivos. Me ofereceram um script de 500 linhas VBScript (!) 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 (- like) ...

2
Morten Siebuhr

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 é 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 ^ ^

1
Oskar Duveborn

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 é uma boa IDE para ela, que tenho certeza que virá da MS algum dia. No momento, uso o powershell plus da Idera e o adminscripteditor que permitem a depuração e são muito legais .

Eu era capaz de me afastar de VB muito bem.

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 puxe o host do vmware e VM informações do meu mais de uma dúzia de VMWare ESXi (gratuito) hospeda e exibe-os 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 IIS e não é suportado pelo MS. Portanto, ele pode fazer algumas coisas limitadas agora e a documentação é bastante esparsa.

1
Peteski

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:

  1. Obtenha espaço livre/usado em disco, RAM, etc.
  2. Consulte o WMI para obter informações sobre o BIOS, modelo de criação do servidor etc.
  3. Verifique a versão AV e verifique se existem certas entradas do registro
  4. Auditoria de compartilhamentos em servidores Windows

Scripts de usuário:

  1. Enumere o AD que captura todos os usuários e a quais grupos eles pertencem e, em seguida, grava no Excel ou CSV
  2. Encontre usuários conectados no momento via TS e no console

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.

1
Zypher

Meus administradores do Windows ainda não usam o PowerShell. Todos eles já ouviram falar, mas não tiveram tempo para se familiarizar.

Eu decidi dar uma olhada eu mesmo. Vindo de um histórico do Unix Shell, pensei que o Windows finalmente deveria ter um ambiente de programação Shell real. Eu acho que a Microsoft fez algumas coisas bem com o PowerShell e algumas coisas não tão bem.

No lado bom, está o uso de objetos como intermediário entre os cmdlets no PowerShell. Isso traz um nível de poder ao PowerShell 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 Unix Shell. 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 cmdlets do PowerShell, como ls aliasing Get-ChildItem , com todas as opções de linha de comando diferentes.

Apenas meus dois centavos...

0
user7286

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ê.

0
nonades

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 para o Exchange 2007 é IMPRESSIONANTE. 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.

0
RainyRat

Eu estava olhando poweshell para substituir nossos scripts de lote do cliente - 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.

0
Tubs

Embora não seja a linguagem de script mais fácil de entender (experiência sólida com pipes presumidos) e tenha sua própria alavancagem de esquisitices (me dê um simplessed - tipo coisinha !!), acho o PowerShell bastante poderoso. Não está no nível de Bash ou 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.

0
Berzemus

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.

0
Bratch

O PowerShell versão 1.0 foi 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 eu aprecio poder entrar em . NET se eu 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.

0
Trent

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 integração contínua . Os scripts de integração contínua serão executados principalmente por NAnt e MSBuild via JetBrains TeamCity .

Além disso, estou olhando para mudar para o PowerShell como meu shell de comando principal do Windows para fins gerais e principalmente 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 outra pergunta sua :) Mas ei, para o wiki ...

Isso listará os hotfixes instalados:

Get-ChildItem -Path “HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix”
0
squillman