Estou escrevendo um script powershell para capturar os seguintes contadores do servidor SQL:
SQL Server: Gerenciador de memória: Memória total do servidor (KB)
SQL Server: Gerenciador de memória: Memória do servidor de destino (KB)
Minha máquina tem 3 instâncias de servidores SQL, então quero que este script capture todos os contadores dinamicamente e informe o valor para apenas 1 amostra. tentei escrever o seguinte:
Get-counter -List *SQL*Memory* | Select paths, counter | format-list # doesn't display full list
Get-counter -List *SQL*Memory* | Select paths, counter | where {_.counter -like "*server memory*"} |format-list # displays nothing
eventualmente, quero executar isso em vários servidores com -computername
parâmetro e, portanto, quero capturar dinamicamente.
Alguém pode me ajudar a encontrar o que está faltando? A seguir está o script exato que estou executando:
Function checkTransactionsPerSecond([string] $Hostname )
{
(Get-Counter -ListSet "*Databases").Counter | Where {$_ -like "*\Transactions/sec"} #this returns nothing
# $listofmetrics = (Get-Counter -ListSet "*Databases").Counter | Where {$_ -like "*\Transactions/sec"}
# $listofmetrics | Get-Counter
}
clear
foreach ($Hostname in Get-Content "D:\TEMP\machines.txt")
{
Write-Host $Hostname
checkTransactionsPerSecond($Hostname)
}
desde já, obrigado
Aaron Bertrand escreveu um bom post sobre ele que é bastante detalhado... Como eu uso o PowerShell para coletar dados do contador de desempenho .
Em seguida, Laerte Junior tem uma excelente explicação sobre como encontrar os contadores que deseja em um artigo Simple-Talk: Gathering Perfmon Data with Powershell . Pode ser aqui que você deseja começar. Tem alguns cmdlets que ele usa para capturar os contadores de uma determinada instância, acredito.
Veja se é isso que você precisa:
Veja isso:
Isso produzirá uma lista de bancos de dados e seus \Transactions/sec associados. Estou recebendo erros do meu lado no início da pesquisa, mas presumo que seja um problema de permissão. Caso contrário, funciona como uma beleza. Você pode usar o Regex para limpá-lo, se quiser :)